@charset "UTF-8";

:root{
  --bg:#f6f8fb;
  --surface:#ffffff;
  --surface-subtle:#f8fafc;
  --text:#172033;
  --muted:#5b6779;
  --line:#d8e0ea;
  --line-strong:#b7c3d2;
  --brand:#175cd3;
  --brand-dark:#124aa9;
  --brand-soft:#edf4ff;
  --success:#067647;
  --success-soft:#ecfdf3;
  --warning:#9a6700;
  --warning-soft:#fffaeb;
  --danger:#b42318;
  --danger-soft:#fff4f2;
  --focus:#84adff;
  --radius-sm:8px;
  --radius:12px;
  --control-h:48px;
  --content:940px;
  --measure:720px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-text-size-adjust:100%;
}
button,input,select,textarea{font:inherit;color:inherit}
button{touch-action:manipulation}
a{color:var(--brand)}
a:hover{color:var(--brand-dark)}
:where(a,button,input,select,textarea):focus-visible{
  outline:3px solid var(--focus);
  outline-offset:2px;
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
.site-header{
  background:var(--surface);
  border-bottom:1px solid var(--line);
}
.site-header-inner{
  width:min(var(--content),calc(100% - 40px));
  min-height:64px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.site-brand{
  color:var(--text);
  text-decoration:none;
  font-weight:750;
  letter-spacing:.01em;
  white-space:nowrap;
}
.site-brand small{
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em;
}
.site-nav{
  display:flex;
  align-items:stretch;
  gap:22px;
  min-height:64px;
}
.site-nav a{
  position:relative;
  display:flex;
  align-items:center;
  color:var(--muted);
  text-decoration:none;
  font-size:14px;
  font-weight:650;
  white-space:nowrap;
}
.site-nav a:hover{color:var(--text)}
.site-nav a[aria-current="page"]{color:var(--brand)}
.site-nav a[aria-current="page"]::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:3px;
  background:var(--brand);
  border-radius:3px 3px 0 0;
}
.page{
  width:min(var(--content),calc(100% - 40px));
  margin:0 auto;
  padding:44px 0 76px;
}
.page-intro{max-width:var(--measure);margin-bottom:30px}
.kicker{
  margin:0 0 8px;
  color:var(--brand);
  font-size:13px;
  font-weight:750;
  letter-spacing:.03em;
}
h1,h2,h3{color:var(--text)}
h1{
  margin:0 0 14px;
  font-size:clamp(32px,5vw,46px);
  line-height:1.32;
  letter-spacing:-.025em;
  font-weight:760;
}
.lead{
  margin:0;
  max-width:var(--measure);
  color:var(--muted);
  font-size:17px;
  line-height:1.72;
}
.trust-note{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin:14px 0 0;
  color:var(--muted);
  font-size:13px;
}
.trust-note::before{
  content:"";
  width:6px;height:6px;
  flex:none;
  margin-top:.66em;
  border-radius:50%;
  background:var(--line-strong);
}
.tool-panel,
.result-panel,
.practice-panel{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px;
}
.result-panel,.practice-panel{margin-top:24px}
.panel-heading{margin:0 0 20px}
.panel-heading h2{
  margin:0;
  font-size:24px;
  line-height:1.4;
}
.panel-heading p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:14px;
}
.field-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.field-grid .wide{grid-column:1/-1}
.field{min-width:0}
.field-label,
fieldset>legend{
  display:block;
  margin:0 0 7px;
  padding:0;
  color:var(--text);
  font-size:14px;
  font-weight:720;
}
fieldset{
  min-width:0;
  margin:0;
  padding:0;
  border:0;
}
.control{
  width:100%;
  min-height:var(--control-h);
  border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);
  background:var(--surface);
  padding:10px 12px;
  line-height:1.45;
}
select.control{padding-right:34px}
textarea.control{
  min-height:180px;
  resize:vertical;
  line-height:1.65;
}
.control:hover{border-color:#94a3b8}
.control:focus{border-color:var(--brand)}
.field-help{
  margin:6px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.55;
}
.field-example{
  margin:8px 0 0;
  padding:9px 11px;
  border-left:3px solid var(--line-strong);
  background:var(--surface-subtle);
  color:var(--muted);
  font-size:12px;
}
.form-actions{margin-top:22px}
.btn{
  min-height:46px;
  border:1px solid transparent;
  border-radius:var(--radius-sm);
  padding:10px 16px;
  font-weight:720;
  cursor:pointer;
}
.btn:disabled{cursor:not-allowed;opacity:.48}
.btn-primary{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
}
.btn-primary:hover:not(:disabled){background:var(--brand-dark);border-color:var(--brand-dark)}
.btn-secondary{
  background:var(--surface);
  border-color:var(--line-strong);
  color:var(--text);
}
.btn-secondary:hover:not(:disabled){background:var(--surface-subtle)}
.btn-block{width:100%;min-height:50px}
.button-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}
.result-panel[hidden]{display:none}
.result-meta{
  margin:0 0 4px;
  color:var(--muted);
  font-size:13px;
}
.result-title{
  margin:0;
  font-size:26px;
  line-height:1.4;
}
.task-list{margin-top:14px}
.task-item{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:14px;
  padding:17px 0;
  border-top:1px solid var(--line);
}
.task-item:first-child{border-top:0}
.task-rank{
  width:30px;height:30px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--brand-soft);
  color:var(--brand);
  font-weight:800;
  font-size:13px;
}
.task-item h3{
  margin:0 0 2px;
  font-size:17px;
  line-height:1.45;
}
.task-time{
  display:inline-block;
  margin:0 0 4px;
  color:var(--brand);
  font-size:12px;
  font-weight:700;
}
.task-item p{margin:0;color:var(--muted);font-size:14px}
.notice{
  margin-top:18px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-left:4px solid var(--line-strong);
  border-radius:var(--radius-sm);
  background:var(--surface-subtle);
}
.notice strong{display:block;margin-bottom:3px;font-size:14px}
.notice p{margin:0;color:var(--muted);font-size:14px}
.notice.success{
  border-color:#abefc6;
  border-left-color:var(--success);
  background:var(--success-soft);
}
.status-text{color:var(--muted);font-size:12px}
.content-section{
  max-width:var(--measure);
  margin-top:50px;
}
.content-section h2{
  margin:36px 0 10px;
  font-size:24px;
  line-height:1.45;
}
.content-section h2:first-child{margin-top:0}
.content-section p{margin:0 0 13px;color:var(--muted)}
.content-section ul{margin:10px 0 0;padding-left:1.35em;color:var(--muted)}
.content-section li{margin:5px 0}
.stage-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.stage-block{
  border-top:3px solid var(--line-strong);
  padding:14px 2px 0;
}
.stage-block h3{margin:0 0 5px;font-size:16px}
.stage-block p{margin:0;font-size:13px;color:var(--muted)}
.related{
  margin-top:54px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.related-title{
  margin:0 0 10px;
  color:var(--muted);
  font-size:13px;
  font-weight:700;
}
.related-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.related-links a{
  position:relative;
  display:block;
  min-height:76px;
  padding:14px 40px 14px 15px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface);
  color:var(--text);
  text-decoration:none;
}
.related-links a::after{
  content:"→";
  position:absolute;
  right:15px;top:16px;
  color:var(--brand);
  font-weight:800;
}
.related-links a:hover{border-color:#9dbbf3;background:#fbfdff}
.related-links b{display:block;margin-bottom:2px;font-size:14px}
.related-links span{display:block;color:var(--muted);font-size:12px;line-height:1.55}
.source-note{
  max-width:var(--measure);
  margin-top:34px;
  padding-top:18px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
}
.preset-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.preset{
  min-height:42px;
  padding:8px 12px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:var(--surface);
  color:var(--text);
  cursor:pointer;
  font-size:13px;
  font-weight:650;
}
.preset:hover{border-color:#89aaf0;background:#f8fbff}
.preset[aria-pressed="true"]{
  border-color:var(--brand);
  background:var(--brand-soft);
  color:var(--brand-dark);
}
.time-fields{
  display:flex;
  align-items:end;
  gap:12px;
  margin-top:14px;
}
.time-field{width:116px}
.time-field .control{text-align:right}
.live-summary{
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
}
.live-summary strong{color:var(--text)}
.metric-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:18px;
}
.metric{
  padding:16px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface-subtle);
}
.metric small{display:block;color:var(--muted);font-size:12px}
.metric strong{
  display:block;
  margin:3px 0;
  font-size:24px;
  line-height:1.35;
}
.metric p{margin:0;color:var(--muted);font-size:13px}
.practice-panel h2{margin:0;font-size:24px}
.practice-panel .sublead{margin:5px 0 0;color:var(--muted);font-size:14px}
.timer{
  margin:20px 0 4px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size:52px;
  line-height:1.15;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.04em;
}
.timer-target{margin:0 0 16px;color:var(--muted);font-size:13px}
.feedback{
  margin-top:18px;
  padding:14px 16px;
  border:1px solid #b2ccff;
  border-radius:var(--radius-sm);
  background:var(--brand-soft);
}
.feedback[hidden]{display:none}
.feedback strong{display:block;margin-bottom:3px;font-size:17px}
.feedback p{margin:0;color:#344054;font-size:14px}
.custom-fields[hidden]{display:none}
.progress-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
}
.progress-head h2{margin:0;font-size:24px}
.progress-count{color:var(--muted);font-size:13px}
progress{
  width:100%;
  height:8px;
  margin:12px 0 4px;
  overflow:hidden;
  border:0;
  border-radius:999px;
  background:#e9eef5;
  accent-color:var(--brand);
}
progress::-webkit-progress-bar{background:#e9eef5;border-radius:999px}
progress::-webkit-progress-value{background:var(--brand);border-radius:999px}
progress::-moz-progress-bar{background:var(--brand);border-radius:999px}
.check-group{margin-top:26px}
.check-group:first-child{margin-top:14px}
.check-group h3{margin:0 0 3px;font-size:16px}
.check-group-note{margin:0 0 6px;color:var(--muted);font-size:12px}
.check-item{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-height:50px;
  padding:12px 0;
  border-top:1px solid var(--line);
  cursor:pointer;
}
.check-item input{
  width:20px;height:20px;
  flex:none;
  margin:2px 0 0;
  accent-color:var(--brand);
}
.check-item b{display:block;font-size:15px}
.check-item span{display:block;margin-top:2px;color:var(--muted);font-size:13px}
.company-badge{
  display:inline-flex;
  align-items:center;
  margin-left:7px;
  padding:1px 6px;
  border-radius:999px;
  background:var(--brand-soft);
  color:var(--brand-dark);
  font-size:10px;
  font-weight:750;
  vertical-align:1px;
}
@media(max-width:760px){
  .site-header-inner{
    width:min(100% - 28px,var(--content));
    min-height:auto;
    padding:14px 0 0;
    display:block;
  }
  .site-brand{display:inline-block}
  .site-nav{
    min-height:48px;
    margin-top:7px;
    gap:18px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
  }
  .site-nav::-webkit-scrollbar{display:none}
  .site-nav a{min-height:48px;font-size:13px}
  .page{
    width:min(100% - 28px,var(--content));
    padding:30px 0 58px;
  }
  .page-intro{margin-bottom:24px}
  h1{font-size:clamp(30px,9.6vw,39px)}
  .lead{font-size:16px}
  .tool-panel,.result-panel,.practice-panel{padding:20px}
  .field-grid,.field-grid.three{grid-template-columns:1fr}
  .field-grid .wide{grid-column:auto}
  .stage-grid{grid-template-columns:1fr}
  .stage-block{padding-top:11px}
  .related-links{grid-template-columns:1fr}
  .metric-grid{grid-template-columns:1fr}
  .control{font-size:16px}
}
@media(max-width:420px){
  .site-header-inner,.page{width:calc(100% - 24px)}
  .tool-panel,.result-panel,.practice-panel{padding:17px}
  .button-row .btn{flex:1 1 auto}
  .timer{font-size:44px}
  .time-fields{gap:8px}
  .time-field{width:min(110px,42vw)}
}
