:root{--font-body:-apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", "Noto Sans JP", sans-serif;--font-data:"SFMono-Regular", "Roboto Mono", "Cascadia Mono", Consolas, monospace;--header-height:66px;--nav-height:70px;--bg:#eef3f5;--surface:#fff;--surface-raised:#fff;--surface-subtle:#f5f8f9;--text:#172a38;--text-secondary:#526572;--text-muted:#71818c;--border:#d8e1e5;--border-strong:#b9c8cf;--main:#245b73;--main-hover:#19485d;--main-soft:#e4f0f5;--result:#08766d;--result-strong:#005b55;--result-soft:#e2f4f1;--warning:#a65008;--warning-soft:#fff3dc;--danger:#b42318;--danger-hover:#8e1c13;--danger-soft:#fff0ee;--muted-soft:#e9eef0;--shadow-card:0 1px 2px #142b380d, 0 8px 28px #142b380f;--shadow-nav:0 -8px 30px #142b3817;font-family:var(--font-body);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--bg:#0c151b;--surface:#14222b;--surface-raised:#192a34;--surface-subtle:#102029;--text:#edf5f7;--text-secondary:#b1c1c8;--text-muted:#899ba4;--border:#2b3e48;--border-strong:#405763;--main:#72bdd7;--main-hover:#91cee2;--main-soft:#193847;--result:#55c9bd;--result-strong:#74ddd1;--result-soft:#153b39;--warning:#f3ad5f;--warning-soft:#412d17;--danger:#ff8b82;--danger-hover:#ffaba5;--danger-soft:#43221f;--muted-soft:#263640;--shadow-card:0 1px 2px #0000002e, 0 10px 32px #0003;--shadow-nav:0 -8px 30px #00000047}*{box-sizing:border-box}html{background:var(--bg);min-width:0;min-height:100%;overflow-x:hidden}body{background:var(--bg);min-width:0;min-height:100dvh;margin:0;overflow-x:hidden}body,button,input{font-family:var(--font-body)}button,input{font-size:16px}button{color:inherit}button:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button,input,dialog{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,[tabindex]:focus-visible,a:focus-visible{outline:3px solid var(--main);outline-offset:3px}h1,h2,p{margin:0}svg{display:block}#root{min-width:0;min-height:100dvh}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{min-width:0;min-height:100dvh}.skip-link{z-index:1000;color:#fff;background:var(--main-hover);border-radius:8px;padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.app-header{z-index:100;height:calc(var(--header-height) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid color-mix(in srgb, var(--border) 86%, transparent);background:color-mix(in srgb, var(--surface) 93%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.25);position:fixed;inset:0 0 auto}.app-header__inner{width:min(100%,1180px);height:var(--header-height);justify-content:space-between;align-items:center;margin:0 auto;padding:0 16px;display:flex}.app-title-group{align-items:center;gap:11px;min-width:0;display:flex}.app-title-group h1{letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;font-size:19px;font-weight:750;line-height:1.2;overflow:hidden}.app-mark{object-fit:contain;border-radius:10px;flex:none;width:34px;height:34px;box-shadow:0 1px 2px #00000040,inset 0 0 0 1px #ffffff1a}.theme-toggle{border:1px solid var(--border);width:44px;height:44px;color:var(--text);background:var(--surface-subtle);border-radius:50%;flex:none;place-items:center;padding:0;transition:transform .16s,border-color .16s,background .16s;display:grid}.theme-toggle:hover{border-color:var(--border-strong);background:var(--main-soft);transform:rotate(-8deg)}.theme-toggle span{font-size:21px;line-height:1}main{min-width:0;padding-top:calc(var(--header-height) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px))}.page-container{width:min(100%,1180px);min-width:0;margin:0 auto;padding:18px 12px 40px}.page-container>*+*{margin-top:22px}.eyebrow{color:var(--main);letter-spacing:.14em;text-transform:uppercase;margin-bottom:3px;font-size:11px;font-weight:800;display:block}.section-heading{justify-content:space-between;align-items:center;gap:14px;min-width:0;display:flex}.section-heading>div{min-width:0}.section-heading h2{color:var(--text);letter-spacing:-.01em;font-size:19px;font-weight:760;line-height:1.35}.section-count{color:var(--text-secondary);background:var(--muted-soft);border-radius:999px;flex:none;padding:5px 9px;font-size:12px;font-weight:700}.button{text-align:center;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:10px 15px;font-weight:730;line-height:1.25;transition:transform .12s,background .15s,border-color .15s;display:inline-flex}.button:not(:disabled):active{transform:scale(.98)}.button--compact{min-height:44px;padding-inline:13px;font-size:14px}.button--primary{color:#fff;background:var(--main)}.button--primary:hover{background:var(--main-hover)}.button--secondary{border-color:var(--border);color:var(--text);background:var(--surface)}.button--secondary:hover{border-color:var(--border-strong);background:var(--surface-subtle)}.button--danger,.button--danger-quiet:hover{border-color:var(--danger);color:#fff;background:var(--danger)}.button--danger:hover{border-color:var(--danger-hover);background:var(--danger-hover)}.button--danger-quiet{border-color:color-mix(in srgb, var(--danger) 42%, var(--border));color:var(--danger);background:var(--danger-soft)}.time-panel,.daily-setup,.daily-results,.calculator-history{border:1px solid var(--border);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);border-radius:18px;padding:17px}.time-panel__inputs{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:end;gap:8px;margin-top:18px;display:grid}.time-arrow{height:48px;color:var(--text-muted);place-items:center;font-weight:800;display:grid}.time-field{min-width:0;color:var(--text-secondary);gap:7px;font-size:13px;font-weight:700;display:grid}.time-field input{border:1px solid var(--border-strong);width:100%;min-width:0;height:48px;color:var(--text);background:var(--surface-subtle);font-family:var(--font-data);font-variant-numeric:tabular-nums;border-radius:10px;padding:0 10px;font-size:16px}.inline-note,.inline-warning,.inline-error{min-width:0;color:var(--text-secondary);background:var(--muted-soft);border-radius:9px;align-items:flex-start;gap:8px;margin-top:13px;padding:10px 11px;font-size:13px;font-weight:620;line-height:1.5;display:flex}.inline-note>span,.inline-warning>span,.inline-error>span{color:#fff;background:var(--text-muted);width:20px;height:20px;font-family:var(--font-data);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:900;display:grid}.inline-warning{color:var(--warning);background:var(--warning-soft)}.inline-warning>span{background:var(--warning)}.inline-error{color:var(--danger);background:var(--danger-soft)}.inline-error>span{background:var(--danger)}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;min-width:0;display:grid}.summary-card{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:112px;box-shadow:var(--shadow-card);border-radius:15px;flex-direction:column;justify-content:space-between;padding:14px;display:flex;overflow:hidden}.summary-card--result{border-color:color-mix(in srgb, var(--result) 26%, var(--border));background:linear-gradient(145deg, var(--surface) 25%, var(--result-soft))}.summary-card--muted{background:var(--surface-subtle)}.summary-card__label,.summary-card__detail{color:var(--text-secondary);font-size:12px;font-weight:700}.summary-card__value{overflow-wrap:anywhere;max-width:100%;color:var(--text);font-family:var(--font-data);font-variant-numeric:tabular-nums;letter-spacing:-.04em;margin-block:5px;font-size:clamp(17px,5.5vw,25px);line-height:1.15}.summary-card--result .summary-card__value{color:var(--result-strong)}.section-heading--materials{margin-bottom:12px;padding-inline:3px}.material-grid{grid-template-columns:minmax(0,1fr);gap:13px;min-width:0;display:grid}.material-card{border:1px solid var(--border);background:var(--surface-raised);min-width:0;box-shadow:var(--shadow-card);border-radius:18px;padding:16px;overflow:hidden}.material-card__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;display:flex}.material-card__header h2{overflow-wrap:anywhere;min-width:0;font-size:20px;font-weight:800;line-height:1.2}.material-card__header>span{color:var(--main);background:var(--main-soft);border-radius:7px;flex:none;padding:5px 9px;font-size:12px;font-weight:800}.material-card__inputs{grid-template-columns:minmax(0,1fr);gap:16px;min-width:0;display:grid}.number-field{align-content:start;gap:7px;min-width:0;display:grid}.number-field>label{color:var(--text);font-size:14px;font-weight:750}.number-field__helper{min-height:1.4em;color:var(--text-muted);margin-top:-5px;font-size:11px;line-height:1.4}.number-field__control{min-width:0;position:relative}.number-field__control input{border:1px solid var(--border-strong);width:100%;min-width:0;height:50px;color:var(--text);background:var(--surface-subtle);font-family:var(--font-data);font-variant-numeric:tabular-nums;border-radius:10px;padding:0 48px 0 12px;font-size:18px}.number-field__control input:focus,.time-field input:focus{border-color:var(--main);background:var(--surface)}.number-field__control input[aria-invalid=true]{border-color:var(--danger);background:var(--danger-soft)}.number-field__unit{max-width:38px;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;pointer-events:none;font-size:13px;font-weight:750;position:absolute;top:50%;right:12px;overflow:hidden;transform:translateY(-50%)}.field-error{color:var(--danger);font-size:12px;font-weight:700}.quick-adjust{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;min-width:0;display:grid}.quick-adjust button{border:1px solid var(--border);min-width:0;min-height:44px;color:var(--text-secondary);background:var(--surface);font-family:var(--font-data);font-variant-numeric:tabular-nums;border-radius:9px;padding:6px 2px;font-size:12px;font-weight:750}.quick-adjust button:hover{border-color:var(--main);color:var(--main);background:var(--main-soft)}.quick-adjust button:active{transform:scale(.96)}.material-result{border-left:4px solid var(--result);background:var(--result-soft);border-radius:5px 12px 12px 5px;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;min-width:0;margin-top:17px;padding:13px 13px 13px 15px;display:grid}.material-result--pending{border-left-color:var(--text-muted);background:var(--muted-soft)}.material-result--warning{border-left-color:var(--warning);background:var(--warning-soft)}.material-result>div{align-content:space-between;gap:5px;min-width:0;display:grid}.material-result>div+div{border-left:1px solid color-mix(in srgb, var(--result) 26%, transparent);padding-left:9px}.material-result span{color:var(--text-secondary);font-size:11px;font-weight:730}.material-result strong{overflow-wrap:anywhere;min-width:0;color:var(--result-strong);font-family:var(--font-data);font-variant-numeric:tabular-nums;letter-spacing:-.035em;font-size:clamp(15px,4.8vw,22px);line-height:1.2}.material-result--pending strong{color:var(--text-muted);font-family:var(--font-body);letter-spacing:0;font-size:13px}.material-result--warning strong{color:var(--warning)}.material-result small{font-family:var(--font-body);letter-spacing:0;margin-left:3px;font-size:.55em;font-weight:780}.bulk-actions{border:1px solid var(--border);background:var(--surface-subtle);border-radius:16px;grid-template-columns:minmax(0,1fr);gap:9px;min-width:0;padding:16px;display:grid}.daily-setup .section-heading{align-items:flex-start}.daily-setup .section-heading .button{max-width:330px}.days-input-wrap{background:var(--surface-subtle);border-radius:13px;max-width:360px;margin-top:20px;padding:15px}.days-input-wrap .inline-note,.days-input-wrap .inline-error{margin-top:10px}.daily-results .section-heading{margin-bottom:16px}.result-list{gap:8px;min-width:0;margin-bottom:16px;display:grid}.result-list__item{border:1px solid var(--border);background:var(--surface-subtle);border-radius:11px;grid-template-columns:minmax(0,1fr);gap:5px;min-width:0;padding:13px;display:grid}.result-list__item strong{font-size:16px;font-weight:800}.result-list__item span{overflow-wrap:anywhere;min-width:0;color:var(--text-secondary);font-size:13px}.result-list__item b{color:var(--result-strong);font-family:var(--font-data);font-variant-numeric:tabular-nums}.empty-state{border:1px dashed var(--border-strong);color:var(--text-muted);background:var(--surface-subtle);text-align:center;border-radius:11px;padding:22px 15px;font-size:14px;line-height:1.6}.daily-results>.button--danger-quiet{width:100%;margin-top:16px}.calculator-layout{gap:18px;min-width:0;display:grid}.calculator{border:1px solid var(--border);background:var(--surface-raised);min-width:0;box-shadow:var(--shadow-card);border-radius:20px;padding:12px}.calculator-display{border:1px solid color-mix(in srgb, var(--result) 28%, var(--border));background:linear-gradient(145deg, var(--surface-subtle), var(--result-soft));border-radius:14px;min-width:0;min-height:154px;padding:14px;overflow:hidden}.calculator-display__topline{justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;min-height:36px;display:flex}.calculator-display__expression{min-width:0;color:var(--text-secondary);font-family:var(--font-data);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;padding-top:7px;font-size:13px;overflow:hidden}.calculator-display__copy{border-radius:8px;min-height:36px;padding:5px 9px;font-size:11px}.calculator-display__value{max-width:100%;color:var(--result-strong);font-family:var(--font-data);font-variant-numeric:tabular-nums;letter-spacing:-.06em;text-align:right;text-overflow:ellipsis;white-space:nowrap;margin-top:14px;font-size:clamp(27px,9vw,58px);font-weight:750;line-height:1;display:block;overflow:hidden}.calculator-display__value.is-error{color:var(--danger);font-family:var(--font-body);letter-spacing:0;font-size:36px}.calculator-display__message{min-height:18px;color:var(--warning);text-align:right;margin-top:8px;font-size:12px;font-weight:700;display:block}.calculator-display__message.is-error{color:var(--danger)}.calculator-keys{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:0;margin-top:11px;display:grid}.calculator-key{border:1px solid var(--border);min-width:0;min-height:58px;color:var(--text);background:var(--surface-subtle);font-family:var(--font-data);border-radius:13px;padding:4px;font-size:21px;font-weight:700;transition:transform .1s,background .13s,border-color .13s}.calculator-key:hover{border-color:var(--border-strong);background:var(--muted-soft)}.calculator-key:active{transform:scale(.94)}.calculator-key--operator{border-color:color-mix(in srgb, var(--main) 30%, var(--border));color:var(--main);background:var(--main-soft)}.calculator-key--action{color:var(--text-secondary);background:var(--muted-soft)}.calculator-key--equals{border-color:var(--result);color:#fff;background:var(--result)}.calculator-key--equals:hover{background:var(--result-strong)}.calculator-history{align-self:start}.text-button{min-height:44px;color:var(--main);background:0 0;border:0;padding:6px 8px;font-size:13px;font-weight:750}.text-button--danger{color:var(--danger)}.history-list{gap:7px;margin:15px 0 0;padding:0;list-style:none;display:grid}.history-list button{border:1px solid var(--border);width:100%;min-width:0;min-height:54px;color:var(--text);background:var(--surface-subtle);text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;display:flex}.history-list button:hover{border-color:var(--result);background:var(--result-soft)}.history-list span{min-width:0;color:var(--text-secondary);font-family:var(--font-data);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.history-list strong{max-width:45%;color:var(--result-strong);font-family:var(--font-data);text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:18px;overflow:hidden}.bottom-navigation{z-index:90;height:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--border);background:color-mix(in srgb, var(--surface) 95%, transparent);box-shadow:var(--shadow-nav);-webkit-backdrop-filter:blur(18px)saturate(1.25);position:fixed;inset:auto 0 0}.bottom-navigation__inner{width:min(100%,580px);height:var(--nav-height);grid-template-columns:repeat(3,minmax(0,1fr));margin:0 auto;display:grid}.bottom-navigation__item{min-width:0;min-height:58px;color:var(--text-muted);background:0 0;border:0;align-content:center;justify-items:center;gap:3px;padding:6px 3px;font-size:11px;font-weight:700;display:grid;position:relative}.bottom-navigation__item:before{background:var(--result);content:"";opacity:0;border-radius:0 0 999px 999px;width:28px;height:3px;transition:opacity .15s,transform .15s;position:absolute;top:0;transform:scaleX(.4)}.bottom-navigation__item svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:24px;height:24px}.bottom-navigation__item[aria-current=page]{color:var(--result-strong);font-weight:820}.bottom-navigation__item[aria-current=page]:before{opacity:1;transform:scaleX(1)}.confirm-dialog{width:min(100% - 28px,440px);max-width:100%;color:var(--text);background:0 0;border:0;border-radius:18px;padding:0;overflow:visible}.confirm-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050f159e}.confirm-dialog__body{border:1px solid var(--border);background:var(--surface-raised);border-radius:18px;padding:22px;box-shadow:0 24px 70px #00000047}.confirm-dialog h2{font-size:20px;font-weight:800;line-height:1.4}.confirm-dialog p{color:var(--text-secondary);margin-top:9px;font-size:14px;line-height:1.65}.confirm-dialog__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:22px;display:grid}.toast{z-index:300;right:12px;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px) + 12px);border:1px solid color-mix(in srgb, var(--result) 35%, var(--border));max-width:500px;min-height:52px;color:var(--text);background:var(--surface-raised);border-radius:13px;grid-template-columns:25px minmax(0,1fr) 32px;align-items:center;gap:8px;margin-inline:auto;padding:9px 8px 9px 12px;display:grid;position:fixed;left:12px;box-shadow:0 15px 48px #09192138}.toast>span{color:#fff;background:var(--result);width:23px;height:23px;font-family:var(--font-data);border-radius:50%;place-items:center;font-size:13px;font-weight:900;display:grid}.toast--error{border-color:color-mix(in srgb, var(--danger) 45%, var(--border))}.toast--error>span{background:var(--danger)}.toast--info>span{background:var(--main)}.toast p{min-width:0;font-size:13px;font-weight:680;line-height:1.45}.toast button{width:32px;height:36px;color:var(--text-muted);background:0 0;border:0;padding:0;font-size:22px}@media (width<=480px){.section-heading{flex-wrap:wrap;align-items:flex-start}.section-heading>.button{width:100%;max-width:none}.time-panel .section-heading>.button{width:auto}.daily-setup .section-heading .button{max-width:none}.material-result{grid-template-columns:minmax(0,1fr)}.material-result>div+div{border-top:1px solid color-mix(in srgb, var(--result) 24%, transparent);border-left:0;padding-top:8px;padding-left:0}}@media (width>=620px){.page-container{padding:26px 20px 48px}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-card__value{font-size:clamp(18px,2.8vw,25px)}.material-card__inputs{grid-template-columns:repeat(3,minmax(0,1fr))}.material-result strong{font-size:clamp(17px,2.8vw,22px)}.bulk-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.result-list__item{grid-template-columns:minmax(130px,.7fr) minmax(0,1fr) minmax(0,1fr);align-items:center}.calculator{padding:16px}.calculator-key{min-height:64px}}@media (width>=860px){.page-container{padding-inline:28px}.material-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.material-card__inputs{grid-template-columns:minmax(0,1fr)}.calculator-layout{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start}}@media (width>=1060px){.material-card__inputs{grid-template-columns:repeat(3,minmax(0,1fr))}}
