/* Asolvan Customer Portal — /intake/ presentation layer only.
   No logic lives here: field types, validation, readiness, and save/submit
   behavior are unchanged; this file only styles the existing markup. */

:root{
  --asolvan-bg:#f6f7fa;
  --asolvan-surface:#ffffff;
  --asolvan-border:#e3e6ec;
  --asolvan-text:#1f2430;
  --asolvan-text-muted:#6b7280;
  --asolvan-primary:#4f46e5;
  --asolvan-primary-dark:#4338ca;
  --asolvan-primary-tint:#eef0fd;
  --asolvan-success:#15803d;
  --asolvan-success-tint:#eefbf1;
  --asolvan-danger:#b42318;
  --asolvan-danger-tint:#fef3f2;
  --asolvan-radius:12px;
  --asolvan-radius-sm:8px;
  --asolvan-shadow:0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.06);
  --asolvan-max-width:640px;
}

/* ---------------- Shell (document-level; used by intake-page.php) ---------------- */

body.asolvan-intake-shell{
  margin:0;
  background:var(--asolvan-bg);
  color:var(--asolvan-text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Hiragino Sans,"Noto Sans JP",Meiryo,sans-serif;
  -webkit-font-smoothing:antialiased;
}

.asolvan-shell{min-height:100vh;display:flex;flex-direction:column;}

.asolvan-shell-header{
  background:var(--asolvan-surface);
  border-bottom:1px solid var(--asolvan-border);
  position:sticky;top:0;z-index:10;
}
.asolvan-shell-header-inner{
  max-width:var(--asolvan-max-width);
  margin:0 auto;
  padding:14px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.asolvan-shell-brand{
  font-weight:700;
  font-size:18px;
  letter-spacing:.2px;
  color:var(--asolvan-text);
}

.asolvan-shell-logout-form{margin:0;}
.asolvan-shell-logout{
  background:none;
  border:1px solid var(--asolvan-border);
  color:var(--asolvan-text-muted);
  font-size:13px;
  padding:7px 14px;
  border-radius:999px;
  cursor:pointer;
  font-family:inherit;
}
.asolvan-shell-logout:hover{background:var(--asolvan-bg);color:var(--asolvan-text);}

.asolvan-shell-main{
  flex:1;
  width:100%;
  max-width:var(--asolvan-max-width);
  margin:0 auto;
  padding:24px 20px 64px;
  box-sizing:border-box;
}

/* ---------------- Case banner ---------------- */

.asolvan-case-banner{margin-bottom:20px;}
.asolvan-case-product{
  font-size:22px;
  font-weight:700;
  margin:0 0 2px;
  line-height:1.3;
}
.asolvan-case-category{
  font-size:14px;
  font-weight:600;
  color:var(--asolvan-primary);
  margin:0 0 14px;
}
.asolvan-case-welcome{
  font-size:14px;
  line-height:1.8;
  color:var(--asolvan-text-muted);
  margin:0;
}

/* ---------------- Generic card ---------------- */

.asolvan-card{
  background:var(--asolvan-surface);
  border:1px solid var(--asolvan-border);
  border-radius:var(--asolvan-radius);
  box-shadow:var(--asolvan-shadow);
  padding:20px;
  margin-bottom:16px;
  box-sizing:border-box;
}

.asolvan-state-card{
  background:var(--asolvan-surface);
  border:1px solid var(--asolvan-border);
  border-radius:var(--asolvan-radius);
  box-shadow:var(--asolvan-shadow);
  padding:40px 24px;
  text-align:center;
  max-width:var(--asolvan-max-width);
  margin:60px auto;
}
.asolvan-state-text{color:var(--asolvan-text-muted);font-size:15px;margin:0 0 16px;}
.asolvan-state-text:last-child{margin-bottom:0;}

.asolvan-done-card{text-align:center;padding:32px 20px;}
.asolvan-done-title{
  font-size:18px;font-weight:700;color:var(--asolvan-success);margin:0 0 8px;
}

/* ---------------- Readiness / progress ---------------- */

.asolvan-readiness-card{padding:20px;}
.asolvan-progress-head{
  display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:8px;
}
.asolvan-progress-label{font-size:14px;color:var(--asolvan-text);}
.asolvan-progress-label strong{color:var(--asolvan-primary);}
.asolvan-progress-percent{font-size:13px;font-weight:700;color:var(--asolvan-text-muted);flex-shrink:0;}

.asolvan-progress-track{
  background:var(--asolvan-bg);
  border-radius:999px;
  height:8px;
  overflow:hidden;
  margin-bottom:14px;
}
.asolvan-progress-fill{
  height:100%;
  background:linear-gradient(90deg,var(--asolvan-primary),#7c73f0);
  border-radius:999px;
  transition:width .3s ease;
}

.asolvan-upcoming-heading{
  font-size:13px;font-weight:600;color:var(--asolvan-text-muted);margin:14px 0 8px;
}
.asolvan-upcoming-list{
  list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;
}
.asolvan-upcoming-list li{
  font-size:14px;
  color:var(--asolvan-text);
  background:var(--asolvan-bg);
  border-radius:var(--asolvan-radius-sm);
  padding:9px 12px;
  display:flex;
  align-items:center;
  gap:8px;
}
.asolvan-upcoming-list li::before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:var(--asolvan-primary);
  flex-shrink:0;
}

/* ---------------- Flash messages ---------------- */

.asolvan-flash{
  font-size:14px;
  padding:12px 14px;
  border-radius:var(--asolvan-radius-sm);
  margin:0 0 16px;
}
.asolvan-flash-success{background:var(--asolvan-success-tint);color:var(--asolvan-success);}
.asolvan-flash-error{background:var(--asolvan-danger-tint);color:var(--asolvan-danger);}

/* ---------------- Form fields ---------------- */

.asolvan-fields-card{display:flex;flex-direction:column;gap:22px;}

.asolvan-field-label-row{
  display:flex;align-items:center;gap:8px;margin-bottom:8px;
}
.asolvan-field-label{font-size:14px;font-weight:600;color:var(--asolvan-text);}
.asolvan-badge-required{
  font-size:11px;font-weight:700;color:var(--asolvan-primary);
  background:var(--asolvan-primary-tint);
  padding:2px 8px;border-radius:999px;line-height:1.6;
}

.asolvan-input,.asolvan-textarea,.asolvan-select{
  width:100%;
  box-sizing:border-box;
  font-family:inherit;
  font-size:15px;
  color:var(--asolvan-text);
  background:var(--asolvan-surface);
  border:1px solid var(--asolvan-border);
  border-radius:var(--asolvan-radius-sm);
  padding:11px 13px;
  line-height:1.5;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.asolvan-textarea{resize:vertical;min-height:96px;}
.asolvan-input:focus,.asolvan-textarea:focus,.asolvan-select:focus{
  outline:none;
  border-color:var(--asolvan-primary);
  box-shadow:0 0 0 3px var(--asolvan-primary-tint);
}
.asolvan-select{
  appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' fill-rule='evenodd'/></svg>");
  background-repeat:no-repeat;
  background-position:right 13px center;
  padding-right:34px;
}

.asolvan-field-help{
  font-size:12.5px;
  color:var(--asolvan-text-muted);
  margin:6px 0 0;
  line-height:1.5;
}

.asolvan-choice-group{display:flex;flex-direction:column;gap:2px;}
.asolvan-choice{
  display:flex;align-items:center;gap:10px;
  padding:9px 4px;
  cursor:pointer;
  font-size:14.5px;
}
.asolvan-choice input[type=checkbox],.asolvan-choice input[type=radio]{
  width:20px;height:20px;flex-shrink:0;accent-color:var(--asolvan-primary);cursor:pointer;
}

.asolvan-file-drop{
  display:flex;align-items:center;justify-content:center;
  border:1.5px dashed var(--asolvan-border);
  border-radius:var(--asolvan-radius-sm);
  padding:22px 14px;
  cursor:pointer;
  background:var(--asolvan-bg);
  transition:border-color .15s ease, background .15s ease;
}
.asolvan-file-drop:hover{border-color:var(--asolvan-primary);background:var(--asolvan-primary-tint);}
.asolvan-file-drop-label{font-size:14px;color:var(--asolvan-text-muted);font-weight:600;}
.asolvan-file-input{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.asolvan-file-status{font-size:13px;color:var(--asolvan-text-muted);margin:8px 0 0;}
.asolvan-file-status a{color:var(--asolvan-primary);font-weight:600;}

/* ---------------- Actions ---------------- */

.asolvan-actions-card{
  position:sticky;
  bottom:0;
  background:var(--asolvan-surface);
  border:1px solid var(--asolvan-border);
  border-radius:var(--asolvan-radius);
  box-shadow:0 -2px 8px rgba(16,24,40,.06);
  padding:16px 20px;
  margin-top:4px;
}
.asolvan-actions-hint{
  font-size:13px;color:var(--asolvan-text-muted);margin:0 0 12px;text-align:center;
}
.asolvan-actions-row{display:flex;gap:10px;}

.asolvan-btn{
  flex:1;
  font-family:inherit;
  font-size:15px;
  font-weight:600;
  border-radius:999px;
  padding:13px 20px;
  border:1px solid transparent;
  cursor:pointer;
  text-align:center;
  text-decoration:none;
  display:inline-block;
  transition:background .15s ease, opacity .15s ease;
}
.asolvan-btn-primary{background:var(--asolvan-primary);color:#fff;}
.asolvan-btn-primary:hover{background:var(--asolvan-primary-dark);}
.asolvan-btn-primary[disabled]{background:var(--asolvan-border);color:var(--asolvan-text-muted);cursor:not-allowed;}
.asolvan-btn-secondary{background:var(--asolvan-surface);color:var(--asolvan-text);border-color:var(--asolvan-border);}
.asolvan-btn-secondary:hover{background:var(--asolvan-bg);}

/* ---------------- Responsive ---------------- */

@media (min-width:600px){
  .asolvan-shell-main{padding-top:36px;}
  .asolvan-case-product{font-size:26px;}
  .asolvan-actions-row{justify-content:flex-end;}
  .asolvan-btn{flex:0 0 auto;min-width:160px;}
}

@media (min-width:1024px){
  :root{--asolvan-max-width:680px;}
  .asolvan-shell-main{padding-top:48px;}
}
