
:root{
  
  --paper:#F6F5F1;      
  --surface:#FFFFFF;    
  --surface-2:#F0EEE8;  
  --line:#E2E0DA;       
  --line-strong:#8A867C;
  --ink:#1A1A18;        
  --ink-2:#55524B;      
  --ink-3:#6B675F;      
  
  --accent:#1F4A86;     
  --accent-hover:#183B6C;
  --accent-soft:#EAF0F8;
  --accent-line:#BFD0E6;
  
  --holiday:#B42318; --holiday-soft:#FCEEEC;   
  --custom:#8A5A12;  --custom-soft:#F7F0E3;    
  --ok:#2E6B4C;      --ok-soft:#EBF4EE;        
  --focus:#1F4A86;
  
  --font:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,-apple-system,"Segoe UI","Yu Gothic UI",Meiryo,sans-serif;
  --fs-12:12px; --fs-13:13px; --fs-14:14px; --fs-16:16px; --fs-18:18px; --fs-20:20px; --fs-24:24px; --fs-32:32px; --fs-40:40px; --fs-48:48px;
  
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px; --s12:48px; --s16:64px; --s24:96px;
  
  --r-sm:6px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-pill:999px;
  
  --shadow:0 1px 2px rgba(26,26,24,.06),0 4px 16px rgba(26,26,24,.04);
  
  --tap:44px; --field:48px; --header:56px; --gutter:16px; --max:1120px;
  --logo-w:89px; --logo-h:24px;
  --ease:cubic-bezier(.2,.7,.2,1); --dur:160ms;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--fs-16);line-height:1.75;letter-spacing:.02em;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 0}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
button,input,select{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer}
img,svg{display:block}
a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}
.num,input,time,td{font-variant-numeric:tabular-nums}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:var(--s4);top:-64px;z-index:50;padding:var(--s3) var(--s4);background:var(--ink);color:#fff;border-radius:var(--r-md);text-decoration:none}
.skip:focus{top:var(--s2)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}


.hd{position:sticky;top:0;z-index:20;background:rgba(246,245,241,.92);backdrop-filter:saturate(1.4) blur(8px);-webkit-backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.hd .wrap{display:flex;align-items:center;gap:var(--s4);height:var(--header)}
.brand{display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--tap);flex:none;color:var(--ink);text-decoration:none;font-weight:700;font-size:var(--fs-16);letter-spacing:.04em;white-space:nowrap}
.brand svg{width:28px;height:28px;flex:none}
.brand img{width:var(--logo-w);height:var(--logo-h);flex:none;object-fit:contain}
.brand .tmp{display:inline-grid;place-items:center;height:20px;padding:0 6px;border:1px solid var(--line-strong);border-radius:var(--r-sm);font-size:11px;font-weight:600;color:var(--ink-2);letter-spacing:.04em;line-height:1}
.hd nav{margin-left:auto;display:none}
.hd nav ul{display:flex;gap:var(--s1)}
.hd nav a{display:inline-flex;align-items:center;height:var(--tap);padding:0 var(--s3);border-radius:var(--r-md);color:var(--ink-2);font-size:var(--fs-14);font-weight:600;text-decoration:none}
@media (hover:hover){.hd nav a:hover{background:var(--surface-2);color:var(--ink)}}
.hd nav a[aria-current]{color:var(--ink)}
.icon-btn{margin-left:auto;display:inline-grid;place-items:center;width:var(--tap);height:var(--tap);border-radius:var(--r-md);color:var(--ink);text-decoration:none;border:0;background:none}
@media (hover:hover){.icon-btn:hover{background:var(--surface-2)}}
.icon-btn svg{width:22px;height:22px}


.crumb{display:flex;align-items:center;min-height:44px;margin:-10px 0;gap:var(--s1);flex-wrap:nowrap;overflow:hidden;white-space:nowrap;font-size:var(--fs-12);line-height:16px;color:var(--ink-3);letter-spacing:.04em}
.crumb a{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--s2);margin:0 calc(var(--s2) * -1);color:var(--ink-3);text-decoration:none}
.crumb a:hover{text-decoration:underline}
.crumb li+li::before{content:"/";margin-right:var(--s1);color:var(--line-strong)}
.page-hd{padding:var(--s4) 0 var(--s4)}
.title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:var(--s2)}
.page-hd h1{font-size:var(--fs-24);line-height:32px;font-weight:700;letter-spacing:.02em;font-feature-settings:"palt" 1}
.page-hd .lead{margin-top:var(--s1);font-size:var(--fs-14);line-height:20px;color:var(--ink-2)}


.calc{display:grid;gap:var(--s4);padding-bottom:var(--s8)}
.col-main,.col-side{display:grid;gap:var(--s4);align-content:start;min-width:0}


.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4)}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:24px}
.card-h h2{font-size:var(--fs-16);line-height:24px;font-weight:700}
.card-h .aside{font-size:var(--fs-12);line-height:16px;color:var(--ink-3)}
.sec-label{display:block;font-size:var(--fs-13);line-height:20px;font-weight:700;color:var(--ink-2);letter-spacing:.06em;margin-bottom:var(--s2)}


.q-list{display:grid;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.q{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 20px;column-gap:var(--s3);align-items:center;min-height:64px;padding:var(--s3) var(--s4);cursor:pointer;transition:background var(--dur) var(--ease)}
.q+.q{border-top:1px solid var(--line)}
.q input{position:absolute;opacity:0;pointer-events:none}
.q .dot{grid-column:2;grid-row:1 / span 2;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line-strong);background:#fff;display:grid;place-items:center;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.q .dot::after{content:"";width:9px;height:5px;margin-top:-2px;border:solid #fff;border-width:0 0 1.8px 1.8px;transform:rotate(-45deg) scale(0);transition:transform var(--dur) var(--ease)}
.q .t{grid-column:1;font-size:var(--fs-16);line-height:24px;font-weight:700;letter-spacing:.02em}
.q .t .qn{font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums;margin-right:1px}
.q .ex{grid-column:1;font-size:var(--fs-12);line-height:16px;color:var(--ink-3);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (hover:hover){.q:hover{background:#FBFAF8}}
.q:has(input:checked){background:var(--accent-soft)}
.q:has(input:checked) .dot{border-color:var(--accent);background:var(--accent)}
.q:has(input:checked) .dot::after{transform:rotate(-45deg) scale(1)}
.q:has(input:checked) .t{color:var(--accent)}
.q:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:-2px}
.q:has(input:checked)::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}


.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);align-items:start}
.fields>.full{grid-column:1 / -1}
.field{min-width:0}
.label{display:block;margin-bottom:var(--s2);font-size:var(--fs-14);line-height:20px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.label .opt{font-weight:500;color:var(--ink-3);font-size:var(--fs-12);margin-left:var(--s1)}
.help{margin-top:var(--s2);font-size:var(--fs-12);line-height:16px;color:var(--ink-3);letter-spacing:.03em}
.input{display:block;width:100%;height:var(--field);padding:0 var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:#fff;font-size:var(--fs-16);line-height:var(--field);color:var(--ink);-webkit-appearance:none;appearance:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
input[type=date].input,.sheet input[type=date]{display:flex;align-items:center;line-height:normal}
input[type=date].input{padding-right:var(--s2)}
input[type=date].input::-webkit-date-and-time-value,
.sheet input[type=date]::-webkit-date-and-time-value{margin:0;text-align:left}
.input::placeholder{color:var(--ink-3)}
@media (hover:hover){.input:hover{border-color:#6B675F}}
.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(31,74,134,.18)}
.input[aria-invalid=true]{border-color:var(--holiday);box-shadow:0 0 0 3px rgba(180,35,24,.12)}
select.input{padding-right:var(--s8);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%2355524B' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center}
.stepper{display:grid;grid-template-columns:var(--tap) minmax(0,1fr) var(--tap);height:var(--field);border:1px solid var(--line-strong);border-radius:var(--r-md);background:#fff;overflow:hidden}
.stepper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(31,74,134,.18)}
.stepper button{border:0;background:none;display:grid;place-items:center;color:var(--ink-2)}
@media (hover:hover){.stepper button:hover{background:var(--surface-2);color:var(--ink)}}
.stepper button:active{background:#E6E3DB}
.stepper button svg{width:16px;height:16px}
.stepper input{width:100%;min-width:0;border:0;text-align:center;font-size:var(--fs-18);font-weight:700;background:transparent;-moz-appearance:textfield}
.stepper input:focus{outline:none}
.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.stepper .unit{display:none}


.switch-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--s3);min-height:56px;padding:var(--s2) 0}
.switch-row+.switch-row{border-top:1px solid var(--line)}
.switch-row .t{font-size:var(--fs-16);line-height:24px;font-weight:600}
.switch-row .d{display:block;font-size:var(--fs-12);line-height:16px;color:var(--ink-3)}
.switch{position:relative;width:52px;height:32px;flex:none}
.switch input{position:absolute;inset:-6px;width:64px;height:44px;margin:0;opacity:0;cursor:pointer;z-index:1}
.switch span{position:absolute;inset:0;border-radius:var(--r-pill);background:#fff;box-shadow:inset 0 0 0 1.5px var(--line-strong);transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.switch span::after{content:"";position:absolute;top:7px;left:7px;width:18px;height:18px;border-radius:50%;background:var(--line-strong);box-shadow:none;transition:transform var(--dur) var(--ease),width var(--dur) var(--ease),height var(--dur) var(--ease),top var(--dur) var(--ease),left var(--dur) var(--ease),background var(--dur) var(--ease)}
.switch input:checked+span{background:var(--accent);box-shadow:none}
.switch input:checked+span::after{top:3px;left:3px;width:26px;height:26px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transform:translateX(20px)}
.switch input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}


.seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--s1);padding:var(--s1);background:var(--surface-2);border-radius:10px}
.seg button{min-height:40px;padding:var(--s1) var(--s2);border:0;border-radius:var(--r-md);background:transparent;color:var(--ink-2);font-size:var(--fs-14);line-height:20px;font-weight:600;white-space:nowrap}
.seg button small{display:block;font-size:11px;line-height:14px;font-weight:500;color:var(--ink-3)}
.seg button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(26,26,24,.14)}
.seg.tall button{min-height:48px}


.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s1)}
.week button{height:var(--tap);border:1px solid var(--line-strong);border-radius:var(--r-md);background:#fff;color:var(--ink-2);font-size:var(--fs-14);font-weight:600}
@media (hover:hover){.week button:hover{border-color:var(--ink-3);background:var(--surface-2)}}
.week button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}


.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:var(--tap);padding:0 var(--s4);border-radius:var(--r-md);border:1px solid transparent;font-size:var(--fs-14);line-height:20px;font-weight:700;text-decoration:none;white-space:nowrap;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.btn svg{width:16px;height:16px;flex:none}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-hover)}
.btn-line{background:#fff;color:var(--ink);border-color:var(--line-strong)}
@media (hover:hover){.btn-line:hover{background:var(--surface-2)}}
.btn-text{min-height:var(--tap);padding:0;border:0;background:none;color:var(--accent);font-weight:700}
#to-set{position:relative;min-height:0;font-size:inherit}
#to-set::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:44px;transform:translate(-50%,-50%)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn-block{width:100%}


.result{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s4) var(--s4) var(--s4);overflow:hidden}
.result::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--accent)}
.result .kicker{font-size:var(--fs-13);line-height:20px;font-weight:700;color:var(--accent);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result .big{margin-top:var(--s1);font-size:var(--fs-40);line-height:48px;font-weight:800;letter-spacing:-.01em;white-space:nowrap;font-feature-settings:"palt" 1}
.result .big small{font-size:var(--fs-20);font-weight:700;margin-left:2px;letter-spacing:0}
.result .meta{margin-top:var(--s1);font-size:var(--fs-14);line-height:20px;color:var(--ink-2)}
.result .err{display:flex;gap:var(--s2);align-items:flex-start;font-size:var(--fs-14);line-height:20px;color:var(--holiday);font-weight:600}
.result .err svg{width:16px;height:16px;flex:none;margin-top:2px}
.tally{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line);font-size:var(--fs-13);line-height:20px;color:var(--ink-2)}
.tally li{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tally i{width:10px;height:10px;border-radius:3px;flex:none}
.tally b{color:var(--ink);font-weight:700}
.detail{margin-top:var(--s2);font-size:var(--fs-12);line-height:18px;color:var(--ink-3)}
.note{margin-top:var(--s2);font-size:var(--fs-12);line-height:18px;color:var(--ink-2);padding:var(--s2) var(--s3);background:var(--surface-2);border-radius:var(--r-md)}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);margin-top:var(--s4)}


.c-biz{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line)}
.c-off{background:var(--surface-2)}
.c-hol{background:var(--holiday-soft);box-shadow:inset 0 0 0 1px #F2C4BE}
.c-cus{background:var(--custom-soft);box-shadow:inset 0 0 0 1px #E6D3AE}
.c-open{background:var(--ok-soft);box-shadow:inset 0 0 0 1px #BFDCCB}


.cal-wrap{display:grid;gap:var(--s4)}
.cal h3{font-size:var(--fs-14);line-height:20px;font-weight:700;margin-bottom:var(--s2)}
.cal table{width:100%;border-collapse:separate;border-spacing:0 4px;table-layout:fixed;text-align:center}
.cal th{font-size:var(--fs-12);line-height:16px;font-weight:600;color:var(--ink-3);padding-bottom:var(--s1)}
.cal th:nth-child(6),.cal th:nth-child(7){color:var(--ink-3)}
.cal td{padding:0 2px}
.cal td>span{display:grid;place-items:center;height:36px;border-radius:var(--r-md);font-size:var(--fs-14);font-weight:500;color:var(--ink)}
.cal td.out>span{color:var(--ink-3);font-weight:400}
.cal td.biz>span{background:var(--accent-soft);color:var(--accent);font-weight:700}
.cal td.off>span{background:var(--surface-2);color:var(--ink-3)}
.cal td.hol>span{background:var(--holiday-soft);color:var(--holiday);font-weight:700}
.cal td.cus>span{background:var(--custom-soft);color:var(--custom);font-weight:700}
.cal td.open>span{background:var(--ok-soft);color:var(--ok);font-weight:700}
.cal td.start>span{box-shadow:inset 0 0 0 2px var(--ink)}
.cal td.goal>span{background:var(--accent);color:#fff;font-weight:800}
.cal td.today>span{text-decoration:underline;text-underline-offset:3px}
.cal-legend{display:grid;grid-template-columns:repeat(3,max-content);gap:var(--s2) var(--s5);font-size:var(--fs-12);line-height:16px;color:var(--ink-3)}
.cal-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.cal-legend i{width:10px;height:10px;border-radius:3px}
.cal-legend .ring{box-shadow:inset 0 0 0 2px var(--ink);background:#fff}
.cal-legend .solid{background:var(--accent)}


.group+.group{margin-top:var(--s6)}
.chips-row{display:flex;gap:var(--s2);overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--s4) * -1);padding:0 var(--s4);scroll-padding:0 var(--s4)}
.chips-row::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:#fff;color:var(--ink-2);font-size:var(--fs-13);font-weight:600;text-decoration:none;white-space:nowrap}
.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.disclose{display:flex;align-items:center;gap:var(--s2);width:100%;min-height:var(--tap);padding:0;border:0;background:none;color:var(--accent);font-size:var(--fs-14);font-weight:700;text-align:left}
.disclose svg{width:16px;height:16px}
.addbox{margin-top:var(--s2);padding:var(--s4);background:#FBFAF7;border:1px solid var(--line);border-radius:var(--r-lg);display:grid;gap:var(--s4)}
.items{display:grid;gap:var(--s2);margin-top:var(--s3)}
.item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s3);min-height:48px;padding:var(--s1) var(--s1) var(--s1) var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:#fff;font-size:var(--fs-14);line-height:20px}
.item .tag{display:inline-grid;place-items:center;height:20px;padding:0 6px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.04em}
.item .tag.cus{background:var(--custom-soft);color:var(--custom)}
.item .tag.open{background:var(--ok-soft);color:var(--ok)}
.item .nm{color:var(--ink-3);margin-left:var(--s2)}
.item .x{width:var(--tap);height:40px;border:0;background:none;border-radius:var(--r-md);color:var(--ink-3);display:grid;place-items:center}
@media (hover:hover){.item .x:hover{background:var(--surface-2);color:var(--ink)}}
.item .x svg{width:16px;height:16px}


.fold{border-top:1px solid var(--line)}
.fold:last-child{border-bottom:1px solid var(--line)}
.fold summary{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);min-height:56px;padding:var(--s2) 0;font-size:var(--fs-16);line-height:24px;font-weight:700;cursor:pointer;list-style:none}
.fold summary::-webkit-details-marker{display:none}
.fold summary::after{content:"";flex:none;width:24px;height:24px;background:no-repeat center/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%231F4A86' stroke-width='1.6'/%3E%3C/svg%3E");transition:transform var(--dur) var(--ease)}
.fold[open] summary::after{transform:rotate(45deg)}
.fold .body{padding:0 0 var(--s4);font-size:var(--fs-14);line-height:24px;color:var(--ink-2)}
.fold .body p+p{margin-top:var(--s2)}
.fold.sm summary{min-height:48px;font-size:var(--fs-14);line-height:20px}


.guide{padding:var(--s12) 0 var(--s16);border-top:1px solid var(--line);background:var(--surface)}
.guide-grid{display:grid;gap:var(--s12)}
.prose{max-width:680px}
.prose h2{margin-top:var(--s8);font-size:var(--fs-20);line-height:30px;font-weight:700;font-feature-settings:"palt" 1}
.prose h1+h2{margin-top:var(--s6)}
.prose h2+p,.prose h2+ol,.prose h2+.steps{margin-top:var(--s3)}
.prose h3{margin-top:var(--s8);font-size:var(--fs-16);line-height:24px;font-weight:700}
.prose p{margin-top:var(--s3);font-size:var(--fs-16);line-height:1.85;color:var(--ink)}
.prose .small{font-size:var(--fs-13);line-height:22px;color:var(--ink-3)}
.prose .faq{margin-top:var(--s4)}
.steps{display:grid;gap:var(--s2);counter-reset:s}
.steps li{position:relative;padding:var(--s3) var(--s4) var(--s3) 52px;background:var(--paper);border-radius:var(--r-md);font-size:var(--fs-14);line-height:22px}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:var(--s4);top:var(--s3);width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font-size:var(--fs-12);font-weight:700;display:grid;place-items:center;line-height:1}
.srcs{margin-top:var(--s3);display:grid;gap:var(--s2);font-size:var(--fs-13);line-height:20px}
.srcs li{padding-left:var(--s4);position:relative;color:var(--ink-2)}
.srcs li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:1px;background:var(--ink-3)}
.related h2{font-size:var(--fs-16);line-height:24px;font-weight:700;margin-bottom:var(--s3)}
.rel-list{display:grid;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.rel-list a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--s3);min-height:56px;padding:var(--s2) var(--s4);color:var(--ink);text-decoration:none;font-size:var(--fs-14);line-height:20px;font-weight:600}
.rel-list a+a{border-top:1px solid var(--line)}
@media (hover:hover){.rel-list a:hover{background:var(--paper)}}
.rel-list small{display:block;font-size:var(--fs-12);line-height:16px;color:var(--ink-3);font-weight:400}
.rel-list svg{width:16px;height:16px;color:var(--ink-3)}
.soon{display:inline-grid;place-items:center;height:20px;padding:0 6px;border-radius:4px;background:var(--surface-2);color:var(--ink-3);font-size:11px;font-weight:700;letter-spacing:.04em}


.peek{position:fixed;left:var(--s3);right:var(--s3);bottom:calc(var(--s3) + env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;gap:var(--s3);min-height:56px;padding:var(--s2) var(--s2) var(--s2) var(--s4);background:var(--ink);color:#fff;border-radius:var(--r-lg);box-shadow:0 8px 24px rgba(26,26,24,.24);transform:translateY(calc(100% + 24px));transition:transform 220ms var(--ease)}
.peek.on{transform:none}
.peek .pk{font-size:var(--fs-12);line-height:16px;color:#C9C6BE;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.peek .pv{font-size:var(--fs-18);line-height:24px;font-weight:800;white-space:nowrap}
.peek .txt{min-width:0;flex:1}
.peek a{flex:none;display:inline-flex;align-items:center;height:44px;padding:0 var(--s3);border-radius:var(--r-md);background:#fff;color:var(--ink);font-size:var(--fs-13);font-weight:700;text-decoration:none}


.toast{position:fixed;left:50%;top:calc(var(--header) + var(--s3));z-index:40;transform:translate(-50%,-8px);opacity:0;pointer-events:none;padding:var(--s2) var(--s4);border-radius:var(--r-pill);background:var(--ink);color:#fff;font-size:var(--fs-13);font-weight:600;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
.toast.on{opacity:1;transform:translate(-50%,0)}


.ft{padding:var(--s8) 0 calc(var(--s16) + var(--s8));border-top:1px solid var(--line);font-size:var(--fs-12);line-height:20px;color:var(--ink-3)}
.ft .wrap{display:grid;gap:var(--s2)}
.ft a{color:var(--ink-2)}


@media (min-width:600px){
  :root{--gutter:24px}
  .card,.result{padding:var(--s6)}
  .chips-row{margin:0;padding:0;flex-wrap:wrap;overflow:visible}
}
@media (min-width:960px){
  :root{--gutter:32px;--header:64px;--logo-h:26px;--logo-w:calc(26px * 3.7275)}
  .hd nav{display:block}
  .hd .icon-btn{margin-left:0}
  .page-hd{padding:var(--s8) 0 var(--s6)}
  .page-hd h1{font-size:var(--fs-32);line-height:40px;letter-spacing:.01em}
  .page-hd .lead{margin-top:var(--s2);font-size:var(--fs-16);line-height:24px}
  .calc{grid-template-columns:minmax(0,1fr) 440px;gap:var(--s6);align-items:start;padding-bottom:var(--s16)}
  .col-side{position:sticky;top:calc(var(--header) + var(--s6))}
  .result .big{font-size:var(--fs-48);line-height:56px}
  .guide{padding:var(--s16) 0 var(--s24)}
  .guide-grid{grid-template-columns:minmax(0,680px) 320px;justify-content:space-between;gap:var(--s12)}
  .side-stick{position:sticky;top:calc(var(--header) + var(--s6));display:grid;gap:var(--s8);align-content:start}
  .peek{display:none}
}
@media (min-width:960px){
  .calc{grid-template-areas:"q r" "s r" "a r" ". r";grid-template-rows:auto auto auto 1fr}
  .a-q{grid-area:q}.a-r{grid-area:r;align-self:start}.a-s{grid-area:s}.a-a{grid-area:a}
}


.fav{flex:none;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:#fff;color:var(--ink-2);font-size:var(--fs-12);font-weight:700}
.fav svg{width:14px;height:14px}
.fav[aria-pressed=true]{border-color:var(--custom);color:var(--custom);background:var(--custom-soft)}
.fav[aria-pressed=true] svg{fill:currentColor}
.fav,.chip{position:relative}
.fav::after,.chip::after{content:"";position:absolute;left:0;right:0;top:-4px;bottom:-4px}

.disclaimer{display:flex;gap:var(--s2);margin-top:var(--s4);padding:var(--s3);border-radius:var(--r-md);background:var(--paper);font-size:var(--fs-12);line-height:18px;color:var(--ink-2)}
.disclaimer svg{flex:none;width:16px;height:16px;margin-top:1px;color:var(--ink-3)}


.tl{margin-top:var(--s2);display:grid}
.tl li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px var(--s3);padding:var(--s3) 0 var(--s3) var(--s6)}
.tl li+li{border-top:1px solid var(--line)}
.tl li::before{content:"";position:absolute;left:4px;top:19px;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px var(--line-strong)}
.tl li.key::before{background:var(--accent);box-shadow:none}
.tl li.done{color:var(--ink-3)}
.tl li.done::before{background:var(--line);box-shadow:none}
.tl .w{font-size:var(--fs-14);line-height:20px;font-weight:700}
.tl .d{font-size:var(--fs-14);line-height:20px;font-weight:700;text-align:right;white-space:nowrap}
.tl .s{font-size:var(--fs-12);line-height:16px;color:var(--ink-3)}
.tl .r{font-size:var(--fs-12);line-height:16px;color:var(--ink-3);text-align:right;white-space:nowrap}
.tl li.key .d{color:var(--accent)}
.result .meta .nw{white-space:nowrap}
.result .meta .nw+.nw::before{content:"・"}
@media (max-width:599px){.result .meta .nw{display:block}.result .meta .nw+.nw::before{content:none}}


.top-hd{padding:var(--s6) 0 var(--s4)}
.top-hd h1{font-size:var(--fs-24);line-height:32px;font-weight:800;letter-spacing:.02em}
.top-hd .lead{margin-top:var(--s1);font-size:var(--fs-14);line-height:20px;color:var(--ink-2)}
.hub{display:grid;gap:var(--s8);padding-bottom:var(--s8)}
.search{position:relative}
.search svg{position:absolute;left:var(--s4);top:16px;width:20px;height:20px;color:var(--ink-3);pointer-events:none}
.search .input{height:52px;padding-left:44px;padding-right:var(--s12);border-radius:var(--r-lg);font-size:var(--fs-16);background:#fff;box-shadow:var(--shadow);border-color:var(--line-strong)}
.search .input::-webkit-search-cancel-button{display:none}
.search kbd{position:absolute;right:var(--s3);top:14px;display:none;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:var(--r-sm);font:600 12px/1 var(--font);color:var(--ink-3)}
.hits{margin-top:var(--s3)}
.hits-n{font-size:var(--fs-13);line-height:20px;color:var(--ink-3);margin-bottom:var(--s2)}
.sec-hd{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3);min-height:24px}
.sec-hd h2{font-size:var(--fs-16);line-height:24px;font-weight:700}
.sec-hd .aside{font-size:var(--fs-12);color:var(--ink-3)}
.btn-text.sm{min-height:var(--tap);font-size:var(--fs-12);color:var(--ink-3);font-weight:600}
.recent .ago{font-size:var(--fs-12);line-height:16px;color:var(--ink-3);white-space:nowrap}
.recent small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rel-list a>span:first-child{min-width:0}
.fav-mark{color:var(--custom);margin-right:6px;font-size:12px}
.rel-list a[aria-disabled=true]{color:var(--ink-2);pointer-events:none}

.tiles{display:grid;grid-template-columns:repeat(var(--cm,2),minmax(0,1fr));gap:var(--s2)}
.tiles>.tile:last-child{grid-column:span var(--sm,1)}
@media (min-width:960px){.tiles{grid-template-columns:repeat(var(--cp,3),minmax(0,1fr))}.tiles>.tile:last-child{grid-column:span var(--sp,1)}}
.tile{position:relative;display:grid;align-content:start;gap:var(--s1);min-height:112px;padding:var(--s3) var(--s3) var(--s4);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);color:var(--ink);text-decoration:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
@media (hover:hover){.tile:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}}
.tile[aria-disabled=true]{pointer-events:none;background:#FBFAF8}
.tile-g{display:flex;align-items:center;justify-content:space-between;gap:var(--s1);font-size:11px;line-height:16px;font-weight:700;letter-spacing:.06em;color:var(--ink-3);white-space:nowrap}
.tile-g::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;margin-right:-2px}
.tile-g{justify-content:flex-start}
.tile-g .soon{margin-left:auto}
.tile.g-work .tile-g{color:var(--accent)}
.tile-t{margin-top:var(--s1);font-size:var(--fs-16);line-height:24px;font-weight:700}
.tile-p{font-size:var(--fs-12);line-height:18px;color:var(--ink-2)}
.tile-p b{color:var(--ink);font-weight:700}
.cats{display:grid;gap:var(--s3)}
.cat{display:grid;gap:var(--s2);padding:var(--s4);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);color:var(--ink);text-decoration:none;box-shadow:var(--shadow)}
@media (hover:hover){.cat:hover{border-color:var(--line-strong)}}
.cat-hd{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3)}
.cat-t{font-size:var(--fs-20);line-height:28px;font-weight:800;letter-spacing:.02em}
.cat-n{font-size:var(--fs-12);color:var(--ink-3)}
.cat-d{font-size:var(--fs-14);line-height:20px;color:var(--ink-2)}
.cat-links{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2);padding-top:var(--s3);border-top:1px solid var(--line)}
.cat-links span{display:inline-flex;align-items:center;height:28px;padding:0 var(--s2);border-radius:var(--r-sm);background:var(--paper);font-size:var(--fs-12);font-weight:600;color:var(--ink-2)}
.cat-links .more{margin-left:auto;background:none;color:var(--accent);gap:2px;padding:0}
.cat-links .more svg{width:14px;height:14px}
.today-strip{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);margin:0 0 var(--s4);font-size:var(--fs-13);line-height:20px;color:var(--ink-2)}
.today-strip span{white-space:nowrap}
.today-strip b{color:var(--ink);font-weight:700;margin-right:2px}
.groups{display:grid;gap:var(--s6);margin-top:var(--s4)}
.grp h3{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-14);line-height:20px;font-weight:700;margin-bottom:var(--s2);color:var(--ink-2)}
.gdot{width:8px;height:8px;border-radius:50%}
.gdot.g-work{background:var(--accent)}
@media (min-width:960px){
  .top-hd{padding:var(--s12) 0 var(--s6)}
  .top-hd h1{font-size:var(--fs-32);line-height:40px}
  .top-hd .lead{font-size:var(--fs-16);line-height:24px;margin-top:var(--s2)}
  .hub{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"s s" "a m" "b m" "c m";grid-template-rows:auto auto auto 1fr;column-gap:var(--s12);row-gap:var(--s8);align-items:start;padding-bottom:var(--s16)}
  .search{grid-area:s;max-width:720px}
  .search kbd{display:grid}
  .hub>#mine{grid-area:m;position:sticky;top:calc(var(--header) + var(--s6))}
  .hub>[data-area=a]{grid-area:a}.hub>[data-area=b]{grid-area:b}
  .cats{grid-template-columns:1fr 1fr}
  .groups{grid-template-columns:1fr 1fr;column-gap:var(--s6)}
  .today-strip{font-size:var(--fs-14)}
}
.hub>*{min-width:0}
.tile-g{overflow:hidden;text-overflow:ellipsis}
.tile-t{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.recent .empty{padding:var(--s4);font-size:var(--fs-13);line-height:20px;color:var(--ink-3)}
@media (max-width:959px){#mine.is-empty{display:none}}
.item .it-main{min-width:0;font-weight:600}
.item .it-main small{display:block;font-size:var(--fs-12);line-height:16px;font-weight:400;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:599px){.addbox{padding:var(--s3)}}
.btn-text.sm{position:relative;min-height:24px}
.btn-text.sm::after{content:"";position:absolute;inset:-10px -8px}


.formula{margin:0;white-space:pre-wrap;font-family:var(--font);font-size:var(--fs-13);line-height:22px;color:var(--ink-2)}
.expert{margin-top:var(--s8);padding:var(--s4);border:1px solid var(--line);border-left:3px solid var(--custom);border-radius:var(--r-md);background:var(--custom-soft)}
.expert h3{margin:0;font-size:var(--fs-14);line-height:20px;color:var(--custom)}
.expert p{margin-top:var(--s2);font-size:var(--fs-14);line-height:24px;color:var(--ink)}
@media (max-width:599px){
  .fav{width:var(--tap);height:var(--tap);padding:0;justify-content:center;border-radius:50%}
  .fav svg{width:18px;height:18px}
  .fav span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .fav::after{content:none}
}
.notice{background:var(--surface);border-bottom:1px solid var(--line)}
.notice .wrap{display:flex;gap:var(--s2);align-items:flex-start;padding-top:var(--s3);padding-bottom:var(--s3);font-size:var(--fs-13);line-height:20px;color:var(--ink-2)}
.notice svg{width:16px;height:16px;flex:none;margin-top:2px}
.ft nav{display:flex;flex-wrap:wrap;column-gap:var(--s4);row-gap:0;margin:calc(var(--s2) * -1) 0}
.ft nav a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;color:var(--ink-2);text-decoration:none}
.prose h1{font-size:var(--fs-24);line-height:32px;font-weight:700}
.prose ul,.prose ol{margin-top:var(--s3);padding-left:1.4em;list-style:revert}
.prose li{margin-top:var(--s2);font-size:var(--fs-16);line-height:1.85}
.prose blockquote{margin-top:var(--s4);padding:var(--s3) var(--s4);background:var(--paper);border-left:3px solid var(--accent);border-radius:var(--r-md)}
.prose table{width:100%;margin-top:var(--s4);border-collapse:collapse;font-size:var(--fs-14);line-height:1.6}
.prose th,.prose td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.prose th{background:var(--surface-2)}
.prose .cite{margin-top:var(--s4);font-size:var(--fs-13);line-height:22px;color:var(--ink-3)}
.prose pre.code{margin-top:var(--s3);padding:var(--s3);background:var(--surface-2);border-radius:var(--r-md);overflow-x:auto;font-size:var(--fs-14);line-height:1.6}
.prose .cite a,.prose p a{overflow-wrap:anywhere}
main>section.prose{padding:var(--s8) 0 var(--s16)}
.detail .hol{white-space:nowrap}
.gdot{background:var(--line-strong)}

.feature{display:grid;gap:var(--s2);padding:var(--s5) var(--s5) var(--s5);background:#fff;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:var(--r-xl);box-shadow:var(--shadow);color:var(--ink);text-decoration:none}
.feature .tile-g{color:var(--accent)}
.feature-t{font-size:var(--fs-24);line-height:32px;font-weight:800;letter-spacing:.01em}
.feature-d{font-size:var(--fs-14);line-height:22px;color:var(--ink-2)}
.feature-a{display:grid;gap:2px;margin-top:var(--s2);padding:var(--s3) var(--s4);background:var(--accent-soft);border-radius:var(--r-lg)}
.feature-a small{font-size:var(--fs-12);line-height:16px;color:var(--accent);font-weight:700}
.feature-a span{font-size:var(--fs-20);line-height:28px;font-weight:800;color:var(--ink)}
.feature-a b{color:var(--accent)}
.feature-cta{display:flex;align-items:center;justify-content:center;gap:var(--s2);min-height:var(--field);margin-top:var(--s2);background:var(--accent);color:#fff;border-radius:var(--r-lg);font-size:var(--fs-16);font-weight:700}
.feature-cta svg{width:16px;height:16px}
@media (hover:hover){.feature:hover{border-color:var(--line-strong)}.feature:hover .feature-cta{background:var(--accent-hover)}}
@media (min-width:960px){.feature{grid-template-columns:1fr auto;align-items:end;column-gap:var(--s6);padding:var(--s6)}.feature>*{grid-column:1}.feature-a{grid-column:1}.feature-cta{grid-column:2;grid-row:3/5;align-self:end;padding:0 var(--s6)}}
