*{box-sizing:border-box}
:root{--orange:#ff5a00;--red:#dc143c;--blue:#4169e1;--ink:#0c1015;--line:#e0e3e7;--bg:#f4f5f6;--muted:#777}
body.monitor-public{margin:0;background:var(--bg);color:#111;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP","Yu Gothic",sans-serif}
.monitor-shell{width:min(100% - 30px,980px);margin:34px auto 60px}
.monitor-small{max-width:700px}
.monitor-logo{display:block;width:min(300px,70%);margin:0 auto 24px}
.monitor-hero{background:#111;color:#fff;border-radius:16px;padding:28px;margin-bottom:16px}
.monitor-hero .eyebrow{font-size:11px;font-weight:900;letter-spacing:.14em;color:#ff7a37}
.monitor-hero h1{font-size:30px;margin:7px 0}.monitor-hero p{margin:8px 0 0;color:#bbb;line-height:1.8;font-size:13px}
.monitor-limit{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.monitor-limit span{padding:8px 12px;border:1px solid #393d43;border-radius:999px;font-size:11px;font-weight:900}
.monitor-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:14px}
.monitor-card-head{padding:18px 20px;border-bottom:1px solid #eee}.monitor-card-head h2{font-size:18px;margin:0}.monitor-card-head p{font-size:11px;color:#888;margin:5px 0 0}
.monitor-card-body{padding:20px}
.monitor-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.monitor-field{display:block;font-size:11px;font-weight:900}.monitor-field.full{grid-column:1/-1}
.monitor-field input,.monitor-field select,.monitor-field textarea{width:100%;margin-top:6px;border:1px solid #d8dce1;border-radius:9px;background:#fff;padding:12px;font:inherit;font-size:13px}
.monitor-field textarea{min-height:110px;resize:vertical}
.monitor-required{color:var(--red);font-size:9px;margin-left:4px}
.monitor-consent{border:1px solid #eee;border-radius:10px;padding:13px;margin-top:12px;font-size:11px;line-height:1.7}
.monitor-consent label{display:flex;gap:9px;align-items:flex-start}.monitor-consent input{margin-top:3px}.monitor-consent a{color:#1254c4;font-weight:900}
.monitor-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px}
.monitor-primary,.monitor-secondary{appearance:none;border:0;border-radius:9px;min-height:48px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:12px;font-weight:900;cursor:pointer}
.monitor-primary{background:linear-gradient(90deg,var(--red),var(--blue));color:#fff}.monitor-secondary{background:#fff;border:1px solid #d9dde2;color:#111}
.monitor-alert{padding:13px 15px;border-radius:10px;margin:12px 0;font-size:12px;line-height:1.7}.monitor-alert.error{background:#fff0f2;color:#ac2439;border:1px solid #f3c0c8}.monitor-alert.success{background:#ebf8f0;color:#14723f;border:1px solid #bfe6cf}.monitor-alert.info{background:#f5f7ff;color:#344a8a;border:1px solid #d6dcfb}
.monitor-summary{margin:0;display:grid;grid-template-columns:160px 1fr}.monitor-summary dt,.monitor-summary dd{padding:11px 10px;border-bottom:1px solid #eee;margin:0;font-size:12px}.monitor-summary dt{font-weight:900;color:#666}.monitor-summary dd{font-weight:700}
.monitor-closed{text-align:center;padding:35px 20px}.monitor-closed strong{font-size:25px}.monitor-closed p{color:#777;line-height:1.8}
.monitor-complete{text-align:center}.monitor-complete h1{font-size:27px}.monitor-complete p{color:#666;line-height:1.9;font-size:13px}
.monitor-slots{font-weight:900;color:var(--orange)}
@media(max-width:680px){.monitor-shell{margin-top:18px}.monitor-hero{padding:22px 18px}.monitor-hero h1{font-size:24px}.monitor-grid2{grid-template-columns:1fr}.monitor-field.full{grid-column:auto}.monitor-card-body{padding:16px}.monitor-actions{flex-direction:column-reverse}.monitor-primary,.monitor-secondary{width:100%}.monitor-summary{grid-template-columns:110px 1fr}.monitor-summary dt,.monitor-summary dd{font-size:11px;padding:10px 7px}}

/* v1.1 inline legal consent */
.monitor-legal-consent{margin-top:18px;border:1px solid #dfe3e8;border-radius:12px;background:#f8f9fa;padding:14px}
.monitor-legal-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:9px}
.monitor-legal-title strong{font-size:14px}.monitor-legal-title span{font-size:10px;color:#777;font-weight:800}
.monitor-legal-frame{display:block;width:100%;height:280px;border:1px solid #cfd5dc;border-radius:8px;background:#fff}
.monitor-legal-read{font-size:10px;color:#8a5b00;background:#fff8e7;border:1px solid #f1ddb1;border-radius:7px;padding:8px 10px;margin-top:9px}
.monitor-legal-read.is-read{color:#14723f;background:#ebf8f0;border-color:#bfe6cf}
.monitor-legal-check{display:flex;align-items:flex-start;gap:9px;margin-top:10px;font-size:11px;font-weight:900;line-height:1.6}
.monitor-legal-check input{width:18px;height:18px;margin:0;flex:0 0 auto}
.monitor-legal-check input:disabled+span{color:#aaa}
.monitor-primary:disabled{opacity:.38;cursor:not-allowed;filter:grayscale(.35)}
@media(max-width:680px){.monitor-legal-frame{height:240px}.monitor-legal-title{display:block}.monitor-legal-title span{display:block;margin-top:3px}}

/* v2: 規約本文をHTML内に直接配置しCSS overflowで表示 */
.monitor-legal-frame{display:none!important}
.monitor-legal-scroll{
  height:260px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding:18px 20px;
  border:1px solid #d8dce1;
  border-radius:10px;
  background:#fafafa;
  color:#333;
  font-size:11px;
  line-height:1.85;
}
.monitor-legal-scroll:focus{outline:2px solid rgba(65,105,225,.2);outline-offset:1px}
.monitor-legal-scroll h1{font-size:16px;margin:0 0 10px}
.monitor-legal-scroll h2{font-size:13px;line-height:1.55;margin:20px 0 7px;color:#111}
.monitor-legal-scroll p{margin:0 0 12px}
.monitor-legal-scroll ol,.monitor-legal-scroll ul{margin:7px 0 14px;padding-left:1.8em}
.monitor-legal-scroll li{margin-bottom:5px}
.monitor-legal-scroll .legal-meta{font-size:10px;color:#777;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid #e4e6e8}
.monitor-legal-consent:not(.is-read) .monitor-legal-check{opacity:.45}
.monitor-legal-consent.is-read .monitor-legal-check{opacity:1}
@media(max-width:680px){
  .monitor-legal-scroll{height:220px;padding:14px;font-size:10.5px}
}


/* v2.1 scroll-consent state */
.monitor-legal-check input:disabled{
  cursor:not-allowed;
}
.monitor-legal-consent.is-read .monitor-legal-read{
  color:#14723f;
  font-weight:900;
}
.monitor-legal-consent.is-read{
  border-color:#bfe6cf;
}
