:root{color:#17212b;background:#f7f7f5;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f7f7f5}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(1240px,calc(100vw - 48px));min-height:100vh;margin:0 auto;padding:32px 0 40px}.site-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.site-header h1{margin:0 0 6px;color:#111827;font-size:28px;font-weight:750;letter-spacing:0}.site-header p{margin:0;color:#667085;font-size:14px}.header-link{display:inline-flex;align-items:center;min-height:36px;border:1px solid #d8dee6;border-radius:999px;padding:0 14px;background:#fff;color:#164e63;font-size:13px;font-weight:650;text-decoration:none;white-space:nowrap}.app-grid{display:grid;grid-template-columns:minmax(360px,420px) minmax(0,1fr);gap:24px;align-items:start}.control-stack{display:grid;gap:16px}.surface{border:1px solid #e5e7eb;border-radius:16px;background:#fff;box-shadow:0 1px 2px #1018280a}.input-panel{position:sticky;top:24px;padding:20px}.record-panel{padding:16px}.record-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.record-head h2{margin:0 0 3px;color:#111827;font-size:16px;font-weight:750}.record-head span,.record-list p{margin:0;color:#667085;font-size:12px}.record-list{display:grid;gap:8px}.record-item{display:grid;gap:8px;width:100%;border:1px solid #e5e7eb;border-radius:12px;background:#fbfbfa;cursor:pointer;padding:10px 12px;text-align:left}.record-item:focus-visible{outline:3px solid rgba(22,78,99,.18);outline-offset:2px}.record-item:hover{border-color:#b8c4cf;background:#f8faf9}.record-meta{display:inline-flex;align-items:center;gap:6px;color:#667085;font-size:12px}.record-item strong{overflow:hidden;color:#17212b;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.record-status-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px}.record-status-row small{color:#667085;font-size:12px}.feedback-badge{display:inline-flex;align-items:center;width:fit-content;min-height:24px;border:1px solid #d0d5dd;border-radius:999px;padding:0 8px;background:#fff;color:#667085;font-size:12px;font-weight:700}.feedback-badge.done{border-color:#b7d7c4;background:#f2faf5;color:#24613c}.quality-badge{display:inline-flex;align-items:center;width:fit-content;min-height:24px;border:1px solid #e5e7eb;border-radius:999px;padding:0 8px;background:#fff;color:#475467;font-size:12px;font-weight:700}.quality-badge.valid{border-color:#b7d7c4;color:#24613c}.record-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.compact-button{min-height:34px;border-radius:10px;padding:0 10px;font-size:12px}.icon-button:disabled{cursor:not-allowed;opacity:.45}.tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:20px;border-radius:12px;background:#f3f4f1;padding:4px}.tabs button{min-height:38px;border:0;border-radius:10px;background:transparent;color:#475467;font-weight:650}.tabs button.active{background:#fff;color:#164e63;box-shadow:0 1px 2px #10182814}form{display:grid;gap:16px}.mode-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid #e5e7eb;padding-bottom:10px}.mode-heading strong{color:#111827;font-size:16px}.mode-heading span{color:#667085;font-size:13px}.mode-heading.compact{padding-bottom:8px}.mode-heading.compact strong{font-size:14px}.profile-fields{display:grid;gap:12px;border:1px solid #e5e7eb;border-radius:12px;background:#fbfbfa;padding:12px}.hint-text{margin:0;color:#667085;font-size:12px;line-height:1.5}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.method-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.method-toggle.three{grid-template-columns:repeat(3,minmax(0,1fr))}.method-toggle button{min-height:40px;border:1px solid #d0d5dd;border-radius:12px;background:#fff;color:#475467;font-weight:650}.method-toggle button.active{border-color:#164e63;background:#ecf5f6;color:#164e63}.field{display:grid;gap:8px}.field span,.line-select span{color:#344054;font-size:13px;font-weight:650}input,select,textarea{width:100%;border:1px solid #d0d5dd;border-radius:12px;background:#fff;color:#17212b;outline:none;transition:border-color .15s ease,box-shadow .15s ease}input,select{min-height:42px;padding:0 12px}textarea{resize:vertical;min-height:96px;padding:10px 12px;line-height:1.55}input:focus,select:focus,textarea:focus{border-color:#164e63;box-shadow:0 0 0 3px #164e631f}.line-grid{display:grid;gap:12px}.line-select{display:grid;grid-template-columns:70px minmax(0,1fr) 48px;align-items:center;gap:10px}.line-select small{color:#667085;text-align:right}.button-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding-top:4px}.primary-button,.secondary-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;font-weight:700}.primary-button{min-height:44px;border:1px solid #164e63;background:#164e63;color:#fff}.primary-button:hover{background:#123f50}.secondary-button{min-height:44px;border:1px solid #d0d5dd;background:#fff;color:#344054;padding:0 14px}.secondary-button:hover,.icon-button:hover{border-color:#aeb7c3;background:#f8faf9}.error{margin:0;color:#b42318;font-size:13px;line-height:1.5}.result-panel{display:grid;gap:16px}.export-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px}.export-bar div:first-child{display:grid;gap:4px}.export-bar strong{color:#17212b;font-size:15px}.export-bar span{color:#667085;font-size:12px}.export-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.export-actions .secondary-button{min-height:38px}.feedback-summary,.admin-panel{padding:16px}.admin-grid{display:grid;gap:12px}.admin-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-message{margin:12px 0 0;color:#475467;font-size:12px;line-height:1.6}.admin-raw-list{display:grid;gap:8px;margin-top:12px}.admin-raw-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid #edf0f2;border-radius:12px;background:#fbfbfa;padding:10px 12px}.admin-raw-list span{color:#667085;font-size:12px;font-weight:700}.admin-raw-list strong{color:#17212b}.admin-record-item{cursor:pointer}.feedback-modal-backdrop{position:fixed;inset:0;z-index:30;display:flex;justify-content:flex-end;background:#1118272e;padding:24px}.feedback-panel{width:min(520px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:16px;box-shadow:0 18px 42px #1018282e}.feedback-form{gap:12px}.feedback-json{border:1px solid #e5e7eb;border-radius:12px;background:#fbfbfa;padding:12px}.feedback-json summary{color:#17212b;font-size:13px;font-weight:700}.feedback-json pre{max-height:260px;margin:12px 0 0;overflow:auto;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#344054;padding:10px;font-size:12px;line-height:1.55}.feedback-total{display:grid;gap:4px;border:1px solid #edf0f2;border-radius:12px;background:#fbfbfa;padding:12px;margin-bottom:10px}.feedback-export-actions{justify-content:stretch;margin-bottom:10px}.feedback-export-actions .compact-button{flex:1}.secondary-button:disabled{cursor:not-allowed;opacity:.5}.feedback-total span,.feedback-count-block span{color:#667085;font-size:12px;font-weight:700}.feedback-total strong{color:#17212b;font-size:22px}.feedback-count-grid{display:grid;gap:8px}.feedback-count-block{display:grid;gap:8px;border:1px solid #edf0f2;border-radius:12px;background:#fbfbfa;padding:12px}.feedback-count-block div{display:flex;flex-wrap:wrap;gap:6px}.feedback-count-block small{min-height:24px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#475467;padding:3px 8px;font-size:12px;font-weight:650}.empty-state{min-height:520px;display:grid;place-items:center;align-content:center;gap:12px;padding:32px;color:#667085;text-align:center}.empty-state h2{margin:0 0 6px;color:#344054;font-size:17px}.empty-state p{margin:0;font-size:14px}.summary-card,.result-section,.json-viewer{padding:18px}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}.section-title h2{margin:0;color:#111827;font-size:16px;font-weight:750}.section-title span{color:#667085;font-size:13px}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.summary-item{display:grid;min-height:76px;align-content:center;gap:8px;border:1px solid #edf0f2;border-radius:14px;background:#fbfbfa;padding:12px}.summary-item span,dt{color:#667085;font-size:12px}.summary-item strong,dd{color:#17212b;font-weight:750}.plate-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.palace-visuals{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:18px;align-items:center}.twelve-disk{position:relative;width:min(100%,320px);aspect-ratio:1;margin:0 auto;border:1px solid #e5e7eb;border-radius:50%;background:radial-gradient(circle at center,#ffffff 0 24%,transparent 25%),conic-gradient(from -15deg,#f8faf9 0 30deg,#fff 30deg 60deg,#f8faf9 60deg 90deg,#fff 90deg 120deg,#f8faf9 120deg 150deg,#fff 150deg 180deg,#f8faf9 180deg 210deg,#fff 210deg 240deg,#f8faf9 240deg 270deg,#fff 270deg 300deg,#f8faf9 300deg 330deg,#fff 330deg 360deg)}.disk-center{position:absolute;inset:50%;width:82px;height:82px;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid #d8dee6;border-radius:50%;background:#fff}.disk-center span{color:#667085;font-size:12px}.disk-center strong{color:#164e63;font-size:24px}.disk-palace{position:absolute;left:50%;top:50%;width:54px;min-height:48px;display:grid;place-items:center;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-120px) rotate(calc(-1 * var(--angle)));border:1px solid #e5e7eb;border-radius:12px;background:#fffffff0}.disk-palace span{color:#164e63;font-size:18px;font-weight:750}.disk-palace strong{color:#667085;font-size:12px}.plate-cell{min-height:64px;display:grid;place-items:center;border:1px solid #e5e7eb;border-radius:14px;background:#fbfbfa}.plate-cell span{color:#164e63;font-size:18px;font-weight:750}.plate-cell strong{color:#344054;font-size:14px}.lesson-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.transmission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.palace-order{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:16px}.palace-pill{min-height:42px;display:grid;place-items:center;border:1px solid #e5e7eb;border-radius:999px;background:#fbfbfa;color:#475467;font-size:13px;font-weight:700}.palace-pill.active{border-color:#164e63;background:#164e63;color:#fff}.step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.step-card{display:grid;gap:8px}.step-card span{color:#667085;font-size:12px}.step-card strong{color:#17212b}.step-card p{margin:0;color:#667085;font-size:13px;line-height:1.55}.step-card div{color:#164e63;font-size:14px;font-weight:750}.inference-card{display:grid;gap:10px;border:1px solid #e5e7eb;border-radius:14px;background:#fbfbfa;padding:14px}.interpretation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.question-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fingerprint-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.personalized-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.llm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mini-json{max-height:180px;margin:0;overflow:auto;color:#344054;white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.55}.timing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.timing-card{display:grid;gap:10px;border:1px solid #e5e7eb;border-radius:12px;background:#fbfbfa;padding:14px}.timing-card div{display:grid;gap:6px}.timing-card span,.timing-card small{color:#667085;font-size:12px;font-weight:700}.timing-card strong{color:#17212b;line-height:1.45}.timing-card p{margin:0;color:#344054;font-size:13px;line-height:1.6}.timing-card ul{display:grid;gap:5px;margin:0;padding-left:18px;color:#667085;font-size:12px;line-height:1.5}.inference-card.wide{grid-column:1 / -1}.inference-card span{color:#667085;font-size:12px;font-weight:700}.inference-card strong{color:#17212b;line-height:1.6}.inference-card p{margin:0;color:#667085;line-height:1.65}.sub-card{border:1px solid #e5e7eb;border-radius:14px;background:#fbfbfa;padding:14px}.lesson-card,.transmission-card{display:grid;gap:6px}.lesson-card span,.transmission-card span,.card-head span{color:#667085;font-size:12px}.lesson-card strong{color:#17212b}.lesson-card small{color:#667085}.transmission-card strong{color:#164e63;font-size:22px}.wuxing-overview{display:grid;grid-template-columns:2fr repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}.wuxing-flow,.wuxing-trend,.wuxing-arrow{border:1px solid #e5e7eb;border-radius:12px;background:#fbfbfa}.wuxing-flow{min-height:72px;display:flex;align-items:center;gap:10px;padding:14px;color:#164e63}.wuxing-flow strong{color:#17212b;font-size:20px}.wuxing-trend{display:grid;align-content:center;gap:6px;padding:14px}.wuxing-trend span,.wuxing-arrow span{color:#667085;font-size:12px;font-weight:700}.wuxing-trend strong{color:#164e63;font-size:22px}.wuxing-arrow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wuxing-arrow{min-height:48px;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto minmax(0,1fr);align-items:center;gap:8px;padding:10px 12px}.wuxing-arrow svg{color:#98a2b3}.wuxing-arrow strong{color:#17212b;font-size:14px}.hexagram-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.card-head strong{color:#17212b;font-size:18px}.hexagram-lines{display:grid;gap:7px;margin-bottom:16px}.yao-line{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:10px}.yao-line span{color:#164e63;font-size:22px;line-height:1}.yao-line small{color:#667085}dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}dl div{display:grid;gap:3px}dd{margin:0}.trace{max-height:180px;margin:0;overflow:auto;border:1px solid #e5e7eb;border-radius:12px;background:#f8faf9;color:#344054;padding:12px;font-size:12px;line-height:1.6}.json-viewer summary{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#111827;font-size:16px;font-weight:750;list-style:none}.json-viewer summary::-webkit-details-marker{display:none}.json-viewer summary:before{content:"展开";order:2;margin-left:auto;color:#667085;font-size:12px;font-weight:650}.json-viewer[open] summary:before{content:"收起"}.icon-button{width:32px;height:32px;border:1px solid #d0d5dd;background:#fff;color:#344054;padding:0}.json-viewer pre{max-height:360px;margin:16px 0 0;overflow:auto;border:1px solid #e5e7eb;border-radius:12px;background:#f8faf9;color:#344054;padding:12px;font-size:12px;line-height:1.6}@media(max-width:900px){.app-shell{width:min(100% - 32px,720px);padding:24px 0 32px}.site-header{align-items:flex-start;flex-direction:column;gap:14px}.app-grid{grid-template-columns:1fr}.input-panel{position:static}.palace-visuals{grid-template-columns:1fr}.export-bar{align-items:flex-start;flex-direction:column}.export-actions{width:100%;justify-content:stretch}.export-actions .secondary-button{flex:1}.summary-grid,.hexagram-grid,.lesson-grid,.transmission-grid,.step-grid,.interpretation-grid,.profile-result-grid,.question-context-grid,.fingerprint-grid,.personalized-grid,.llm-grid,.timing-grid,.wuxing-overview,.wuxing-arrow-grid{grid-template-columns:1fr}.plate-grid,.palace-order{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:520px){.app-shell{width:min(100% - 24px,520px)}.site-header h1{font-size:24px}.button-row,.line-select,.form-grid.two,.method-toggle,.record-actions{grid-template-columns:1fr}.feedback-modal-backdrop{padding:12px}.feedback-panel{max-height:calc(100vh - 24px)}.line-select small{text-align:left}.plate-grid,.palace-order{grid-template-columns:repeat(2,minmax(0,1fr))}.disk-palace{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-104px) rotate(calc(-1 * var(--angle)))}}
