:root{
  --ink:#17201d;
  --muted:#68736e;
  --line:#dce2dc;
  --paper:#fffef9;
  --canvas:#f4f5f0;
  --green:#164f3c;
  --green-2:#257158;
  --mint:#dff0e8;
  --lime:#dff174;
  --amber:#f2d98b;
  --danger:#b6483f;
  --navy:#172a35;
  --shadow:0 18px 55px rgba(31,54,45,.10);
  --radius:22px;
  --serif:"Songti SC","STSong","Noto Serif CJK SC",Georgia,serif;
  --sans:"Avenir Next","PingFang SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);min-width:320px}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(64,149,113,.28);outline-offset:2px}
a{color:inherit}
.app-shell{min-height:100vh}
.topbar{height:72px;padding:0 34px;display:flex;align-items:center;gap:28px;background:rgba(255,254,249,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:21px;font-weight:700;white-space:nowrap}
.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--green);color:white;display:grid;place-items:center;font-family:var(--serif);box-shadow:inset 0 0 0 1px #ffffff26}
.top-nav{display:flex;gap:6px;margin-right:auto}
.nav-btn,.text-btn,.icon-btn{border:0;background:transparent;color:var(--muted);border-radius:10px;padding:9px 12px}
.nav-btn:hover,.nav-btn.active,.text-btn:hover{background:#edf0eb;color:var(--ink)}
.save-state{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.save-state::before{content:"";width:7px;height:7px;border-radius:99px;background:#4ba478;box-shadow:0 0 0 4px #4ba47816}
.profile-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e5d7b7;font-size:13px;font-weight:700}
.back-btn{border:1px solid var(--line);background:white;border-radius:12px;padding:9px 13px;color:var(--ink);display:flex;gap:7px;align-items:center}
.page{max-width:1320px;margin:0 auto;padding:38px 34px 70px}
.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--green-2);font-weight:800}
.hero{position:relative;overflow:hidden;background:var(--navy);color:#f7f7f0;border-radius:30px;padding:52px 54px;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(420px,.96fr);gap:55px;box-shadow:var(--shadow)}
.hero::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-110px;top:-190px;background:radial-gradient(circle,#8ad5b64b,transparent 68%)}
.hero::after{content:"";position:absolute;inset:0;opacity:.16;background-image:linear-gradient(120deg,transparent 0 45%,#ffffff12 45% 46%,transparent 46% 100%);background-size:64px 64px;pointer-events:none}
.hero-copy,.generator{position:relative;z-index:1}
.hero h1{font-family:var(--serif);font-size:54px;line-height:1.08;margin:16px 0 18px;font-weight:650;letter-spacing:-1.5px}
.hero p{color:#cad5cf;line-height:1.85;max-width:590px;margin:0}
.hero-pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.hero-pill{font-size:12px;color:#dfe9e4;border:1px solid #ffffff2d;background:#ffffff0d;border-radius:99px;padding:8px 12px}
.generator{background:#fffef9;color:var(--ink);border-radius:22px;padding:22px;box-shadow:0 28px 60px #00000024}
.generator-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:15px}
.generator-head b{font-size:16px}
.ai-chip{font-size:11px;border-radius:99px;padding:6px 9px;color:#12513c;background:var(--mint);font-weight:700}
.generator textarea{width:100%;min-height:122px;resize:vertical;border:1px solid #d8dfd9;background:#f7f8f4;border-radius:15px;padding:16px;line-height:1.65;color:var(--ink)}
.generator-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.generator-note{font-size:11px;color:var(--muted)}
.primary,.secondary,.danger,.soft{border:0;border-radius:12px;padding:12px 17px;font-weight:700;transition:.2s}
.primary{background:var(--green);color:white;box-shadow:0 7px 18px #164f3c25}
.primary:hover{background:#0f5d43;transform:translateY(-1px)}
.primary:disabled{opacity:.45;cursor:not-allowed;transform:none}
.secondary{background:white;border:1px solid var(--line);color:var(--ink)}
.secondary:hover{border-color:#aab9b0;background:#fafbf8}
.soft{background:#e9f2ed;color:#174c3b}
.danger{background:#fff0ed;color:var(--danger);border:1px solid #f1cdc7}
.report-recommend{margin-top:22px;background:linear-gradient(90deg,#e7efe7,#f1f0db);border:1px solid #d5dfd4;border-radius:20px;padding:21px 24px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center}
.report-icon{width:48px;height:48px;border-radius:15px;background:#fff;display:grid;place-items:center;font-size:22px;box-shadow:0 8px 24px #38524412}
.report-recommend h3{font-family:var(--serif);font-size:19px;margin:0 0 5px}
.report-recommend p{margin:0;color:var(--muted);font-size:13px}
.report-recommend-list{display:flex;flex-direction:column;gap:9px;margin-top:12px}
.report-recommend-item{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;background:#fff;border:1px solid #d5dfd4;border-radius:14px;padding:11px 14px}
.report-recommend-item strong{font-size:15px}
.report-recommend-item p{font-size:13px;margin-top:3px}
.report-recommend-item button{white-space:nowrap}
.report-recommend-actions{display:flex;flex-direction:column;gap:9px;align-items:stretch}
.report-recommend-empty{color:var(--muted);font-size:13px;margin-top:10px}
.section-head{display:flex;justify-content:space-between;gap:25px;align-items:end;margin:48px 0 22px}
.section-head h2{font-family:var(--serif);font-size:34px;font-weight:650;margin:7px 0 0}
.section-head p{color:var(--muted);margin:0;max-width:480px;line-height:1.6;text-align:right}
.filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:21px}
.filter{border:1px solid var(--line);background:#fff;border-radius:99px;padding:9px 14px;color:var(--muted)}
.filter.active{background:var(--ink);border-color:var(--ink);color:white}
.template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.template-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:21px;display:flex;flex-direction:column;min-height:305px;box-shadow:0 7px 22px rgba(38,62,52,.045);transition:.22s}
.template-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(38,62,52,.11);border-color:#c5d1c9}
.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.persona-avatar{width:60px;height:60px;border-radius:18px;object-fit:cover;background:#e5ece8;border:1px solid #d8e0db;box-shadow:inset 0 0 0 2px #ffffff82}
.persona-avatar.lg{width:118px;height:118px;border-radius:32px}
.persona-avatar.xl{width:178px;height:178px;border-radius:42px}
.template-meta{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.tag{font-size:11px;padding:6px 8px;border-radius:8px;background:#eef1ed;color:#62716a;white-space:nowrap}
.template-card h3{font-family:var(--serif);font-size:22px;line-height:1.3;margin:20px 0 8px}
.template-card p{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.persona-line{font-size:12px;color:#3e5149;margin-top:13px;display:flex;align-items:center;gap:7px}
.persona-line i{width:6px;height:6px;border-radius:50%;background:#46a274}
.card-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:8px;margin-top:auto;padding-top:19px}
.card-actions .detail-link{grid-column:1/-1;border:0;background:transparent;padding:0 0 5px;text-align:left;color:var(--green-2);font-size:12px}
.card-actions button:not(.detail-link){padding:10px 8px}
.empty{grid-column:1/-1;padding:70px;text-align:center;color:var(--muted);background:white;border-radius:20px;border:1px dashed #cdd6d0}
.resume-card{margin-top:24px;background:#fff;border-radius:18px;border:1px solid var(--line);padding:18px;display:flex;justify-content:space-between;gap:20px;align-items:center}
.resume-card strong{display:block;margin-bottom:4px}
.resume-card span{color:var(--muted);font-size:13px}

/* detail */
.detail-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:24px}
.detail-main,.detail-side,.preview-panel,.edit-panel,.feedback-panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 28px rgba(38,62,52,.05)}
.detail-main{padding:40px}
.detail-side{padding:30px;align-self:start;position:sticky;top:96px}
.detail-hero{display:flex;gap:24px;align-items:center;padding-bottom:30px;border-bottom:1px solid var(--line)}
.detail-hero h1{font-family:var(--serif);font-size:39px;line-height:1.15;margin:8px 0 12px}
.detail-hero p{color:var(--muted);line-height:1.75;margin:0}
.info-section{padding:27px 0;border-bottom:1px solid var(--line)}
.info-section:last-child{border:0}
.info-section h3{font-size:15px;margin:0 0 11px}
.info-section p,.info-section li{color:#53615b;line-height:1.75;font-size:14px}
.challenge-list{display:grid;gap:9px;padding:0;margin:0;list-style:none}
.challenge-list li{padding:12px 14px;background:#f2f4f0;border-radius:11px}
.side-persona{text-align:center;padding:8px 0 24px}
.side-persona h3{font-family:var(--serif);font-size:25px;margin:15px 0 3px}
.side-persona p{margin:0;color:var(--muted);font-size:13px}
.side-stat{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 22px}
.side-stat div{padding:13px;background:#f3f5f1;border-radius:12px}
.side-stat small{display:block;color:var(--muted);margin-bottom:5px}
.side-actions{display:grid;gap:10px}

/* preview */
.preview-header{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;margin-bottom:25px}
.preview-header h1{font-family:var(--serif);font-size:42px;max-width:800px;line-height:1.15;margin:10px 0 12px}
.preview-header p{margin:0;color:var(--muted)}
.preview-actions{display:flex;gap:10px;flex-shrink:0;padding-top:12px}
.preview-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px}
.preview-panel{padding:28px}
.identity-stage{position:relative;overflow:hidden;background:#e9eee8;border-radius:20px;padding:26px;display:flex;justify-content:center;gap:55px;align-items:center;min-height:220px}
.identity-stage::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 120%,#bcd3c5 0,transparent 50%)}
.identity-card{position:relative;text-align:center;width:190px}
.identity-card b{display:block;margin-top:10px}
.identity-card span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.versus{position:relative;font-family:var(--serif);font-style:italic;font-size:21px;color:#718179}
.content-cards{display:grid;gap:12px;margin-top:16px}
.content-card{border:1px solid var(--line);border-radius:15px;padding:18px;text-align:left;background:#fff;transition:.18s;width:100%}
.content-card:hover{border-color:#94ae9f;background:#fbfcfa}
.content-card-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:7px}
.content-card h3{margin:0;font-size:15px}
.content-card p{margin:0;color:#53615b;line-height:1.7;font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.edit-arrow{color:var(--green-2);font-size:12px}
.side-block{padding:18px 0;border-bottom:1px solid var(--line)}
.side-block:first-child{padding-top:0}
.side-block:last-child{border:0}
.side-block h3{font-size:13px;margin:0 0 12px}
.role-mini{display:flex;gap:11px;align-items:center;margin:10px 0}
.role-mini img{width:43px;height:43px;border-radius:13px;object-fit:cover}
.role-mini b,.role-mini span{display:block}
.role-mini span{font-size:11px;color:var(--muted);margin-top:3px}
.criterion-mini{display:flex;gap:8px;margin:8px 0;font-size:12px;color:#46554e}
.criterion-mini::before{content:"✓";color:#22825d;font-weight:800}
.time-display{font-family:var(--serif);font-size:35px}
.safe-note{padding:13px;background:#f0f2ee;border-radius:11px;color:var(--muted);font-size:11px;line-height:1.55}

/* edit */
.edit-wrap{max-width:980px;margin:0 auto}
.edit-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:24px}
.edit-heading h1{font-family:var(--serif);font-size:39px;margin:8px 0 0}
.edit-panel{padding:30px;margin-bottom:16px}
.edit-panel h2{font-family:var(--serif);font-size:23px;margin:0 0 5px}
.panel-desc{color:var(--muted);font-size:12px;margin:0 0 22px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.field{margin-top:16px}
.field:first-child{margin-top:0}
.field label{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:750;margin-bottom:8px}
.field label span{color:var(--muted);font-weight:400}
.field input,.field textarea,.field select{width:100%;border:1px solid #d8ded9;background:#fafbf7;border-radius:12px;padding:12px 13px;color:var(--ink)}
.field textarea{min-height:112px;resize:vertical;line-height:1.65}
.origin-hint{font-size:11px;color:var(--muted);margin-top:7px}
.learner-row{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center}
.avatar-selector{display:flex;gap:8px;flex-wrap:wrap}
.avatar-choice{border:2px solid transparent;border-radius:15px;padding:2px;background:white;position:relative}
.avatar-choice.selected{border-color:var(--green-2)}
.avatar-choice img{width:58px;height:58px;border-radius:11px;display:block;object-fit:cover}
.upload-btn{width:64px;height:64px;border:1px dashed #aebbb3;border-radius:14px;background:#f7f8f5;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:10px}
.roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.role-card{border:1px solid var(--line);border-radius:15px;padding:14px;display:flex;gap:13px;align-items:center}
.role-card img{width:60px;height:60px;border-radius:16px;object-fit:cover}
.role-card-body{min-width:0;flex:1}
.role-card-body b,.role-card-body span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role-card-body span{font-size:11px;color:var(--muted);margin-top:4px}
.role-card-actions{display:flex;gap:3px}
.role-card-actions button{border:0;background:#f1f3ef;border-radius:8px;padding:7px;color:#5b6963}
.add-role{border:1px dashed #aebbb3;background:#f7f8f5;border-radius:15px;padding:17px;color:var(--green);font-weight:700}
.criteria-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.criterion{position:relative;border:1px solid var(--line);border-radius:13px;padding:14px 38px 14px 14px;background:#fff;cursor:pointer}
.criterion.selected{border-color:#4d9575;background:#f2f8f4}
.criterion input{position:absolute;right:14px;top:16px;accent-color:var(--green)}
.criterion b{display:block;font-size:13px;margin-bottom:5px}
.criterion small{color:#88918d;line-height:1.45;display:block;padding-right:4px}
.custom-standard{display:grid;grid-template-columns:.7fr 1.2fr auto;gap:8px;margin-top:13px}
.custom-standard input{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fafbf7}
.duration-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
.duration-card{border:1px solid var(--line);background:#fff;border-radius:13px;padding:13px;text-align:left;min-height:100px}
.duration-card.selected{border-color:var(--green-2);box-shadow:inset 0 0 0 1px var(--green-2);background:#f3f8f5}
.duration-card b{display:block;font-size:13px}
.duration-card strong{font-family:var(--serif);font-size:24px;display:block;margin:9px 0 3px}
.duration-card small{color:var(--muted);line-height:1.35}
.range-row{display:flex;gap:14px;align-items:center;margin-top:14px}
.range-row input{flex:1;accent-color:var(--green)}
.mode-row{display:flex;gap:10px}
.mode-card{flex:1;border:1px solid var(--line);border-radius:13px;padding:14px;background:#fff;text-align:left}
.mode-card.selected{border-color:var(--green);background:#f3f8f5}
.mode-card b,.mode-card small{display:block}
.mode-card small{color:var(--muted);margin-top:6px;line-height:1.4}
.sticky-save{position:sticky;bottom:18px;background:#172a35;color:white;border-radius:17px;padding:14px 17px;display:flex;justify-content:space-between;align-items:center;gap:20px;box-shadow:0 18px 45px #15262142;z-index:10}
.sticky-save span{font-size:12px;color:#b9c6c0}

/* quick editor */
.quick-wrap{max-width:820px;margin:0 auto;padding-top:22px}
.quick-card{background:var(--paper);border:1px solid var(--line);border-radius:26px;padding:42px;box-shadow:var(--shadow)}
.quick-card h1{font-family:var(--serif);font-size:39px;margin:11px 0}
.quick-card>p{color:var(--muted);line-height:1.7}
.quick-card textarea{width:100%;min-height:260px;border:1px solid #d5ddd7;border-radius:16px;background:#fafbf7;padding:18px;line-height:1.8;margin-top:18px;resize:vertical}
.quick-actions{display:flex;justify-content:space-between;align-items:center;margin-top:18px}

/* practice */
.practice-shell{min-height:100vh;background:#101714;color:white;display:flex;flex-direction:column}
.practice-top{height:68px;display:flex;align-items:center;gap:18px;padding:0 24px;border-bottom:1px solid #ffffff12;background:#121b18}
.practice-top .back-btn{background:#ffffff0b;border-color:#ffffff18;color:#e6eeea}
.practice-title{min-width:0;flex:1}
.practice-title b,.practice-title span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-title span{font-size:11px;color:#91a199;margin-top:3px}
.practice-status{font-size:11px;color:#b7c5bf;display:flex;gap:8px;align-items:center}
.practice-status i{width:7px;height:7px;border-radius:50%;background:#69d29d}
.clock{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:18px;min-width:82px;text-align:right}
.video-stage{position:relative;flex:1;min-height:620px;padding:22px;display:grid;grid-template-columns:1fr 260px;grid-template-rows:1fr;gap:16px;background:radial-gradient(circle at 35% 25%,#234239 0,#121a17 45%,#0c1210 100%)}
.ai-video{position:relative;border:1px solid #ffffff17;border-radius:25px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(145deg,#1c2e28,#0f1815);min-height:530px}
.ai-video::before{content:"";position:absolute;width:440px;height:440px;border-radius:50%;background:#5d9b8040;filter:blur(20px)}
.ai-presence{position:relative;text-align:center;z-index:1}
.ai-presence img{width:230px;height:230px;border-radius:58px;object-fit:cover;box-shadow:0 0 0 12px #ffffff08,0 28px 65px #0008}
.ai-presence h2{font-family:var(--serif);font-size:30px;margin:20px 0 4px}
.ai-presence p{margin:0;color:#a9b8b1;font-size:13px}
.wave{height:35px;margin:20px auto 0;display:flex;align-items:center;justify-content:center;gap:5px}
.wave i{display:block;width:4px;height:9px;border-radius:9px;background:#9ce0bf;animation:wave 1.15s ease-in-out infinite;animation-delay:calc(var(--i)*-.09s)}
.wave i:nth-child(3n){height:24px}.wave i:nth-child(4n){height:16px}.wave.muted i{animation-play-state:paused;height:4px;background:#78857f}
@keyframes wave{0%,100%{transform:scaleY(.45);opacity:.6}50%{transform:scaleY(1.6);opacity:1}}
.side-video{display:flex;flex-direction:column;gap:14px}
.user-video{height:190px;border:1px solid #ffffff17;border-radius:20px;overflow:hidden;background:linear-gradient(140deg,#26342f,#19231f);display:grid;place-items:center;position:relative}
.user-video.camera-on{background:linear-gradient(135deg,#806f5f,#2c3c36)}
.user-video img{width:86px;height:86px;border-radius:23px;object-fit:cover}
.user-video.camera-on img{opacity:.4;filter:blur(2px);transform:scale(2.8)}
.tile-label{position:absolute;bottom:11px;left:12px;font-size:11px;background:#0008;border-radius:7px;padding:5px 7px}
.session-card{background:#ffffff0b;border:1px solid #ffffff12;border-radius:20px;padding:17px;flex:1}
.session-card h3{font-size:12px;color:#9aaba3;margin:0 0 11px}
.session-card p{font-size:12px;line-height:1.6;color:#d3ddd8}
.session-criteria{display:grid;gap:8px;margin-top:16px}
.session-criteria span{font-size:11px;color:#bac8c1;display:flex;gap:7px}
.session-criteria span::before{content:"○";color:#8cd7b2}
.subtitle-box{position:absolute;left:50%;bottom:105px;transform:translateX(-50%);max-width:760px;width:70%;background:#09100de3;border:1px solid #ffffff17;border-radius:14px;padding:13px 18px;text-align:center;line-height:1.55;font-size:14px;box-shadow:0 12px 32px #0006}
.subtitle-box small{color:#8fc4aa;display:block;margin-bottom:4px}
.controls{position:absolute;left:50%;bottom:25px;transform:translateX(-50%);display:flex;gap:10px;align-items:center;background:#111a17e8;padding:10px 13px;border:1px solid #ffffff14;border-radius:20px;box-shadow:0 14px 35px #0008}
.control{width:48px;height:48px;border:0;border-radius:15px;background:#26322e;color:white;display:grid;place-items:center;font-size:18px;position:relative}
.control:hover{background:#34443e}.control.off{background:#5b302d;color:#ffd9d3}.control.end{width:auto;padding:0 19px;background:#c94f45;font-size:13px;font-weight:800}.control:disabled{opacity:.35;cursor:not-allowed}
.control .tip{display:none;position:absolute;bottom:58px;white-space:nowrap;background:#050a08;padding:6px 8px;border-radius:6px;font-size:10px;color:#ced8d3}
.control:hover .tip{display:block}
.ready-overlay{position:absolute;inset:0;background:#0c1310ec;z-index:8;display:grid;place-items:center;padding:30px}
.ready-card{max-width:580px;width:100%;background:#f9faf6;color:var(--ink);border-radius:26px;padding:31px;text-align:center;box-shadow:0 30px 90px #0008}
.ready-card img{width:116px;height:116px;border-radius:30px;object-fit:cover}
.ready-card h1{font-family:var(--serif);font-size:29px;margin:17px 0 6px}
.ready-card p{color:var(--muted);line-height:1.65;margin:0}
.device-check{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:22px 0;text-align:left}
.device-check button{border:1px solid var(--line);border-radius:12px;background:white;padding:12px;color:var(--ink)}
.device-check button.on{border-color:#539577;background:#f1f8f4}

/* feedback */
.feedback-hero{background:var(--navy);color:white;border-radius:27px;padding:37px;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}
.feedback-hero h1{font-family:var(--serif);font-size:39px;margin:9px 0}
.feedback-hero p{color:#b8c8c0;margin:0}
.result-seal{width:140px;height:140px;border-radius:50%;border:1px solid #ffffff23;display:grid;place-items:center;text-align:center;background:#ffffff08}
.result-seal strong{display:block;font-family:var(--serif);font-size:24px;color:var(--lime)}
.result-seal small{color:#aebdb6}
.feedback-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;margin-top:18px}
.feedback-panel{padding:26px}
.feedback-panel h2{font-family:var(--serif);font-size:23px;margin:0 0 18px}
.evidence{border-left:3px solid #6fb18f;background:#f3f7f3;padding:14px 16px;border-radius:0 12px 12px 0;margin:11px 0}
.evidence q{display:block;font-family:var(--serif);font-size:17px;line-height:1.65}
.evidence p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.6}
.feedback-item{padding:16px 0;border-bottom:1px solid var(--line)}
.feedback-item:last-child{border:0}
.feedback-item b{display:block;margin-bottom:7px}
.feedback-item p{margin:0;color:#55635d;line-height:1.7;font-size:13px}
.replace-sentence{padding:17px;background:#fff7df;border-radius:13px;font-family:var(--serif);font-size:16px;line-height:1.65}
.feedback-actions{display:grid;gap:9px;margin-top:17px}

/* modal/toast */
.modal-backdrop{position:fixed;inset:0;background:#101713a8;backdrop-filter:blur(5px);z-index:100;display:grid;place-items:center;padding:22px}
.modal{width:min(650px,100%);max-height:88vh;overflow:auto;background:var(--paper);border-radius:24px;padding:27px;box-shadow:0 30px 100px #0006}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}
.modal-head h2{font-family:var(--serif);font-size:25px;margin:0}
.close{border:0;background:#edf0eb;width:34px;height:34px;border-radius:10px}
.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:21px}
.avatar-library{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.avatar-library button{border:2px solid transparent;background:transparent;border-radius:15px;padding:2px}
.avatar-library button.selected{border-color:var(--green-2)}
.avatar-library img{display:block;width:100%;aspect-ratio:1;border-radius:11px;object-fit:cover}
.end-options{display:grid;gap:9px}
.end-option{border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px;text-align:left}
.end-option b,.end-option span{display:block}.end-option span{color:var(--muted);font-size:11px;margin-top:5px;line-height:1.4}
.toast{position:fixed;z-index:200;left:50%;bottom:28px;transform:translate(-50%,20px);background:#16221e;color:white;border-radius:11px;padding:11px 15px;opacity:0;pointer-events:none;transition:.25s;box-shadow:0 12px 35px #0004;font-size:12px}
.toast.show{opacity:1;transform:translate(-50%,0)}
.loading{display:inline-flex;gap:4px;align-items:center}
.loading i{width:5px;height:5px;border-radius:50%;background:currentColor;animation:dots 1s infinite;animation-delay:calc(var(--i)*.15s)}
@keyframes dots{0%,70%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}
.hidden{display:none!important}

@media(max-width:1050px){
  .hero{grid-template-columns:1fr;padding:42px}.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-layout,.feedback-grid{grid-template-columns:1fr}.preview-layout>.preview-panel:last-child{position:static}.duration-grid{grid-template-columns:repeat(3,1fr)}.video-stage{grid-template-columns:1fr}.side-video{position:absolute;right:38px;top:42px;width:210px}.session-card{display:none}.user-video{height:150px}.detail-layout{grid-template-columns:1fr}.detail-side{position:static}
}
@media(max-width:720px){
  .topbar{padding:0 16px;height:62px}.top-nav{display:none}.save-state{display:none}.page{padding:24px 15px 60px}.hero{padding:30px 22px;border-radius:22px;gap:28px}.hero h1{font-size:39px}.generator-actions{align-items:stretch;flex-direction:column}.report-recommend{grid-template-columns:auto 1fr}.report-recommend .primary{grid-column:1/-1}.section-head{align-items:flex-start;flex-direction:column}.section-head p{text-align:left}.template-grid{grid-template-columns:1fr}.preview-header{display:block}.preview-actions{padding-top:20px;flex-wrap:wrap}.preview-header h1{font-size:34px}.identity-stage{gap:15px;padding:20px 10px}.identity-card{width:130px}.persona-avatar.xl{width:110px;height:110px;border-radius:28px}.field-grid,.criteria-list,.roles{grid-template-columns:1fr}.duration-grid{grid-template-columns:1fr 1fr}.custom-standard{grid-template-columns:1fr}.learner-row{grid-template-columns:1fr}.edit-panel{padding:21px}.quick-card{padding:25px}.feedback-hero{grid-template-columns:1fr}.result-seal{width:110px;height:110px}.video-stage{padding:10px;min-height:calc(100vh - 68px)}.side-video{width:125px;right:20px;top:24px}.user-video{height:100px}.ai-presence img{width:150px;height:150px;border-radius:38px}.ai-presence h2{font-size:24px}.subtitle-box{width:88%;bottom:105px}.controls{gap:6px}.control{width:43px;height:43px}.practice-status{display:none}.avatar-library{grid-template-columns:repeat(3,1fr)}
}
