/* 開発者向けページ（app.css の色・文字を使い、落ち着いた見せ方に） */
body.dev{padding-bottom:0}
.dev main{max-width:960px}
.small-btn{padding:.3rem .9rem;font-size:.88rem}

.d-hero{padding:40px 0 30px}
.d-hero h1{font-size:clamp(1.9rem,5.4vw,3.1rem);line-height:1.3;margin:0 0 16px;font-weight:800;letter-spacing:.01em}
.d-lead{max-width:40em;font-size:1.05rem;margin:0 0 22px}
.d-cta{display:flex;flex-wrap:wrap;gap:12px;margin:0}
.d-stats{display:flex;flex-wrap:wrap;gap:12px 34px;margin:34px 0 0;padding-top:20px;border-top:2.5px dashed var(--hair)}
.d-stats div{display:flex;align-items:baseline;gap:4px}
.d-stats dt{font:800 2.4rem/1 var(--en)}
.d-stats dd{margin:0;font-weight:700;color:var(--ink-2)}

.d-sec{padding:44px 0;border-top:2.5px dashed var(--hair)}
.d-sec h2{font-size:1.55rem;font-weight:800;margin:0 0 6px}
.d-sub{margin:0 0 22px;color:var(--ink-2)}

.d-data{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px 30px;margin:0}
.d-data div{border-left:5px solid var(--blue);padding:.1rem 0 .1rem .9rem}
.d-data div:nth-child(3n+2){border-color:var(--pink)}
.d-data div:nth-child(3n){border-color:var(--sun)}
.d-data dt{font-weight:800;font-size:1.05rem}
.d-data dd{margin:.15rem 0 0;font-size:.92rem;color:var(--ink-2)}

.d-api-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;align-items:start;margin-top:14px}
@media (max-width:760px){.d-api-grid{grid-template-columns:minmax(0,1fr)}}
.d-list{margin:0;padding-left:1.2em}
.d-list li{margin:.2rem 0}
.d-try{background:var(--sheet);border:3px solid var(--line);border-radius:18px;box-shadow:6px 6px 0 var(--blue);overflow:hidden}
.d-try-f{padding:12px 14px;border-bottom:3px solid var(--line);display:grid;gap:6px}
.d-try-f label{font-size:.82rem;font-weight:800}
.d-try-f div{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.d-get{font:700 .9rem var(--en)}
.d-try-f input{flex:1;min-width:100px;border:2px solid var(--line);border-radius:10px;padding:.25rem .6rem;font:700 1rem var(--en);background:var(--paper)}
.d-try-f .btn{padding:.25rem .9rem;box-shadow:2px 2px 0 var(--line)}
.d-pre{margin:0;max-height:380px;overflow:auto;padding:14px 16px;background:#1E2140;color:#E6E9FF;font:500 .78rem/1.55 ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-word}

.d-svc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.d-svc li{display:grid;gap:4px;background:var(--sheet);border:2.5px solid var(--line);border-radius:16px;padding:.9rem 1rem}
.d-svc b{font-size:1.02rem}
.d-svc span{font-size:.88rem;color:var(--ink-2)}

.d-works{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.d-works li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;background:var(--sheet);border:2.5px solid var(--line);border-radius:16px;padding:1rem}
.d-works li:not(:has(img)){grid-template-columns:minmax(0,1fr)}
.d-works img{width:160px;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:2px solid var(--line)}
@media (max-width:560px){.d-works li{grid-template-columns:minmax(0,1fr)}.d-works img{width:100%}}
.d-works p{margin:0 0 .3rem}
.w-t{font-weight:800;font-size:1.05rem}
.w-m{font-size:.85rem;color:var(--ink-2)}
.w-tags{display:flex;flex-wrap:wrap;gap:6px}
.w-tags span{font-size:.75rem;font-weight:700;border-radius:6px;padding:0 .5rem;background:var(--blue-soft)}

.d-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:f}
@media (max-width:760px){.d-flow{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media (max-width:460px){.d-flow{grid-template-columns:minmax(0,1fr)}}
.d-flow li{counter-increment:f;display:grid;gap:4px;align-content:start;padding-top:42px;position:relative}
.d-flow li::before{content:counter(f);position:absolute;top:0;left:0;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  background:var(--sun);border:2.5px solid var(--line);font:800 1rem var(--en);color:#1E2140}
.d-flow li:not(:last-child)::after{content:"";position:absolute;top:16px;left:40px;right:8px;border-top:3px dotted var(--line)}
.d-flow b{font-size:1.02rem}
.d-flow span{font-size:.88rem;color:var(--ink-2)}

.d-co{margin:0;background:var(--sheet);border:2.5px solid var(--line);border-radius:16px;overflow:hidden}
.d-co div{display:grid;grid-template-columns:9em minmax(0,1fr);gap:12px;padding:.6rem 1rem}
.d-co div+div{border-top:1.5px solid var(--hair)}
.d-co dt{font-weight:800;color:var(--ink-2);font-size:.9rem}
.d-co dd{margin:0}
@media (max-width:460px){.d-co div{grid-template-columns:minmax(0,1fr);gap:0}}

.d-form{display:grid;gap:14px;max-width:720px;background:var(--sheet);border:3px solid var(--line);border-radius:20px;padding:22px;box-shadow:6px 6px 0 var(--pink)}
.d-form label{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;font-weight:800;font-size:.9rem}
.d-form label>input:not([type=radio]),.d-form label>textarea{flex-basis:100%}
.d-form input:not([type=radio]),.d-form textarea{border:2px solid var(--line);border-radius:10px;padding:.5rem .7rem;background:var(--paper);font:500 1rem var(--jp);width:100%}
.d-form textarea{resize:vertical}
.d-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
@media (max-width:560px){.d-row{grid-template-columns:minmax(0,1fr)}}
.req{display:inline-block;margin-left:.5em;font-size:.75rem;background:var(--pink);color:#fff;border-radius:6px;padding:0 .4rem;vertical-align:.1em}
.d-type{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.d-type legend{font-weight:800;font-size:.9rem;margin-bottom:4px;padding:0}
.d-type label{display:flex;align-items:center;gap:6px;font-weight:700}
.d-type input{accent-color:var(--blue);width:18px;height:18px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.d-err{margin:0;color:#fff;background:var(--pink);border-radius:10px;padding:.4rem .8rem;font-weight:700}
.d-form p{margin:0}
.d-done{max-width:720px;background:color-mix(in srgb,var(--mint) 22%,var(--sheet));border:3px solid var(--line);border-radius:20px;padding:22px}
.d-done-t{font-size:1.3rem;font-weight:800;margin:0 0 .3rem}
.d-done p{margin:0}
.d-mail{margin-top:16px}

/* スマホ：余白を少なめに */
@media (max-width:640px){
  .d-hero{padding:22px 0 20px}
  .d-hero h1{font-size:1.75rem;margin-bottom:12px}
  .d-lead{font-size:1rem}
  .d-stats{gap:8px 22px;margin-top:22px;padding-top:14px}
  .d-stats dt{font-size:2rem}
  .d-sec{padding:30px 0}
  .d-sec h2{font-size:1.35rem}
  .d-sub{margin-bottom:16px}
  .d-data{gap:14px}
  .d-try{box-shadow:4px 4px 0 var(--blue);border-width:2.5px}
  .d-pre{max-height:320px;padding:12px;font-size:.78rem}
  .d-form{padding:16px 12px;border-width:2.5px;box-shadow:4px 4px 0 var(--pink)}
  .d-form input:not([type=radio]),.d-form textarea{font-size:16px}
  .d-done{padding:16px}
  .d-co div{padding:.55rem .8rem}
  .d-works li{padding:.8rem}
  .d-cta{flex-direction:column}
  .d-cta .btn{justify-content:center;padding:.6rem 1rem}
  .d-hero h1,.d-sec h2{word-break:auto-phrase}
}
