:root { color-scheme: light; --ink:#17202a; --muted:#667085; --line:#d9dee7; --navy:#173a5e; --teal:#147d7e; --paper:#fff; --bg:#f4f6f8; --danger:#a32626; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:"Noto Sans JP","Yu Gothic",sans-serif; line-height:1.55; }
a { color:var(--navy); }
.site-header { min-height:70px; padding:16px max(24px,calc((100vw - 1200px)/2)); background:var(--navy); color:#dce8f3; display:flex; gap:24px; align-items:center; }
.brand { color:white; font-size:1.3rem; font-weight:800; text-decoration:none; letter-spacing:.08em; }
.account-menu { margin-left:auto; display:flex; gap:12px; align-items:center; }.account-menu form { margin:0; }.link-button { padding:0; background:transparent; color:white; text-decoration:underline; font-weight:400; }
main { width:min(1200px,calc(100% - 32px)); margin:32px auto 72px; }
.page-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:20px; }
h1,h2,h3,p { margin-top:0; } h1 { margin-bottom:4px; font-size:2rem; } h2 { font-size:1.2rem; border-left:4px solid var(--teal); padding-left:10px; }
.eyebrow { color:var(--teal); font-weight:800; font-size:.76rem; letter-spacing:.12em; margin-bottom:2px; }
.panel { background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:22px; margin:18px 0; box-shadow:0 3px 12px rgba(23,58,94,.05); overflow:auto; }
table { width:100%; border-collapse:collapse; font-size:.9rem; } th,td { text-align:left; border-bottom:1px solid var(--line); padding:10px 8px; vertical-align:top; } th { color:var(--muted); background:#f8fafb; white-space:nowrap; } td small { display:block; color:var(--muted); }
.num { text-align:right; }.empty { color:var(--muted); text-align:center; padding:28px; }
.button,button { display:inline-block; border:0; border-radius:6px; background:var(--navy); color:white; padding:9px 15px; text-decoration:none; font:inherit; font-weight:700; cursor:pointer; }
.button.primary,button.secondary { background:var(--teal); }.actions { display:flex; flex-wrap:wrap; gap:9px; margin:10px 0; }.actions .button { background:white; color:var(--navy); border:1px solid var(--navy); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; }.field { display:flex; flex-direction:column; gap:5px; }.field label { font-weight:700; }.field input,.field select,.field textarea { border:1px solid #adb7c4; border-radius:5px; padding:9px; font:inherit; background:white; }.field input[type=checkbox] { align-self:flex-start; }.field textarea { min-height:80px; }.field small { color:var(--muted); }.field .errorlist,.errorlist { color:var(--danger); margin:0; padding-left:20px; }.form-grid .actions { grid-column:1/-1; }
.calculation-form { display:flex; flex-wrap:wrap; align-items:end; gap:14px; }.calculation-form .field { min-width:190px; }
.result-hero { background:linear-gradient(115deg,var(--navy),#245b7a); color:white; border-radius:10px; padding:24px 28px; display:flex; gap:18px; align-items:baseline; flex-wrap:wrap; }.result-hero p { margin:0; }.result-hero strong { font-size:2rem; }.result-hero span,.result-hero small { color:#dce8f3; }
.tag { display:inline-block; margin:2px; padding:2px 6px; background:#e7f4f3; color:#125f60; border-radius:4px; }.alert { border-left:4px solid #c08715; background:#fff7e2; padding:12px; }.danger { color:var(--danger); }.note { color:var(--muted); }.message { background:#e7f4f3; border-left:4px solid var(--teal); padding:10px; }
.login-panel { max-width:460px; margin:8vh auto; }.login-panel form { display:grid; gap:18px; }
@media (max-width:760px) { .form-grid { grid-template-columns:1fr; }.page-heading { align-items:start; flex-direction:column; }.site-header span { display:none; } }
