:root { --ink:#17211b; --muted:#68736c; --line:#dce3dd; --paper:#f6f8f5; --white:#fff; --green:#2f6b4f; --lime:#dff36a; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans","Noto Sans JP",sans-serif; }
button,input,select { font:inherit; }
button { color:inherit; }
.page-shell { width:min(1160px, calc(100% - 40px)); margin:auto; }
.site-header { height:72px; display:flex; align-items:center; border-bottom:1px solid var(--line); margin-bottom:56px; }
.brand { display:flex; align-items:center; gap:11px; color:var(--ink); text-decoration:none; font-size:13px; font-weight:700; letter-spacing:.16em; }
.brand-mark { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--ink); }
.brand-mark svg { width:21px; fill:none; stroke:var(--lime); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.section-number { color:var(--green); font-size:11px; font-weight:700; letter-spacing:.2em; }
.view-switcher { display:flex; justify-content:flex-end; align-items:center; gap:4px; margin-bottom:12px; }
.view-switcher > span { margin-right:8px; color:var(--muted); font-size:11px; font-weight:600; }
.view-button { min-width:68px; padding:8px 13px; border:1px solid var(--line); background:var(--white); cursor:pointer; font-size:11px; font-weight:600; }
.view-button:first-of-type { border-radius:7px 0 0 7px; }
.view-button:last-child { margin-left:-5px; border-radius:0 7px 7px 0; }
.view-button.active { position:relative; color:var(--white); border-color:var(--ink); background:var(--ink); }
.tool-nav { display:flex; flex-wrap:wrap; border:1px solid var(--line); border-radius:14px 14px 0 0; overflow:hidden; background:var(--white); }
.nav-button { flex:1 1 220px; border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:-1px; background:transparent; padding:22px 28px; text-align:left; cursor:pointer; display:flex; gap:20px; align-items:center; font-weight:600; }
.nav-button.active { color:var(--white); background:var(--ink); }
.nav-number { font-size:10px; letter-spacing:.12em; opacity:.55; }
.tool-panel { background:var(--white); border:1px solid var(--line); border-top:0; padding:52px 58px 58px; border-radius:0 0 14px 14px; min-height:420px; }
.view-all .tool-nav { border-radius:14px; margin-bottom:24px; }
.view-all .nav-button.active { color:var(--ink); background:transparent; }
.view-all .tool-panel { border-top:1px solid var(--line); border-radius:14px; margin-bottom:24px; scroll-margin-top:20px; }
.panel-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; padding-bottom:34px; border-bottom:1px solid var(--line); }
.panel-heading h2 { font-size:28px; margin:5px 0 0; letter-spacing:-.03em; }
.panel-heading p:last-child { color:var(--muted); font-size:13px; margin:0; }
.section-number { margin:0; }
.calculator-form { padding-top:35px; }
.field-row { display:flex; gap:22px; align-items:flex-end; }
.range-fields .field { flex:0 1 210px; }
.field { display:flex; flex-direction:column; gap:10px; min-width:0; }
.field > span:first-child { font-size:12px; font-weight:600; }
.field small { color:var(--muted); font-weight:400; }
input,select { width:100%; height:54px; border:1px solid #ccd5ce; border-radius:8px; background:#fbfcfb; padding:0 16px; color:var(--ink); outline:none; font-size:17px; }
input:focus,select:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(47,107,79,.1); }
.range-arrow { font-size:19px; padding-bottom:16px; color:var(--muted); }
.break-field { max-width:200px; }
.input-suffix { position:relative; display:block; }
.input-suffix input { padding-right:54px; }
.input-suffix b { position:absolute; right:16px; top:50%; transform:translateY(-50%); font-size:12px; color:var(--muted); }
.field-hint { margin:12px 0 28px; font-size:11px; color:var(--muted); }
.result-card { background:var(--ink); color:var(--white); border-radius:10px; padding:26px 32px; display:flex; justify-content:space-between; align-items:center; }
.result-label { margin:0 0 8px; color:#abb6af; font-size:11px; letter-spacing:.05em; }
.result-main { margin:0; display:flex; gap:8px; align-items:baseline; }
.result-main strong { color:var(--lime); font-size:38px; line-height:1; }
.result-main span { font-size:13px; margin-right:8px; }
.result-meta { display:flex; gap:28px; font-size:11px; color:#abb6af; }
.result-meta span { padding-left:28px; border-left:1px solid #3e4b43; display:grid; gap:4px; }
.result-meta strong { color:var(--white); font-size:14px; }
.converter-card { border:1px solid var(--line); border-radius:10px; padding:32px; margin-top:35px; }
.converter-type { margin:0 0 24px; font-size:10px; letter-spacing:.14em; color:var(--muted); font-weight:700; }
.converter-type span { color:var(--green); margin:0 7px; }
.converter-fields { display:grid; grid-template-columns:190px 40px 190px; gap:18px; align-items:end; justify-content:start; }
.convert-mark { height:54px; display:grid; place-items:center; color:var(--green); font-size:20px; }
.segmented-time { width:190px; max-width:100%; height:54px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border:1px solid #ccd5ce; border-radius:8px; background:#fbfcfb; overflow:hidden; }
.segmented-time:focus-within { border-color:var(--green); box-shadow:0 0 0 3px rgba(47,107,79,.1); }
.segmented-time input { height:52px; min-width:0; padding:0 12px; border:0; border-radius:0; background:transparent; text-align:center; font-variant-numeric:tabular-nums; }
.segmented-time input:focus { border:0; box-shadow:none; }
.segmented-time b { color:var(--muted); font-size:18px; font-weight:500; }
.segmented-time[aria-invalid="true"] { border-color:#a63b32; }
.error-message { min-height:14px; margin:8px 0 0; color:#a63b32; font-size:11px; }
.converter-hint { margin:8px 0 0; color:var(--muted); font-size:11px; }
.calculation-form { display:grid; grid-template-columns:minmax(0, 1fr) auto; column-gap:24px; padding-top:35px; }
.calculation-default-format { grid-column:2; grid-row:1; align-self:start; display:grid; grid-template-columns:auto 120px; align-items:center; justify-content:end; gap:6px 12px; margin:6px 0 0; }
.calculation-default-format > span { font-size:12px; font-weight:600; }
.calculation-default-format select { height:42px; padding:0 12px; font-size:13px; }
.calculation-default-format small { grid-column:1 / -1; color:var(--muted); font-size:11px; text-align:right; }
.expression-list { grid-column:1; grid-row:1; width:max-content; max-width:100%; display:flex; flex-direction:column; gap:12px; }
.expression-item { display:grid; grid-template-columns:86px 92px 190px 44px; gap:12px; align-items:center; }
.expression-operator, .first-operator { height:54px; border:1px solid #ccd5ce; border-radius:8px; background:#fbfcfb; font-size:16px; font-weight:600; text-align:center; }
.duration-format { height:54px; padding:0 12px; font-size:13px; font-weight:600; }
.first-operator { display:grid; place-items:center; color:var(--muted); font-size:11px; font-weight:500; }
.expression-time { min-width:0; }
.expression-time.minutes-mode { display:block; }
.expression-time.minutes-mode .duration-total-minutes { height:52px; text-align:right; padding-right:52px; }
.expression-time.minutes-mode::after { content:"分"; position:absolute; right:16px; top:50%; transform:translateY(-50%); color:var(--muted); font-size:12px; font-weight:600; pointer-events:none; }
.expression-time.minutes-mode { position:relative; }
.remove-box-button { width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:transparent; color:var(--muted); cursor:pointer; font-size:20px; line-height:1; }
.remove-box-button:hover:not(:disabled) { color:#a63b32; border-color:#d8aaa6; background:#fff8f7; }
.remove-box-button:disabled { visibility:hidden; }
.add-box-button { grid-column:1; justify-self:start; margin-top:16px; min-height:46px; padding:0 18px; border:1px dashed #aebbb1; border-radius:8px; background:#f8faf8; color:var(--green); cursor:pointer; font-size:12px; font-weight:600; }
.add-box-button:hover { border-color:var(--green); background:#f1f6f2; }
.add-box-button span { margin-right:6px; font-size:16px; }
.calculation-form > .error-message, .calculation-result { grid-column:1 / -1; }
.calculation-result { margin-top:20px; }
@media (max-width:900px) {
  .calculation-form { grid-template-columns:minmax(0, 1fr); }
  .calculation-default-format { grid-column:1; grid-row:auto; grid-template-columns:auto 120px; margin:0 0 16px; }
  .expression-list { grid-column:1; grid-row:auto; }
}
@media (max-width:760px) {
  .page-shell { width:min(100% - 24px,1160px); }
  .site-header { margin-bottom:32px; }
  .nav-button { padding:17px 10px; justify-content:center; font-size:12px; gap:7px; }
  .tool-panel { padding:34px 20px 28px; }
  .panel-heading { align-items:flex-start; flex-direction:column; gap:12px; }
  .field-row { flex-direction:column; align-items:stretch; }
  .range-fields .field { width:min(100%, 210px); flex:none; }
  .range-arrow { display:none; }
  .break-field { max-width:none; }
  .result-card { align-items:flex-start; flex-direction:column; gap:24px; padding:24px; }
  .result-meta { width:100%; gap:0; }
  .result-meta span { flex:1; padding-left:15px; }
  .converter-card { padding:24px; }
  .converter-fields { grid-template-columns:minmax(0, 190px); gap:12px; }
  .convert-mark { height:auto; transform:rotate(90deg); }
  .calculation-default-format { grid-template-columns:auto minmax(110px, 1fr); }
  .expression-list { width:100%; }
  .expression-item { grid-template-columns:70px 76px minmax(0, 1fr) 40px; gap:8px; }
  .duration-format { padding:0 8px; font-size:12px; }
}
@media (max-width:420px) { .nav-number { display:none; } .result-main strong { font-size:32px; } }
