/* ============================================================
   GLOWING 形象智能體 — 樣式（手機優先）
   沿用既有視覺語言：奶油底 / 鼠尾草綠 / 玫瑰棕 / 暖金
   ============================================================ */
:root{
  --cream:#FAF7F2;
  --ink:#3A3531;
  --ink2:#6B6157;
  --line:#E7E0D6;
  --sand:#E9E0D2;
  --sage:#9CAF94;
  --rose:#C9A9A6;
  --gold:#C2A35A;
  --card:#FFFFFF;
  --shadow:0 6px 24px rgba(60,50,40,.08);
  --radius:16px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Microsoft JhengHei",sans-serif;
  background:var(--cream);color:var(--ink);line-height:1.7;
  -webkit-text-size-adjust:100%;
}
.welcome{
  min-height:100svh;padding:clamp(28px,7vh,72px) 18px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--cream);text-align:center;
}
.welcome[hidden],.app-shell[hidden]{display:none}
.welcome-wordmark{
  font-family:"Songti TC","STSong",Georgia,serif;color:var(--ink);
  font-size:clamp(31px,4.2vw,52px);letter-spacing:.03em;line-height:1.2;
}
.welcome-wordmark span{font-size:.78em;letter-spacing:.08em;white-space:nowrap}
.welcome-sub{margin:12px 0 42px;color:var(--ink2);font-family:"Songti TC","STSong",Georgia,serif;font-size:12px;letter-spacing:.32em}
.welcome-panel{width:min(100%,540px);background:var(--card);padding:clamp(28px,5vw,48px);border-radius:16px;box-shadow:0 18px 42px rgba(60,50,40,.12)}
.welcome-panel h1{font-family:"Songti TC","STSong",Georgia,serif;font-size:28px;margin:0 0 14px;font-weight:600}
.welcome-panel p{margin:0;color:var(--ink2);font-size:15px}
.welcome-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:30px 0 24px}
.welcome-actions button{min-height:68px;border:0;border-radius:14px;font:600 17px "Songti TC","STSong",Georgia,serif;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}
.welcome-actions button:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(60,50,40,.14)}
.welcome-actions button:focus-visible,.back-home:focus-visible{outline:3px solid rgba(156,175,148,.55);outline-offset:3px}
.welcome-client{background:var(--ink);color:#fff}
.welcome-teacher{background:var(--sage);color:#fff}
.welcome-panel small{display:block;color:var(--ink2);font-size:12px;line-height:1.7}
.back-home{margin-left:auto;border:0;background:transparent;color:var(--ink2);font:inherit;font-size:13px;cursor:pointer;padding:7px 0}
.serif{font-family:"Songti TC","STSong","Noto Serif TC",Georgia,serif}
.wrap{max-width:680px;margin:0 auto;padding:0 18px}

/* Topbar */
.topbar{
  position:sticky;top:0;z-index:30;
  background:rgba(250,247,242,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  padding:12px 18px;display:flex;align-items:center;
}
.brand{font-size:15px;letter-spacing:2px;color:var(--ink);font-weight:600}
.brand span{color:var(--rose);font-weight:400;letter-spacing:1px;font-size:13px}

/* Hero */
.hero{text-align:center;padding:34px 0 14px}
.hero h1{
  font-family:"Songti TC","STSong",Georgia,serif;
  font-size:27px;line-height:1.4;margin:0 0 12px;font-weight:600;color:var(--ink);
}
.hero .sub{color:var(--ink2);font-size:14px;max-width:480px;margin:0 auto}

/* Step */
.step{padding:20px 0}
.step-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.step-head .num{
  width:26px;height:26px;border-radius:50%;
  background:var(--ink);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-size:13px;flex:0 0 auto;
}
.step-head h2{font-size:18px;margin:0;font-weight:600;font-family:"Songti TC","STSong",Georgia,serif}
.step-note{font-size:13px;color:var(--ink2);margin:-6px 0 14px}
.analysis-group{margin-top:18px}
.analysis-group h3{font-size:15px;margin:0 0 3px;font-weight:600}
.analysis-group p{font-size:12px;color:var(--ink2);margin:0 0 9px}

/* Upload drop */
.drop{
  border:2px dashed var(--sage);border-radius:var(--radius);
  background:#F4F8F2;padding:36px 18px;text-align:center;
  color:var(--ink2);font-size:14px;cursor:pointer;transition:.2s;
}
.drop:focus{outline:none;background:#E7F0E3}
.drop.over{background:#E7F0E3}
.drop-icon{color:var(--sage);margin-bottom:8px}
.drop-title{margin:0;font-size:15px;color:var(--ink)}
.drop-sub{margin:4px 0 0;font-size:12px;color:var(--ink2)}
.privacy{
  display:flex;align-items:center;gap:7px;
  font-size:12px;color:var(--ink2);margin:12px 2px 0;
}
.privacy .dot{width:8px;height:8px;border-radius:50%;background:var(--sage);flex:0 0 auto}

.preview{margin-top:16px;text-align:center}
.preview-frame{
  width:200px;height:250px;border-radius:14px;overflow:hidden;margin:0 auto 10px;
  background:var(--sand);display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow);
}
.preview-frame img{width:100%;height:100%;object-fit:cover}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{
  border:1px solid var(--line);background:var(--card);border-radius:999px;
  padding:12px 18px;font-size:14px;color:var(--ink);cursor:pointer;transition:.15s;
  flex:1 1 auto;text-align:center;min-width:120px;
}
.chip:active{transform:scale(.98)}
.chip.sel{background:var(--ink);color:#fff;border-color:var(--ink)}

/* Buttons */
.btn-primary{
  width:100%;min-height:54px;border:none;border-radius:14px;
  background:var(--ink);color:#fff;font-size:16px;font-weight:600;
  padding:14px;cursor:pointer;transition:.2s;font-family:inherit;
}
.btn-primary:active{transform:scale(.99)}
.btn-primary:disabled{background:var(--sand);color:#fff;cursor:not-allowed}
.btn-ghost{
  border:1px solid var(--line);background:transparent;color:var(--ink2);
  border-radius:10px;padding:9px 16px;font-size:13px;cursor:pointer;font-family:inherit;
}

/* Result */
.result-title{font-size:20px;margin:6px 0 16px;font-weight:600;font-family:"Songti TC","STSong",Georgia,serif}
.result-grid{display:grid;grid-template-columns:1fr;gap:18px}
.result-photo{
  width:200px;height:250px;border-radius:14px;overflow:hidden;margin:0 auto;
  background:var(--sand);box-shadow:var(--shadow);
}
.result-photo img{width:100%;height:100%;object-fit:cover}
.result-info .ri-row{padding:11px 0;border-bottom:1px solid var(--line)}
.result-info .ri-row:last-child{border-bottom:none}
.result-info .ri-k{color:var(--rose);font-size:13px;font-weight:600;display:block;margin-bottom:2px}
.result-info .ri-v{font-size:14px;color:var(--ink)}

.prompt-box{
  margin-top:18px;background:#F6F2EA;border:1px solid var(--line);
  border-radius:12px;padding:14px 16px;
}
.prompt-label{font-size:12px;color:var(--gold);letter-spacing:.5px;margin-bottom:8px}
.prompt-box pre{
  margin:0;white-space:pre-wrap;word-break:break-word;
  font-family:"Songti TC","STSong",Georgia,serif;font-size:13px;color:var(--ink);line-height:1.7;
}

/* Generate status */
.gen-status{margin-top:18px;text-align:center}
.spinner{
  width:34px;height:34px;border-radius:50%;
  border:3px solid var(--line);border-top-color:var(--sage);
  margin:0 auto 12px;animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.gen-msg{font-size:14px;color:var(--ink);line-height:1.7;max-width:460px;margin:0 auto}
.generated-image{
  display:block;width:min(100%,360px);height:auto;margin:16px auto 0;
  border-radius:14px;box-shadow:var(--shadow);background:var(--sand);
}

/* Footer */
.foot{
  text-align:center;font-size:12px;color:var(--ink2);
  padding:26px 18px 40px;border-top:1px solid var(--line);margin-top:24px;line-height:1.7;
}

body.client-mode .hero .sub::after{content:"完成後把提示詞與照片交給 Aveline，由老師進行專業確認。";display:block;margin-top:8px;color:var(--rose)}

/* Desktop */
@media(min-width:560px){
  .result-grid{grid-template-columns:240px 1fr;align-items:start}
  .result-photo{margin:0}
  .hero h1{font-size:32px}
}
@media(max-width:440px){
  .welcome-actions{grid-template-columns:1fr}
  .welcome-sub{margin-bottom:30px}
}
