/* Demo v0.2.1 · 文本优先的共用列表 */
:root{--ink:#183b39;--muted:#6b7e79;--brand:#16756a;--tint:#e8f3ef;--line:#d6e1dc;--soft:#f7faf8;--white:#fff}*{box-sizing:border-box}body{margin:0;background:#f3f6f4;color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.42;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #7cbeb2;outline-offset:3px}a{color:var(--brand)}.workbench{display:grid;grid-template-columns:240px 430px 240px;justify-content:center;gap:40px;padding:32px 24px}.guide,.review{padding-top:30px}.guide h1{font:700 32px "Songti SC",serif;margin:0}.guide p,.review p{font-size:14px;color:var(--muted)}.guide nav{display:grid;gap:7px;margin:32px 0}.guide nav button{text-align:left;padding:10px 12px;border:0;background:none;border-radius:8px}.guide nav button.active{background:var(--tint);font-weight:600}.demo-label{font-size:11px;display:inline-block;color:var(--muted);border:1px solid var(--line);padding:4px 9px;border-radius:6px}.device{position:relative;background:var(--white);border:1px solid var(--line);border-radius:30px;overflow:hidden;min-height:850px;box-shadow:0 10px 40px #183b3910;display:flex;flex-direction:column}#top{margin:0 24px;padding:24px 0 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}#top strong{font:700 24px "Songti SC",serif;flex:1}#top .tag{font-size:11px;color:var(--muted)}.icon-button{display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;border:0;background:transparent;border-radius:10px}.icon{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}#content{padding:24px;flex:1;min-height:520px}h2{font:700 28px/1.4 "Songti SC",serif;margin:0 0 12px}h3{font-size:18px;margin:22px 0 10px}p{margin:8px 0}.muted,.caption{color:var(--muted);font-size:13px}.eyebrow{font-size:15px;font-weight:600;margin-bottom:12px}.days{display:flex;gap:8px;margin:22px 0 26px}.days button{flex:1;height:44px;border:1px solid var(--line);border-radius:12px;background:#fff}.days button.selected{background:var(--brand);border-color:var(--brand);color:white}.days button.done:after{content:'✓';font-size:9px;display:block;line-height:6px}.row{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:14px;margin:12px 0;background:#fff;text-align:left;width:100%}.row-copy{flex:1;min-width:0;overflow-wrap:anywhere}.row-copy strong{display:block;font-size:17px}.row-copy small{display:block;margin-top:3px;font-size:13px;color:var(--muted)}.primary,.outline{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:12px 16px;border-radius:14px;margin:8px 0;font-weight:600}.primary{border:1px solid var(--brand);background:var(--brand);color:white}.outline{border:1px solid var(--line);background:#fff}.button-row{display:flex;gap:12px}.button-row>*{flex:1}.text-button{border:0;background:none;padding:8px 0;color:var(--brand);font-size:14px}#actionbar{padding:0 24px 18px}#tabs{display:flex;position:sticky;bottom:0;background:#fff;padding:10px 12px 16px;border-top:1px solid var(--line);z-index:2}#tabs button{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;font-size:12px;padding:4px 0;color:var(--muted)}#tabs button.active{color:var(--brand);font-weight:600}.panel{padding:16px;background:var(--soft);border-radius:14px;margin:16px 0}.line{height:1px;background:var(--line);margin:22px 0}.portrait{position:relative;width:100%;height:310px;overflow:hidden;background:#fff}.portrait img{width:100%;height:100%;object-fit:cover;transform:scale(1.15)}.portrait .marker{position:absolute;width:16px;height:16px;border:3px solid #fff;background:var(--brand);border-radius:50%;padding:0;left:57%;top:52%;box-shadow:0 0 0 1px #16756a30}.portrait .marker.forehead{left:49%;top:32%}.portrait .marker.chosen{box-shadow:0 0 0 8px #16756a20}.timer{text-align:center;font:700 64px/1.2 Georgia,serif;font-variant-numeric:tabular-nums;margin:14px 0}.track{display:flex;gap:6px;align-items:center;margin-bottom:14px}.track i{flex:1;height:7px;border-radius:6px;background:var(--line)}.track i.on{background:var(--brand)}.progress{height:6px;background:var(--line);border-radius:6px;overflow:hidden;margin:14px 0}.progress span{height:100%;display:block;background:var(--brand);transition:width .2s linear}.field{display:block;margin:16px 0}.field span{display:block;font-size:14px;margin-bottom:7px}.field input,.field textarea,.field select{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.field textarea{min-height:100px;resize:vertical}.field input.invalid{border-color:#a63b3b}.error{font-size:13px;color:#a63b3b}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.chips button{padding:7px 11px;border:1px solid var(--line);background:#fff;border-radius:8px;font-size:13px}.chips button.selected{background:var(--tint);border-color:var(--brand)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.course,.post-card{padding:0;border:0;background:none;text-align:left;cursor:pointer;display:block;color:inherit}.cover{height:145px;background:#edf4ef;border-radius:14px;overflow:hidden;margin-bottom:8px;display:flex;align-items:center;justify-content:center}.cover img{width:100%;height:100%;object-fit:contain}.course strong,.post-card strong{display:block;font-size:16px}.course small{font-size:12px;color:var(--muted)}.badge{font-size:12px;color:var(--brand)}.bubble{padding:14px 16px;background:var(--soft);border-radius:16px;margin:12px 24px 12px 0;white-space:pre-wrap}.bubble.user{background:var(--tint);margin:12px 0 12px 24px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:center}.metric strong{display:block;font:600 30px/1.3 Georgia,serif}.metric span{font-size:12px;color:var(--muted)}.state-note{padding:12px;background:var(--tint);border-radius:10px;font-size:13px}.timeline{border-left:2px solid var(--line);padding-left:16px;margin:20px 0}.timeline p{font-size:14px;margin:18px 0}dialog{border:1px solid var(--line);border-radius:18px;padding:24px;width:min(90vw,400px);color:var(--ink)}dialog::backdrop{background:#183b3955}.review h2{font:600 18px -apple-system,sans-serif}.review .stat{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;font-size:14px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:10px;max-width:90%;z-index:10;display:none;font-size:14px}.scanline{position:absolute;left:16%;right:16%;height:2px;background:var(--brand);animation:scan 1.6s linear infinite}.fade{animation:enter .2s ease-out}.price{font:700 30px Georgia,serif}.empty{text-align:center;padding:42px 12px}details{font-size:13px;margin:25px 0}summary{cursor:pointer}@keyframes scan{from{top:40px}to{top:270px}}@keyframes enter{from{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:1100px){.workbench{grid-template-columns:200px minmax(340px,430px);gap:24px}.review{grid-column:1/-1;max-width:650px;width:100%;justify-self:center}}@media(max-width:650px){body{background:white}.workbench{display:block;padding:0}.guide,.review{display:none}.device{width:100%;min-height:100dvh;border:0;border-radius:0;box-shadow:none}#top{padding-top:max(18px,env(safe-area-inset-top))}#tabs{padding-bottom:max(14px,env(safe-area-inset-bottom))}#content{min-height:0}.portrait{height:290px}h2{font-size:27px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* v0.3.0: content feed, note detail and Lumi action cards */
.device{height:calc(100dvh - 64px);min-height:720px;max-height:1020px}#content{overflow-y:auto;min-height:0}#top,#actionbar,#tabs{flex-shrink:0}.feed-toolbar,.feed-modes{display:flex;align-items:center;gap:16px}.feed-toolbar{justify-content:space-between;margin-bottom:14px}.feed-modes button{padding:8px 0;border:0;background:none;color:var(--muted)}.feed-modes .active{color:var(--ink);font-weight:700;border-bottom:2px solid var(--brand)}.compose-small{border:0;background:var(--brand);color:#fff;padding:7px 12px;border-radius:8px}.feed-search input{width:100%;border:0;border-radius:20px;padding:10px 15px;background:var(--soft);color:var(--ink)}.masonry{columns:2;column-gap:12px}.note-card{break-inside:avoid;margin-bottom:20px}.note-cover{position:relative;width:100%;padding:0;border:0;border-radius:12px;overflow:hidden;background:#f0f6f2;display:block}.note-cover img{display:block;width:100%;height:218px;object-fit:cover}.note-cover.portrait:nth-child(2n) img{height:180px}.cover-note{padding:25px 13px;min-height:180px;text-align:left;background:#edf2e4;display:flex;flex-direction:column;gap:17px}.cover-note.paper{background:#f1ede4;min-height:240px}.cover-note b{font-size:21px;line-height:1.7}.cover-note small,.cover-note span{font-size:11px;color:#657560}.note-title{border:0;background:none;text-align:left;font-size:14px;line-height:1.5;font-weight:600;padding:8px 0 5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.note-meta{display:flex;gap:3px;justify-content:space-between;font-size:11px;color:var(--muted)}.note-meta button,.author-link{display:flex;align-items:center;gap:5px;border:0;background:none;padding:3px 0;font-size:11px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#e5ebe5;color:var(--ink);font-size:11px}.liked{color:#b74556!important}.media-count{position:absolute;right:6px;top:6px;background:#0007;color:white;border-radius:6px;font-size:10px;padding:2px 5px}.detail-author{display:flex;align-items:center;gap:10px;margin-bottom:16px}.detail-author .author-link{flex:1;font-size:14px}.follow{border:1px solid var(--brand);background:#fff;border-radius:20px;padding:6px 14px;font-size:12px;color:var(--brand)}.note-gallery{border-radius:12px;overflow:hidden;background:var(--soft)}.note-gallery img{width:100%;display:block;max-height:420px;object-fit:contain}.detail-title{font:600 20px/1.5 -apple-system,sans-serif;margin:20px 0 10px}.note-body{font-size:15px;white-space:pre-wrap}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.tags button{border:0;background:none;color:var(--brand);padding:0;font-size:13px}.note-bottom{display:flex;justify-content:space-between;padding:8px 0;gap:5px}.note-bottom button{background:none;border:0;font-size:13px;min-height:40px}.comment{border-bottom:1px solid var(--line);padding:12px 0;font-size:13px}.comment p{margin:3px 0}.upload-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.upload-grid img{width:100%;height:90px;object-fit:cover;border-radius:8px}.upload-add{display:flex;align-items:center;justify-content:center;min-height:100px;background:var(--soft);border:1px dashed var(--line);border-radius:10px;font-size:12px;cursor:pointer}.upload-add input{display:none}.upload-grid button{border:0;background:none;font-size:11px}.context-switch{display:flex;gap:8px;font-size:13px;padding:12px;background:var(--tint);border-radius:10px;margin:15px 0}.lumi-head span{font-size:12px;color:var(--muted)}.action-card{border:1px solid var(--brand);border-radius:12px;padding:14px;margin:12px 0;background:#f6fbf8}.action-card p,.tool-list{font-size:12px}.tool-list{margin-top:12px;border-top:1px solid var(--line);color:var(--muted)}@media(max-width:650px){.device{height:100dvh;min-height:0;max-height:none}#content{padding:18px}.note-cover img{height:190px}.cover-note b{font-size:20px}}
.product-card{padding:0;border:0;background:white;text-align:left}.product-card strong,.product-card span{display:block}.product-card p{margin:5px 0}.product-card small{font-size:10px;color:var(--muted)}.product-card b{color:var(--brand);font-size:19px}.product-photo{height:175px;border-radius:12px;background-image:url('assets/product-demo_v0.1.0.png');background-repeat:no-repeat;background-size:200% auto;background-position:left center;margin-bottom:10px}.product-photo.cream{background-position:right center}.product-photo.detail{height:280px;background-size:200% auto}.service-pill{font-size:11px;color:var(--brand)}
.reply-comment{margin-left:24px;padding-left:14px;border-left:2px solid #dce9e4}.comment small{color:#667d77}.comment .text-button{margin-right:12px}.engine-status{margin-bottom:14px;padding:10px;background:#eef6f2;border-radius:10px}.session-steps{border-top:1px solid #d8e5df;padding-top:12px}
.archive-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.archive-actions .outline{font-size:14px;padding:12px}.empty-note{color:#667d77;font-size:14px;padding:12px 0}.report-preview{display:block;max-width:100%;max-height:260px;object-fit:contain;margin:16px auto;border-radius:12px}.metric-editor{border:1px solid #dce8e3;border-radius:12px;margin:16px 0;padding:12px}.metric-editor .field{margin-top:8px}.metric-editor legend{font-weight:600}.health-table{overflow:auto;margin:20px 0}.health-table table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.health-table th,.health-table td{padding:12px 8px;border-bottom:1px solid #dce8e3}.row-copy small{display:block;margin-top:6px;color:#667d77}.health-table th{white-space:nowrap}

/* Package v0.6.0 */
.draft-exit-actions{display:grid;gap:12px;margin:20px 0}.visibility-label{padding:12px;background:#edf5f1;color:#175f56;border-radius:12px}.upload-grid button{min-height:44px}.feed-modes{flex-wrap:wrap}.field select{min-height:44px}.panel ol{padding-left:24px;line-height:1.9}

/* Integration v0.7.0 */
.link-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.link-grid button{font-size:14px;min-width:0}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.comparison-grid .portrait{height:150px}.comparison-grid .panel{min-width:0;padding:12px}.comparison-grid img{max-width:100%}.notice-preview{background:#edf5f2}.motion-guide,.pose-guide{display:flex;justify-content:space-around;gap:12px;padding:16px;border:1px solid #d3e1dc;border-radius:16px;margin:12px 0}.motion-guide.playing span{animation:stage7 3s infinite}.motion-guide.playing span:nth-child(2){animation-delay:1s}.motion-guide.playing span:nth-child(3){animation-delay:2s}@keyframes stage7{0%,30%{background:#16756a;color:white;transform:scale(1.04)}60%,100%{background:transparent;color:inherit;transform:none}}.motion-guide span{padding:8px;border-radius:8px}.field textarea{min-height:100px}.panel .outline{margin-top:8px}fieldset{min-width:0;border:1px solid #d3e1dc;border-radius:12px;margin:16px 0;padding:12px}#content details{margin:16px 0}.report-portrait .portrait{max-height:260px}#modal{max-height:85vh;overflow:auto}.share-result{background:#edf5f2}@media(prefers-reduced-motion:reduce){.motion-guide.playing span{animation:none}}
.score-ring{border:10px solid #16756a;border-radius:50%;width:150px;height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:20px auto;animation:score-appear7 1.1s ease-out}.score-ring strong{font-size:42px}.score-ring span{font-size:13px}.severity{border-radius:8px;padding:5px 8px}.severity-0{background:#e6f4e7}.severity-1{background:#fff6cf}.severity-2{background:#ffe4cb}.severity-3{background:#fbdede}.report-image-stage{height:320px;overflow:auto;position:relative;background:#edf4f0}.report-image-stage img{width:100%;transform-origin:center;transition:transform .32s ease-out}.marks-demo{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}@keyframes score-appear7{from{opacity:.3;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.score-ring{animation:none}.report-image-stage img{transition:none}}

/* SymFace preparation and original module entries */
.symface-preparation h2 { margin: 8px 0 22px; font-size: clamp(24px, 5.5vw, 29px); line-height: 1.28; }
.symface-preparation p, .symface-native-entry p { margin: 8px 0 14px; line-height: 1.65; }
.symface-guide-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  border: 1px solid #d8e7e2;
  border-radius: 18px;
  padding: 15px;
  margin: 0 0 12px;
  background: #f3f9f7;
}
.symface-guide-card h3 { margin: 0; font-size: 17px; }
.symface-guide-card p { margin: 6px 0 0; }
.symface-step { font-variant-numeric: tabular-nums; color: #2d665e; font-weight: 700; }
.symface-consent { grid-template-columns: minmax(0, 1fr); }
.symface-module-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.symface-module-card {
  display: flex;
  flex-direction: column;
  text-align: left;
  gap: 6px;
  min-height: 64px;
  border: 1px solid #d8e7e2;
  border-radius: 14px;
  padding: 12px;
  background: #f3f9f7;
  color: #173c36;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.symface-module-card span { color: #385b55; font-size: 13px; line-height: 1.45; }
.symface-native-entry { border-bottom: 1px solid #d8e7e2; padding-bottom: 14px; margin-bottom: 18px; }
.symface-link { display: inline-flex; align-items: center; min-height: 44px; color: #176356; font-weight: 700; }
#actionbar .symface-link { justify-content: center; width: 100%; border-radius: 12px; background: #176356; color: #fff; text-decoration: none; }
.symface-source-links { display: flex; flex-direction: column; gap: 10px; }
.symface-module-card:focus-visible, .symface-link:focus-visible { outline: 3px solid #176356; outline-offset: 2px; }

.symface-platform { color: #385b55; font-size: 12px; text-align: center; margin-bottom: 6px; }
