:root{--bg:#faf8f4;--surface:#fffefb;--surface-2:#f4f1eb;--border:#e5dfd6;--border-focus:#a8c4b4;--text:#2d2926;--text-2:#7a6f65;--green:#4a7c65;--green-mid:#6b9e86;--green-light:#e4ede7;--amber-light:#fdf3e0;--amber-mid:#e8a84a;--blue:#4e7299;--blue-light:#e6eef6;--green-text:#376050;--radius-sm:10px;--radius:16px;--radius-lg:20px;--shadow:0 2px 12px #2d292612;--shadow-lg:0 8px 32px #2d29261a;--header-h:64px}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #4a7c654d}.app-header{z-index:10;height:var(--header-h);border-bottom:1px solid var(--border);align-items:center;gap:20px;padding:0 28px;display:flex;position:sticky;top:0}.app-header:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#faf8f4eb;position:absolute;inset:0}.brand{cursor:pointer;flex-shrink:0;align-items:center;gap:10px;display:flex}.brand-mark{background:var(--green);color:#fff;border-radius:10px;place-items:center;width:36px;height:36px;font-size:14px;font-weight:800;display:grid}.brand-text{flex-direction:column;justify-content:center;display:flex}.brand-name{color:var(--text);font-size:16px;font-weight:700}.nav-pills{flex:1;justify-content:center;gap:4px;display:flex}.nav-tab{color:var(--text-2);background:0 0;border:none;border-radius:999px;padding:7px 16px;font-size:14px;font-weight:600;transition:background .14s,color .14s}.nav-tab:hover{background:var(--green-light);color:var(--green)}.nav-tab.active{background:var(--green);color:#fff}.nav-tab--hidden{display:none}.sync-dot{appearance:none;background:var(--border);border:none;border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-left:auto;padding:0;transition:background .15s}.sync-dot.is-synced{background:var(--green)}.sync-dot.is-syncing{background:var(--amber-mid)}.sync-dot.is-error{background:#c0392b}.app-body{max-width:1400px;margin:0 auto;padding:32px 28px 64px}.view{display:none}.view.active{display:block}.home-container{max-width:960px;margin:0 auto;padding:40px 0 20px}.home-hero{text-align:center;margin-bottom:48px}.home-logo{place-items:center;margin-bottom:16px;display:grid}.home-hero h1{color:var(--text);margin:0 0 8px;font-size:32px;font-weight:800}.home-subtitle{color:var(--text-2);margin:0;font-size:15px}.home-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width>=721px){.home-grid{grid-template-columns:repeat(6,1fr)}.home-card{grid-column:span 2}}.home-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;flex-direction:column;align-items:flex-start;gap:6px;padding:24px;transition:transform .14s,box-shadow .14s,border-color .14s;display:flex}.home-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-focus);transform:translateY(-2px)}.home-card-icon{margin-bottom:4px;font-size:28px}.home-card-number{background:var(--green-light);min-width:48px;height:34px;color:var(--green-text);letter-spacing:-.03em;border-radius:10px;place-items:center;padding:0 8px;font-size:18px;font-weight:800;display:grid}.home-card h3{color:var(--text);margin:0;font-size:16px;font-weight:700}.home-card p{color:var(--text-2);margin:0;font-size:13px}@media (width<=720px){.home-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.home-grid{grid-template-columns:1fr}}.app-body:has(#view-english.active){max-width:none;padding:0}#view-english.active{height:calc(100dvh - var(--header-h));min-height:0;overflow:hidden}.english-frame-shell{background:#faf6ed;height:calc(100% - 32px);min-height:360px;position:relative;overflow:hidden}#english-frame{opacity:0;border:0;width:100%;height:100%;transition:opacity .18s;display:block}#english-frame.is-loaded{opacity:1}.english-frame-loading{z-index:1;color:var(--text-2);background:#faf6ed;place-content:center;justify-items:center;gap:8px;display:grid;position:absolute;inset:0}.english-frame-loading strong{color:var(--green);letter-spacing:-.06em;font-size:clamp(48px,8vw,88px);line-height:1}.english-frame-loading span{font-size:14px}.english-source{border-top:1px solid var(--border);background:var(--surface);height:32px;color:var(--text-2);justify-content:space-between;align-items:center;gap:16px;margin:0;padding:0 28px;font-size:11px;display:flex}.english-source span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.english-source a{color:var(--green-text);flex-shrink:0;text-decoration:none}.english-source a:hover{text-decoration:underline}@media (width<=720px){.app-body:has(#view-english.active){padding-bottom:calc(64px + env(safe-area-inset-bottom))}#view-english.active{height:calc(100dvh - var(--header-h) - 64px - env(safe-area-inset-bottom))}.english-frame-shell{height:calc(100% - 32px)}.english-source{height:32px;padding:0 16px}}@media (prefers-reduced-motion:reduce){#english-frame{transition:none}}.view-top{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:22px;display:flex}.view-top h2{margin:0;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:30px;font-weight:700;line-height:1.2}.card-label{color:var(--text-2);letter-spacing:.04em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:800}.badge{background:var(--green-light);color:var(--green-text);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800;display:inline-block}.text-muted{color:var(--text-2);line-height:1.7}.btn-primary,.btn-ghost{border-radius:var(--radius-sm);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:700;transition:background .13s,box-shadow .13s,transform 80ms;display:inline-flex}.btn-primary{background:var(--green);color:#fff;border-color:var(--green)}.btn-primary:hover{background:var(--green-mid);border-color:var(--green-mid)}.btn-primary:active{transform:scale(.97)}.btn-ghost{background:var(--surface);border-color:var(--border);color:var(--green)}.btn-ghost:hover{background:var(--green-light);border-color:#b8d0c2}.btn-sm{padding:6px 12px;font-size:13px}label{color:var(--text-2);gap:7px;font-size:13px;font-weight:700;display:grid}input,select,textarea{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);padding:10px 12px;transition:border-color .13s}input:focus,select:focus,textarea:focus{border-color:var(--border-focus);background:#fff;outline:none}textarea{resize:vertical;line-height:1.65}.full-width{grid-column:1/-1}.stories-layout{grid-template-columns:260px 1fr;align-items:start;gap:20px;display:grid}.story-browser{top:calc(var(--header-h) + 16px);max-height:calc(100vh - var(--header-h) - 48px);flex-direction:column;padding:0;display:flex;position:sticky;overflow:hidden}.story-browser-header{justify-content:space-between;align-items:center;padding:4px 0 14px;display:flex}.story-browser-header h3{color:var(--text-2);letter-spacing:.06em;text-transform:uppercase;margin:0;font-family:inherit;font-size:11px;font-weight:800}.story-list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;display:grid;overflow-y:auto}.story-list-item{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:28px 1fr;align-items:center;gap:10px;min-height:48px;padding:14px 4px;transition:background .12s;display:grid}.story-list-item:last-child{border-bottom:0}.story-list-item:hover{background:var(--green-light)}.story-list-item.active{background:var(--green-light);box-shadow:inset 3px 0 0 var(--green)}.story-list-number{color:var(--text-2);padding-top:2px;font-family:ui-monospace,monospace;font-size:11px;font-weight:700}.story-list-item.active .story-list-number{color:var(--green)}.story-list-details{gap:4px;min-width:0;display:grid}.story-list-details strong{white-space:nowrap;text-overflow:ellipsis;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:15px;font-weight:700;line-height:1.4;overflow:hidden}.story-list-meta{color:var(--text-2);font-size:11px;line-height:1.4}.story-list-feedback{width:fit-content;color:var(--green-text);background:var(--green-light);border-radius:6px;padding:2px 7px;font-size:11px;font-weight:800}.story-reader{border:1px solid var(--border);border-top:3px solid var(--amber-mid);border-radius:var(--radius);box-shadow:var(--shadow-lg);scroll-margin-top:var(--header-h);background:#fffefb;overflow:hidden}.story-reader-toolbar{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.story-back{display:none}.story-copy{padding:32px 36px 36px}.story-kicker{color:var(--green);letter-spacing:.04em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:800}.story-copy>h3{color:var(--text);margin:0 0 8px;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:28px;font-weight:700;line-height:1.4}.story-theme{color:var(--text-2);margin:0 0 24px;font-size:15px;line-height:1.6}.story-body{color:#383130;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:17px;line-height:2.1}.story-body p{margin:0 0 1.2em}.story-response{border-top:1px solid var(--border);margin-top:32px;padding-top:20px}.story-response .card-label{margin-bottom:12px}.story-response-options{flex-wrap:wrap;gap:8px;display:flex}.story-response-options button{border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);background:0 0;padding:8px 14px;font-size:13px;font-weight:700;transition:all .13s}.story-response-options button:hover,.story-response-options button.active{border-color:var(--border-focus);background:var(--green-light);color:var(--green)}.story-pager{justify-content:space-between;gap:10px;margin-top:26px;display:flex}.story-position{font-size:12px}.record-form{gap:16px;display:grid}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.form-actions{flex-wrap:wrap;gap:10px;display:flex}.record-list{gap:12px;display:grid}.record-empty{text-align:center;color:var(--text-2);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:40px 24px}.record-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 44px 16px 20px;position:relative}.record-item-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.record-item-date{color:var(--text);font-size:13px;font-weight:700}.record-item-type{color:var(--green-text);background:var(--green-light);border-radius:999px;padding:2px 8px;font-size:12px}.record-item-concept{margin:0 0 4px;font-size:15px;font-weight:700}.record-item-body{color:var(--text-2);white-space:pre-wrap;margin:0 0 6px;font-size:14px;line-height:1.5}.record-item-meta{color:var(--text-2);margin:0;font-size:12px}.record-item-del{width:24px;height:24px;color:var(--text-2);background:0 0;border:none;border-radius:50%;place-items:center;font-size:18px;line-height:1;display:grid;position:absolute;top:12px;right:12px}.record-item-del:hover{background:var(--surface-2);color:var(--text)}.toast{z-index:25;background:var(--text);color:#fff;border-radius:var(--radius-sm);opacity:0;pointer-events:none;max-width:min(320px,100vw - 40px);box-shadow:var(--shadow-lg);align-items:center;gap:8px;padding:11px 16px;font-size:14px;font-weight:600;transition:opacity .15s,transform .15s;display:flex;position:fixed;bottom:20px;right:20px;transform:translateY(10px)}.toast.show{opacity:1;pointer-events:auto;transform:translateY(0)}.toast-undo-btn{color:#fff;cursor:pointer;white-space:nowrap;background:0 0;border:1.5px solid #ffffff80;border-radius:4px;flex-shrink:0;padding:3px 9px;font-size:12px;font-weight:700;transition:background .12s}.toast-undo-btn:hover{background:#ffffff26}@keyframes iconGrow{0%{opacity:0;transform:scale(0)rotate(-15deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes iconFloat{0%,to{transform:translateY(0)rotate(0)}40%{transform:translateY(-4px)rotate(-2deg)}70%{transform:translateY(-2px)rotate(1.5deg)}}@keyframes iconWiggle{0%{transform:rotate(0)scale(1)}20%{transform:rotate(-10deg)scale(1.1)}50%{transform:rotate(8deg)scale(1.08)}75%{transform:rotate(-4deg)scale(1.04)}to{transform:rotate(0)scale(1)}}.brand-mark{animation:.5s cubic-bezier(.22,1,.36,1) both iconGrow,4s ease-in-out .5s infinite iconFloat}.brand-mark:hover{animation:.5s cubic-bezier(.22,1,.36,1) iconWiggle}@keyframes slideUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.view.active .view-top{animation:.3s cubic-bezier(.22,1,.36,1) both slideUp}.view.active>:not(.view-top){animation:.36s cubic-bezier(.22,1,.36,1) both slideUp}.view.active>:nth-child(3){animation-delay:55ms}.view.active>:nth-child(4){animation-delay:.11s}.view.active>:nth-child(5){animation-delay:.165s}.story-list-item{animation:.22s cubic-bezier(.22,1,.36,1) both slideUp}.story-list-item:nth-child(2){animation-delay:30ms}.story-list-item:nth-child(3){animation-delay:60ms}.story-list-item:nth-child(4){animation-delay:90ms}.story-list-item:nth-child(5){animation-delay:.12s}.story-list-item:nth-child(6){animation-delay:.15s}.story-list-item:nth-child(7){animation-delay:.18s}.story-list-item:nth-child(8){animation-delay:.21s}.nav-tab{transition:background .18s,color .18s,transform 80ms}.nav-tab:active{transform:scale(.93)}.btn-primary{transition:background .13s,border-color .13s,transform 80ms,box-shadow .13s}.btn-ghost{transition:background .13s,border-color .13s,transform 80ms}.btn-primary:active,.btn-ghost:active{transition-duration:50ms;transform:scale(.95)}@media (width<=720px){.app-header{gap:10px;padding:0 16px}.nav-pills{z-index:20;padding:8px 12px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border);background:#faf8f4f5;justify-content:space-around;gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #2d29260f}.nav-tab{border-radius:10px;flex:1;padding:8px 6px;font-size:13px}.app-body{padding:20px 16px calc(80px + env(safe-area-inset-bottom))}.view-top h2{font-size:24px}.stories-layout{display:block;position:static}.story-browser{max-height:none;margin-bottom:16px;position:static}.story-reader,.stories-layout.is-reading .story-browser{display:none}.stories-layout.is-reading .story-reader{display:block}#view-stories.is-reading>.view-top{display:none}.story-reader{box-shadow:none;background:0 0;border:none;border-radius:0;margin:0 -16px;overflow:visible}.story-reader-toolbar{top:var(--header-h);z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffefbf5;justify-content:space-between;padding:10px 16px;position:sticky}.story-back{display:inline-flex}.story-copy{padding:20px 16px 32px}.story-copy>h3{font-size:24px}.story-body{font-size:17px}.form-grid{grid-template-columns:1fr}.toast{bottom:calc(64px + env(safe-area-inset-bottom) + 12px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.confirm-modal-overlay{z-index:210;opacity:0;pointer-events:none;background:#00000073;justify-content:center;align-items:center;padding:24px;transition:opacity .2s;display:flex;position:fixed;inset:0}.confirm-modal-overlay.open{opacity:1;pointer-events:auto}.confirm-modal{background:var(--bg);border-radius:var(--radius);width:100%;max-width:320px;box-shadow:var(--shadow-lg);padding:24px 20px;transition:transform .2s cubic-bezier(.32,.72,0,1);transform:scale(.92)}.confirm-modal-overlay.open .confirm-modal{transform:scale(1)}.confirm-modal-title{text-align:center;color:var(--text);margin:0 0 8px;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:16px;font-weight:700}.confirm-modal-desc{text-align:center;color:var(--text-2);margin:0 0 20px;font-size:13px;line-height:1.6}.confirm-modal-actions{gap:12px;display:flex}.confirm-modal-actions .btn-ghost,.confirm-modal-actions .btn-primary{text-align:center;flex:1}.sync-token-input,.sync-generate-btn{width:100%;margin-bottom:12px}#view-files{--files-browser-width:clamp(260px, 24vw, 320px);--files-toolbar-height:64px;--files-control-height:36px;--files-toolbar-background:var(--surface)}.app-body:has(#view-files.active){max-width:none;padding:0}.files-workspace{grid-template-columns:var(--files-browser-width) minmax(0, 1fr);height:calc(100dvh - var(--header-h));background:var(--surface);min-height:0;box-shadow:none;border:0;border-radius:0;transition:grid-template-columns .18s;display:grid;position:relative;overflow:hidden}.files-workspace.is-dragging:after{content:"松开以上传";z-index:30;border:2px dashed var(--green);border-radius:var(--radius-sm);color:var(--green-text);pointer-events:none;background:#e4ede7f0;place-items:center;font-size:16px;font-weight:700;display:grid;position:absolute;inset:10px}.files-browser{border-right:1px solid var(--border);background:#fbfaf7;flex-direction:column;min-width:0;min-height:0;transition:opacity .15s,transform .18s;display:flex}.files-browser-header{height:var(--files-toolbar-height);flex:0 0 var(--files-toolbar-height);border-bottom:1px solid var(--border);background:var(--files-toolbar-background);align-items:center;gap:6px;padding:0 12px;display:flex}.files-browser-actions{flex:none;align-items:center;gap:3px;min-width:0;display:flex}.files-sidebar-search{min-width:68px;height:var(--files-control-height);border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:7px;flex:110px;align-items:center;gap:6px;padding:0 10px;display:flex}.files-sidebar-search:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 2px #4a7c651f}.files-sidebar-search input{background:0 0;border:0;border-radius:0;outline:0;width:100%;min-width:0;padding:0;font-size:12px}.files-sidebar-search input:focus{background:0 0}.files-header-icon{width:34px;height:34px;color:var(--text-2);background:0 0;border:1px solid #0000;border-radius:7px;flex:0 0 34px;place-items:center;padding:0;display:grid}.files-header-icon:hover{border-color:var(--border);background:var(--surface);color:var(--green)}.files-header-upload{color:var(--green)}.files-header-upload span{display:none}.files-header-delete:hover{color:#a63d35;background:#fbe9e7}.files-list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;min-height:0;padding:8px;overflow-y:auto}.files-browser-footer{border-top:1px solid var(--border);min-height:44px;color:var(--text-2);font-variant-numeric:tabular-nums;flex:0 0 44px;align-items:center;padding:0 36px 0 14px;font-size:11px;display:flex}.files-browser-toggle{left:calc(var(--files-browser-width) - 16px);z-index:8;border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-2);border-radius:7px;place-items:center;padding:0;transition:left .18s,color .14s,background .14s;display:grid;position:absolute;bottom:7px;transform:translate(-50%);box-shadow:0 2px 8px #2d292614}.files-browser-toggle:hover{background:var(--green-light);color:var(--green)}.files-browser-toggle svg{transition:transform .18s}@media (width>=721px){.files-workspace.is-browser-collapsed{grid-template-columns:0 minmax(0,1fr)}.files-workspace.is-browser-collapsed .files-browser{opacity:0;pointer-events:none;border-right-color:#0000;transform:translate(-100%)}.files-workspace.is-browser-collapsed .files-browser-toggle{left:17px}.files-workspace.is-browser-collapsed .files-browser-toggle svg{transform:rotate(180deg)}}.files-list-item,.files-folder-item{width:100%;min-height:60px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:7px 9px;display:grid}.files-folder-item{grid-template-columns:34px minmax(0,1fr) 16px;min-height:56px;padding-right:4px}.files-folder-group{border-radius:8px;position:relative}.files-folder-row{grid-template-columns:minmax(0,1fr) 28px;align-items:center;display:grid}.files-folder-group.is-expanded{background:0 0;margin-bottom:4px}.files-folder-group.is-expanded .files-folder-item{background:#f1f3f1}.files-list-item:hover,.files-folder-item:hover{background:#f1f4f2}.files-list-item.is-active{box-shadow:inset 3px 0 0 var(--green);background:#edf2ef}.files-type-icon{background:var(--blue-light);width:34px;height:34px;color:var(--blue);border-radius:7px;place-items:center;font-size:10px;font-weight:800;display:grid}.files-type-icon.is-xmind{color:#9a5a2a;background:#f7eadf}.files-folder-icon{width:34px;height:34px;color:var(--green);background:#edf1ed;border-radius:7px;place-items:center;display:grid}.files-folder-chevron{color:#a89f95;place-items:center;display:grid}.files-folder-chevron svg{transition:transform .15s}.files-folder-group.is-expanded .files-folder-chevron svg{transform:rotate(90deg)}.files-folder-menu{z-index:5;position:relative}.files-folder-menu summary{width:28px;height:32px;color:var(--text-2);cursor:pointer;opacity:.56;border-radius:7px;place-items:center;list-style:none;display:grid}.files-folder-menu summary::-webkit-details-marker{display:none}.files-folder-row:hover .files-folder-menu summary,.files-folder-menu[open] summary,.files-folder-menu summary:focus-visible{background:var(--surface);color:var(--green);opacity:1}.files-folder-menu summary:focus-visible{outline-offset:1px;outline:2px solid #4a7c6547}.files-folder-menu-popover{z-index:12;border:1px solid var(--border);background:var(--surface);border-radius:8px;width:148px;padding:5px;position:absolute;top:36px;right:0;box-shadow:0 10px 28px #2d292624}.files-folder-menu-item{width:100%;min-height:34px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;padding:0 10px;font-size:12px;display:flex}.files-folder-menu-item:hover{background:var(--green-light);color:var(--green-text)}.files-folder-menu-item.is-danger:hover{color:#a63d35;background:#fbe9e7}.files-folder-children{border-left:1px solid #d9dfdb;margin:0 5px 5px 24px;padding-left:7px}.files-list-item.is-nested{grid-template-columns:30px minmax(0,1fr);gap:8px;min-height:54px;padding:6px 7px}.files-list-item.is-nested.is-active{box-shadow:inset 2px 0 0 var(--green);background:#edf2ef}.files-list-item.is-nested .files-type-icon{width:30px;height:30px;font-size:9px}.files-folder-empty{min-height:42px;color:var(--text-2);justify-content:space-between;align-items:center;gap:8px;padding:4px 7px;font-size:11px;display:flex}.files-folder-empty>.files-folder-menu-item{width:auto;min-height:28px;color:var(--green-text);padding:0 7px}.files-list-copy{gap:3px;min-width:0;display:grid}.files-list-copy strong,.files-list-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.files-list-copy strong{font-size:13px;font-weight:650}.files-list-copy small{color:var(--text-2);font-size:11px}.files-list-state{min-height:100%;color:var(--text-2);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:32px 20px;display:flex}.files-list-state strong{color:var(--text);font-size:14px}.files-list-state p{margin:-3px 0 3px;font-size:12px;line-height:1.6}.files-empty-mark{min-height:30px;font-size:26px}.files-reader{background:#fff;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.files-reader-toolbar{min-width:0;min-height:var(--files-toolbar-height);flex:0 0 var(--files-toolbar-height);border-bottom:1px solid var(--border);background:var(--files-toolbar-background);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:0 14px 0 20px;display:grid}.files-back{display:none}.files-reader-heading{min-width:0}.files-reader-heading h3,.files-reader-heading p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.files-reader-heading h3{margin:0;font-size:14px;font-weight:700}.files-reader-heading p{color:var(--text-2);margin:4px 0 0;font-size:11px}.files-reader-actions{align-items:center;gap:3px;display:flex}.files-icon-btn{width:34px;height:34px;color:var(--text-2);background:0 0;border:1px solid #0000;border-radius:8px;flex:0 0 34px;place-items:center;padding:0;display:grid}.files-icon-btn:hover{border-color:var(--border);background:var(--surface-2);color:var(--green)}.files-delete-btn:hover{color:#a63d35;background:#fbe9e7}.files-preview{--files-outline-width:clamp(240px, 20vw, 292px);background:#f2f4f5;flex:1;grid-template-columns:0 minmax(0,1fr);min-width:0;min-height:0;transition:grid-template-columns .18s;display:grid;position:relative;overflow:hidden}.files-preview.has-outline:not(.is-outline-collapsed){grid-template-columns:var(--files-outline-width) minmax(0, 1fr)}.files-outline{border-right:1px solid var(--border);opacity:1;background:#fbfaf7;flex-direction:column;min-width:0;min-height:0;transition:opacity .15s,transform .18s;display:flex;overflow:hidden;transform:translate(0)}.files-outline[hidden]{display:none}.files-preview.is-outline-collapsed .files-outline{opacity:0;pointer-events:none;transform:translate(-100%)}.files-outline-header{border-bottom:1px solid var(--border);min-height:52px;color:var(--text);flex:0 0 52px;justify-content:space-between;align-items:center;gap:12px;padding:0 10px 0 18px;font-size:13px;font-weight:700;display:flex}.files-outline-close{width:34px;height:34px;color:var(--text-2);background:0 0;border:1px solid #0000;border-radius:7px;place-items:center;padding:0;display:grid}.files-outline-close:hover{border-color:var(--border);background:var(--green-light);color:var(--green)}.files-outline-open{display:none}.files-outline-open.is-visible:not([hidden]){display:grid}.files-outline-list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;min-height:0;padding:10px 8px 18px;overflow-y:auto}.files-outline-item{width:100%;min-height:36px;color:var(--text-2);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:8px 10px;font-size:12px;line-height:1.5;display:block;overflow:hidden}.files-outline-item.is-level-2{padding-left:24px}.files-outline-item.is-level-3{padding-left:38px;font-size:11px}.files-outline-item:hover{color:var(--text);background:#f1f4f2}.files-outline-item.is-active{color:var(--green-text);box-shadow:inset 3px 0 0 var(--green);background:#edf2ef;font-weight:650}.files-preview-mount{width:100%;min-width:0;height:100%;min-height:0}#files-preview-mount .file-render{width:100%;height:100%;min-height:0;overflow:hidden}#files-preview-mount .markdown-viewer{overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;background:#fff;width:100%;height:100%;min-height:0;padding:0;overflow:hidden auto}#files-preview-mount .markdown-body{--bgColor-default:#fff;--bgColor-muted:#f7f8f6;--bgColor-neutral-muted:#e9eeeb;--borderColor-default:#dce2de;--borderColor-muted:#e2e6e3;--fgColor-default:#302d2a;--fgColor-muted:#716a64;--fgColor-accent:var(--green-text);width:100%;max-width:1020px;min-height:100%;color:var(--fgColor-default);letter-spacing:0;box-shadow:none;box-sizing:border-box;overflow-wrap:break-word;background:#fff;border:0;border-radius:0;margin:0 auto;padding:52px clamp(44px,5.5vw,76px) 80px;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-size:16px;line-height:1.82}#files-preview-mount .markdown-body :is(h1,h2,h3,h4){color:#262421;letter-spacing:0;scroll-margin-top:24px}#files-preview-mount .markdown-body h1{border-bottom-color:#d8dfda;margin:0 0 28px;padding-bottom:14px;font-size:30px;line-height:1.32}#files-preview-mount .markdown-body h2{border-bottom-color:#dce2de;margin-top:44px;margin-bottom:18px;padding-bottom:10px;font-size:23px;line-height:1.42}#files-preview-mount .markdown-body h3{margin-top:32px;margin-bottom:12px;font-size:18px;line-height:1.5}#files-preview-mount .markdown-body h4{margin-top:26px;margin-bottom:10px;font-size:16px;line-height:1.55}#files-preview-mount .markdown-body p,#files-preview-mount .markdown-body ul,#files-preview-mount .markdown-body ol,#files-preview-mount .markdown-body blockquote,#files-preview-mount .markdown-body table,#files-preview-mount .markdown-body pre{margin-bottom:18px}#files-preview-mount .markdown-body li+li{margin-top:5px}#files-preview-mount .markdown-body strong{color:#282622;font-weight:700}#files-preview-mount .markdown-body a{color:var(--green-text);text-underline-offset:3px;-webkit-text-decoration:underline #3760504d;text-decoration:underline #3760504d}#files-preview-mount .markdown-body blockquote{border-left:3px solid var(--green-mid);color:#5f5953;background:#f5f8f6;padding:12px 18px}#files-preview-mount .markdown-body blockquote>:last-child{margin-bottom:0}#files-preview-mount .markdown-body code{background:#edf1ee;border-radius:4px}#files-preview-mount .markdown-body pre{background:#f6f8f7;border:1px solid #e0e5e1;border-radius:7px}#files-preview-mount .markdown-body hr{background:#dce2de;border:0;height:1px;margin:36px 0}@media (width<=1000px){.files-preview,.files-preview.has-outline:not(.is-outline-collapsed){grid-template-columns:minmax(0,1fr)}.files-outline{z-index:5;border-right-color:var(--border);width:min(320px,100% - 52px);position:absolute;inset:0 auto 0 0;box-shadow:14px 0 36px #2d292624}.files-preview.is-outline-collapsed .files-outline{box-shadow:none}}#files-preview-mount .xmind-native-viewer{background:#f1f5f7;width:100%;height:100%;position:relative;overflow:hidden}#files-preview-mount .xmind-map{width:100%;height:100%}#files-preview-mount .xmind-map .map-container{background-color:#f1f5f7;background-image:linear-gradient(#354c410b 1px,#0000 1px),linear-gradient(90deg,#354c410b 1px,#0000 1px);background-size:28px 28px}#files-preview-mount .xmind-map me-tpc{color:#26332d;cursor:default;text-align:center;background-color:#fff;border:1px solid #34504329;border-radius:8px;place-items:center;gap:6px;min-width:144px;min-height:46px;padding:10px 16px;font-size:14px;font-weight:650;line-height:1.45;display:grid;box-shadow:0 8px 20px #1f2d2617}#files-preview-mount .xmind-map me-tpc>.text{text-align:center;width:100%}#files-preview-mount .xmind-map me-root me-tpc{color:#274b3a;background-color:#eef8f2;border-width:1px;min-width:164px;min-height:52px;padding:12px 18px;font-size:15px;box-shadow:0 10px 24px #33674d1f}#files-preview-mount .xmind-map .tags{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}#files-preview-mount .xmind-map .tags span{color:#35634d;background:#e6f1eb;border-radius:999px;margin:0}#files-preview-mount .xmind-map me-epd{opacity:1;background-color:#fff;border:1px solid #34504338;border-radius:50%;width:20px;height:20px;box-shadow:0 3px 10px #1f2d261f}#files-preview-mount .xmind-map me-epd.minus{opacity:1}#files-preview-mount .xmind-map me-epd:focus-visible{outline-offset:2px;outline:3px solid #4a7c654d}#files-preview-mount .xmind-panel-toggle,#files-preview-mount .xmind-zoom-controls{z-index:8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border:1px solid #2d3e361f;border-radius:8px;height:42px;position:absolute;top:12px;box-shadow:0 8px 24px #1f2d261f}#files-preview-mount .xmind-panel-toggle{color:var(--text);font:inherit;align-items:center;gap:7px;padding:0 12px;font-size:12px;font-weight:700;transition:opacity .16s,visibility .16s,background .16s;display:inline-flex;left:12px}#files-preview-mount .xmind-panel-toggle:hover{color:var(--green);background:#fff}#files-preview-mount .xmind-zoom-controls{align-items:center;gap:2px;padding:4px;display:flex;right:12px}#files-preview-mount .xmind-zoom-controls button{color:#34453c;background:0 0;border:0;border-radius:6px;place-items:center;width:32px;height:32px;padding:0;font-size:14px;font-weight:800;display:grid}#files-preview-mount .xmind-zoom-controls button:hover:not(:disabled){color:var(--green);background:#e8f1ec}#files-preview-mount .xmind-zoom-controls button:disabled{opacity:.35;cursor:default}#files-preview-mount .xmind-zoom-label{width:46px;color:var(--text-2);text-align:center;font-size:11px;font-weight:750}#files-preview-mount .xmind-floating-panel{z-index:10;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;visibility:hidden;pointer-events:none;background:#fffffff5;border:1px solid #2d3e3624;border-radius:8px;flex-direction:column;width:clamp(270px,30vw,320px);transition:opacity .18s,visibility .18s,transform .18s;display:flex;position:absolute;inset:12px auto 12px 12px;overflow:hidden;transform:translate(-10px);box-shadow:0 18px 48px #1f2d262e}#files-preview-mount .xmind-native-viewer.is-panel-open .xmind-floating-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(0)}#files-preview-mount .xmind-native-viewer.is-panel-open .xmind-panel-toggle{opacity:0;visibility:hidden;pointer-events:none}#files-preview-mount .xmind-floating-panel-head{border-bottom:1px solid #2d3e361a;align-items:center;gap:10px;min-height:62px;padding:10px 10px 10px 14px;display:flex}#files-preview-mount .xmind-native-title{flex:1;min-width:0}#files-preview-mount .xmind-native-title span,#files-preview-mount .xmind-native-title strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}#files-preview-mount .xmind-native-title span{color:var(--green);font-size:10px;font-weight:800}#files-preview-mount .xmind-native-title strong{margin-top:3px;font-size:14px;font-weight:700}#files-preview-mount .xmind-panel-close{width:34px;height:34px;color:var(--text-2);background:0 0;border:0;border-radius:7px;flex:0 0 34px;place-items:center;padding:0;display:grid}#files-preview-mount .xmind-panel-close:hover{background:var(--surface-2);color:var(--text)}#files-preview-mount .xmind-native-tabs-section{border-bottom:1px solid #2d3e361a;padding:8px 10px 10px}#files-preview-mount .xmind-native-tabs-section[hidden]{display:none}#files-preview-mount .xmind-native-tabs-label{color:var(--text-2);margin:0 2px 6px;font-size:10px;font-weight:700;display:block}#files-preview-mount .xmind-native-tabs{flex:none;align-items:center;gap:6px;min-height:30px;display:flex;overflow-x:auto}#files-preview-mount .xmind-native-tabs button{border:1px solid var(--border);max-width:220px;min-height:30px;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;background:#fff;border-radius:999px;flex:none;padding:0 11px;font-size:11px;font-weight:700;overflow:hidden}#files-preview-mount .xmind-native-tabs button.is-active{background:var(--green-light);color:var(--green-text);border-color:#4a7c6552}#files-preview-mount .xmind-native-stats{border-bottom:1px solid #2d3e361a;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:10px;display:grid}#files-preview-mount .xmind-native-stats div{background:#fbfcfb;border:1px solid #2d3e3614;border-radius:7px;min-width:0;padding:7px 8px}#files-preview-mount .xmind-native-stats span,#files-preview-mount .xmind-native-stats strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}#files-preview-mount .xmind-native-stats span{color:var(--text-2);font-size:10px}#files-preview-mount .xmind-native-stats strong{color:var(--text);margin-top:2px;font-size:13px}#files-preview-mount .xmind-native-outline{flex:1;min-height:0;padding:8px;overflow-y:auto}#files-preview-mount .xmind-native-outline button{width:100%;min-height:30px;color:var(--text);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:6px;font-size:12px;font-weight:600;display:block;overflow:hidden}#files-preview-mount .xmind-native-outline button:hover{background:var(--green-light);color:var(--green-text)}#files-preview-mount .xmind-native-status{z-index:12;color:var(--text-2);background:#f1f5f7;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}#files-preview-mount .xmind-native-status[hidden]{display:none}@media (width<=600px){#files-preview-mount .markdown-body{padding:30px 20px 52px;font-size:15px;line-height:1.78}#files-preview-mount .markdown-body h1{margin-bottom:24px;font-size:25px}#files-preview-mount .markdown-body h2{margin-top:36px;font-size:21px}#files-preview-mount .markdown-body h3{margin-top:28px;font-size:17px}#files-preview-mount .xmind-floating-panel{width:auto;right:12px}#files-preview-mount .xmind-map me-tpc{min-width:128px}}@media (prefers-reduced-motion:reduce){.files-folder-chevron svg,.files-preview,.files-outline,#files-preview-mount .xmind-panel-toggle,#files-preview-mount .xmind-floating-panel{transition:none}}.files-preview-status,.files-reader-empty{height:100%;color:var(--text-2);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:30px;display:flex}.files-preview-status{z-index:4;background:#f2f4f5f0;position:absolute;inset:0}.files-preview-status.is-error{color:#a63d35}.files-reader-empty{background:var(--surface);position:absolute;inset:0}.files-reader-empty h3{margin:2px 0 0;font-size:16px}.files-reader-empty p{color:var(--text-2);margin:0;font-size:13px}.modal-dialog.files-folder-dialog{max-width:420px}.files-folder-dialog .modal-header{padding:20px 22px 14px}.files-folder-dialog .modal-body{padding:20px 22px 22px}.files-folder-dialog .form-field{margin-bottom:0}.files-folder-dialog .modal-footer{padding-top:18px}.modal-body.files-move-body{padding:10px}.files-move-list{max-height:min(420px,60vh);overflow-y:auto}.files-move-target{width:100%;min-height:58px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:8px 10px;display:grid}.files-move-target:hover:not(:disabled){background:var(--green-light)}.files-move-target.is-current{opacity:1;background:var(--surface-2)}.files-move-target-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:650;overflow:hidden}.files-move-target-state{color:var(--text-2);font-size:11px}.files-move-target:not(.is-current) .files-move-target-state{color:var(--green-text)}.files-move-empty{color:var(--text-2);text-align:center;margin:8px 12px 12px;font-size:12px;line-height:1.6}@media (width<=720px){#view-files{--files-toolbar-height:58px;--files-control-height:34px}.files-workspace{height:calc(100dvh - var(--header-h) - 52px - env(safe-area-inset-bottom));min-height:0;display:block}.files-browser{border-right:0;height:100%}.files-browser-toggle{display:none}.files-reader{height:100%;display:none}.files-workspace.is-reading .files-browser{display:none}.files-workspace.is-reading .files-reader{display:flex}#view-files.is-reading .files-workspace{height:calc(100dvh - var(--header-h) - 52px - env(safe-area-inset-bottom));min-height:0}.files-reader-toolbar{grid-template-columns:auto minmax(0,1fr) auto;gap:7px;padding:0 8px}.files-back{padding:7px 9px;display:inline-flex}.files-reader-heading p{display:none}.files-reader-actions{gap:1px}.files-icon-btn{flex-basis:34px;width:34px;height:34px}}@media (width<=400px){.files-back{width:34px;padding:0;font-size:0}}.bottom-sheet-overlay{z-index:200;opacity:0;pointer-events:none;background:#00000073;align-items:flex-end;transition:opacity .2s;display:flex;position:fixed;inset:0}.bottom-sheet-overlay.open{opacity:1;pointer-events:auto}.bottom-sheet{background:var(--bg);border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;width:100%;max-height:80vh;transition:transform .26s cubic-bezier(.32,.72,0,1);display:flex;transform:translateY(100%)}.bottom-sheet-overlay.open .bottom-sheet{transform:translateY(0)}.bottom-sheet-head{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:18px 16px;display:flex}.bottom-sheet-title{text-align:center;color:var(--text);flex:1;margin:0;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:16px;font-weight:700}.bottom-sheet-close{width:28px;height:28px;color:var(--text-2);background:0 0;border:none;border-radius:50%;flex-shrink:0;font-size:18px;line-height:1}.bottom-sheet-close:hover{background:var(--surface-2);color:var(--text)}.bottom-sheet-head-spacer{flex-shrink:0;width:28px;height:28px}.bottom-sheet-body{padding:12px 20px 28px;overflow-y:auto}.course-library{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0 0 24px;padding:18px 20px 16px}.course-library-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.course-library-header h3{margin:0 0 4px;font-size:16px;font-weight:700}.course-library-header p{color:var(--text-2);margin:0;font-size:13px}.course-library-list{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;display:grid}.course-library-empty{grid-column:1/-1;margin:2px 0}.course-library-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);align-items:stretch;min-width:0;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.course-library-item:hover,.course-library-item.is-active{border-color:var(--border-focus);background:var(--green-light);box-shadow:var(--shadow)}.course-library-main{min-width:0;color:var(--text);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:11px 10px 11px 12px;display:flex}.course-library-icon{background:var(--surface);width:30px;height:30px;color:var(--green);border-radius:8px;flex-shrink:0;place-items:center;font-size:20px;line-height:1;display:grid}.course-library-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.course-library-copy strong,.course-library-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.course-library-copy strong{font-size:14px;font-weight:650}.course-library-copy small{color:var(--text-2);font-size:12px}.course-library-open{color:var(--green-text);opacity:0;margin-left:auto;padding-left:8px;font-size:12px;transition:opacity .15s}.course-library-item:hover .course-library-open,.course-library-item.is-active .course-library-open{opacity:1}.course-library-remove{border-radius:0 var(--radius-sm) var(--radius-sm) 0;width:32px;color:var(--text-2);background:0 0;border:0;border-left:1px solid #0000;flex-shrink:0;font-size:18px;line-height:1}.course-library-remove:hover{border-left-color:var(--border);color:#b34a3d;background:#ffffff8c}.courses-layout{height:calc(100vh - var(--header-h) - 120px);grid-template-columns:360px 1fr;gap:24px;transition:grid-template-columns .3s;display:grid}.courses-layout.sidebar-collapsed{grid-template-columns:0 1fr}.course-browser{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;transition:opacity .3s;display:flex;overflow:hidden}.courses-layout.sidebar-collapsed .course-browser{opacity:0;pointer-events:none;overflow:hidden}.course-browser-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.course-browser-header h3{margin:0;font-size:16px;font-weight:600}.course-list{flex:1;padding:8px;overflow-y:auto}.course-item{border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:12px 14px;transition:background .15s;display:flex}.course-item:hover{background:var(--surface-2)}.course-item[data-status=learning]{background:var(--amber-light)}.course-item[data-status=completed]{opacity:.55}.course-item-icon{color:var(--text-2);flex-shrink:0;font-size:14px}.course-item[data-status=learning] .course-item-icon{color:var(--amber-mid)}.course-item[data-status=completed] .course-item-icon{color:var(--green-mid)}.course-item-title{color:var(--text);flex:1;font-size:14px;line-height:1.4}.course-item.is-active{box-shadow:inset 3px 0 0 var(--green)}.course-item.is-active .course-item-title{color:var(--green-text);font-weight:600}.course-player{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}.course-player-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.course-back{align-items:center;gap:4px;display:inline-flex}.course-content{flex-direction:column;flex:1;padding:28px 32px;display:flex;overflow:hidden}.course-header{margin-bottom:20px}.course-header h3{align-items:center;gap:8px;margin:0;font-size:20px;font-weight:700;line-height:1.4;display:flex}.course-status-badge{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:600;display:inline-flex}.status-learning{background:var(--green-light);color:var(--green)}.status-completed{background:var(--surface-2);color:var(--green-mid)}.course-meta{display:none}.course-body{flex-direction:column;flex:1;gap:20px;min-height:0;display:flex}.course-controls{flex-direction:column;flex:none;gap:16px;display:flex}.course-meta{gap:12px;margin-bottom:4px;display:flex}.course-meta-item{background:var(--surface-2);color:var(--text-2);border-radius:6px;padding:4px 12px;font-size:13px}.course-audio-section{margin:0}#course-audio{border-radius:var(--radius-sm);background:var(--surface-2);width:100%;height:48px}.course-pdf-viewer{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.course-controls-actions{gap:12px;display:flex}.course-controls-actions button{flex:1}.course-pdf-section{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}#course-pdf-frame{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;flex:1;width:100%}.course-notes-btn-wrap{display:none}.course-notes-modal-body textarea{background:var(--surface-2);border:1px solid var(--border);resize:vertical;border-radius:8px;width:100%;margin-bottom:16px;padding:12px;font-size:14px;line-height:1.6}.course-notes-modal-body textarea:focus{border-color:var(--border-focus);outline:none}.course-notes-section{background:var(--surface-2);border-radius:var(--radius-sm);margin-bottom:24px;padding:20px;display:none}.course-notes-modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2d292666;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.course-notes-modal-overlay[aria-hidden=false]{display:flex}.course-notes-modal{background:var(--surface);border-radius:var(--radius);width:90%;max-width:600px;max-height:80vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.course-notes-modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.course-notes-modal-title{margin:0;font-size:18px;font-weight:700}.course-notes-modal-close{width:32px;height:32px;color:var(--text-2);background:0 0;border:none;border-radius:8px;place-items:center;font-size:24px;line-height:1;transition:background .15s;display:grid}.course-notes-modal-close:hover{background:var(--surface-2)}.course-notes-modal-body{flex:1;padding:24px;overflow-y:auto}.course-notes-label{color:var(--text);margin-bottom:12px;font-size:14px;font-weight:600;display:block}#course-notes{background:var(--surface);border:1px solid var(--border);resize:vertical;border-radius:8px;width:100%;padding:12px;font-size:14px;line-height:1.6}#course-notes:focus{border-color:var(--border-focus);outline:none}.course-notes-actions{justify-content:flex-end;gap:12px;margin-top:12px;display:flex}.course-pager{justify-content:space-between;gap:12px;margin-top:auto;padding-top:16px;display:flex}.course-pager button{flex:1}.course-empty-state{text-align:center;color:var(--text-2);grid-column:span 2;padding:40px 20px}@media (width<=768px){.course-library{padding:16px}.course-library-list{scroll-snap-type:x proximity;padding-bottom:2px;display:flex;overflow-x:auto}.course-library-item{scroll-snap-align:start;flex:0 0 min(82vw,300px)}.courses-layout{height:calc(100vh - var(--header-h) - 80px);grid-template-columns:1fr}.courses-layout.sidebar-collapsed{grid-template-columns:1fr}.course-browser.hidden,.course-player{display:none}.course-player.active{display:flex}.course-back{display:inline-flex}.course-content{padding:20px 16px}.course-header h3{font-size:18px}.course-body{flex-direction:column;gap:16px}.course-controls{flex:none}.course-controls-actions{flex-direction:column}.course-notes-modal{width:95%;max-height:90vh}}.typing-container{max-width:900px;margin:0 auto;padding:32px 24px}.typing-actions{align-items:center;gap:8px;display:flex}.text-selection-area{display:none}.text-selection-area.active{display:block}.typing-practice-area{display:none}.typing-practice-area.active{display:block}.typing-stats{margin-bottom:32px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:32px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:20px}.stat-label{color:var(--text-2);margin-bottom:8px;font-size:13px}.stat-value{color:var(--green);font-size:28px;font-weight:600}.stat-unit{color:var(--text-2);font-size:14px;font-weight:400}.history-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:32px;padding:24px}.chart-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.chart-title{margin:0;font-size:16px;font-weight:600}.chart-subtitle{color:var(--text-2);font-size:13px}.chart-container{align-items:stretch;gap:12px;display:flex}.chart-y-axis{color:var(--text-2);text-align:right;flex-direction:column;justify-content:space-between;min-width:32px;padding:10px 0;font-size:12px;display:flex}.chart-content{flex:1;min-height:120px;position:relative}.chart-svg{width:100%;height:120px}.chart-bars{align-items:flex-end;gap:4px;height:120px;display:flex}.chart-bar{background:var(--green);border-radius:4px 4px 0 0;flex:1;min-height:4px;transition:background .2s}.chart-bar:hover{background:var(--green-mid)}.category-filter{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.category-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:999px;padding:8px 16px;font-size:14px;transition:all .2s}.category-btn:hover{background:var(--surface-2);border-color:var(--border-focus)}.category-btn.active{background:var(--green);color:#fff;border-color:var(--green)}.text-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:24px;display:grid}.text-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:12px;padding:20px;display:flex}.text-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.text-card-title{flex:1;margin:0;font-size:16px;font-weight:600}.text-card-tags{flex-wrap:wrap;gap:6px;display:flex}.text-tag{background:var(--surface-2);color:var(--text-2);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px}.text-tag--简单{background:var(--green-light);color:var(--green-text)}.text-tag--中等{background:var(--amber-light);color:#9d7535}.text-tag--困难{color:#c45a5a;background:#ffe5e5}.text-card-preview{color:var(--text-2);margin:0;font-size:14px;line-height:1.6}.show-more-card{border:2px dashed var(--border);background:0 0;justify-content:center;align-items:center;padding:32px 20px;transition:all .2s;display:flex}.show-more-card:hover{border-color:var(--primary);background:var(--surface-2)}.show-more-btn{color:var(--primary);font-size:14px;font-weight:500;transition:all .2s}.show-more-btn:hover{transform:translateY(-2px)}.practice-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.practice-header h3{margin:0;font-size:20px}.practice-progress{color:var(--text-2);font-family:SF Mono,Monaco,monospace;font-size:14px}.practice-text-display{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);letter-spacing:.5px;white-space:pre-wrap;scroll-behavior:smooth;max-height:280px;margin-bottom:24px;padding:32px;font-size:24px;line-height:1.8;overflow-y:auto}.char-correct{color:var(--green)}.char-error{color:#c45a5a;background:#ffe5e5;border-radius:2px}.char-current{background:var(--green-light);border-radius:2px;animation:1s infinite blink}.char-pending{color:var(--text-2)}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:.3}}.typing-input{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);resize:none;letter-spacing:.5px;width:100%;max-height:280px;padding:32px;font-family:inherit;font-size:24px;line-height:1.8;transition:border-color .2s;overflow-y:auto}.typing-input:focus{border-color:var(--border-focus)}.practice-hint{text-align:center;color:var(--text-2);margin-top:12px;margin-bottom:0;font-size:13px}.app-body:has(.typing-practice-area.active){padding-bottom:24px}.practice-result{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:400;background:#2d292680;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.practice-result.active{display:flex}.result-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:480px;padding:32px;animation:.3s cubic-bezier(.32,.72,0,1) slideUp}.result-title{text-align:center;color:var(--green);margin:0 0 24px;font-size:24px;font-weight:600}.result-stats{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.result-stat{text-align:center;background:var(--bg);border-radius:var(--radius-sm);padding:16px}.result-stat-label{color:var(--text-2);margin-bottom:8px;font-size:13px;display:block}.result-stat-value{color:var(--green);font-size:28px;font-weight:600;display:block}.result-stat-unit{color:var(--text-2);font-size:14px;font-weight:400}.result-note{text-align:center;color:var(--text-2);margin:-12px 0 20px;font-size:12px}.session-summary{background:var(--green-light);border-radius:var(--radius-sm);margin-bottom:24px;padding:16px}.session-summary-title{color:var(--green-text);margin:0 0 8px;font-size:13px;font-weight:600}.session-stats{color:var(--green-text);flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.result-actions{justify-content:center;gap:12px;display:flex}.result-actions .btn-primary,.result-actions .btn-ghost{align-items:center;gap:8px;display:flex}.key-hint{background:var(--surface-2);color:var(--text-2);border-radius:4px;padding:2px 6px;font-family:SF Mono,Monaco,monospace;font-size:11px;font-weight:600;display:inline-block}.history-list{flex-direction:column;gap:12px;max-height:60vh;padding:20px;display:flex;overflow-y:auto}.history-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px}.history-item-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.history-item-header strong{font-size:15px}.history-item-date{color:var(--text-2);font-size:13px}.history-item-stats{color:var(--text-2);flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.empty-state{text-align:center;color:var(--text-2);padding:40px 20px;font-size:14px}@media (width<=768px){.typing-container{padding:20px 16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.text-list{grid-template-columns:1fr}.practice-text-display{padding:24px;font-size:20px}.practice-header{flex-direction:column;align-items:flex-start;gap:8px}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:300;opacity:0;pointer-events:none;background:#2d292680;justify-content:center;align-items:center;padding:20px;transition:opacity .2s;display:flex;position:fixed;inset:0}.modal-overlay.open{opacity:1;pointer-events:auto}.modal-dialog{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:520px;max-height:90vh;transition:transform .2s cubic-bezier(.32,.72,0,1);display:flex;transform:scale(.95)}.modal-dialog-large{max-width:720px}.modal-overlay.open .modal-dialog{transform:scale(1)}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:24px 24px 16px;display:flex}.modal-title{margin:0;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:18px;font-weight:600}.modal-close{width:32px;height:32px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:24px;line-height:1;transition:background .2s;display:flex}.modal-close:hover{background:var(--surface-2)}.modal-body{flex:1;padding:24px;overflow-y:auto}.form-field{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.form-label{color:var(--text);font-size:14px;font-weight:500}.form-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:12px;font-size:15px;transition:border-color .2s}.form-input:focus{border-color:var(--border-focus);outline:none}.form-input::placeholder{color:var(--text-2);opacity:.6}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;margin-top:8px;padding-top:20px;display:flex}@media (width<=768px){.modal-overlay{padding:16px}.modal-dialog{max-width:100%}.modal-header{padding:20px 20px 12px}.modal-body{padding:20px}.form-row{grid-template-columns:1fr}}.vision-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.vision-subtitle{color:var(--text-2);margin:8px 0 0;font-size:14px}.vision-ghost-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);white-space:nowrap;padding:10px 16px;font-size:13px;font-weight:600}.vision-ghost-btn:hover{border-color:var(--border-focus)}.vision-safety{background:var(--amber-light);border:1px solid var(--amber-mid);border-radius:var(--radius);margin:20px 0;padding:16px 20px}.vision-safety-check{cursor:pointer;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;display:flex}.vision-safety-check input{cursor:pointer;flex:none;width:18px;height:18px;margin:1px 0 0}.vision-safety-detail{margin-top:10px}.vision-safety-detail summary{color:var(--text-2);cursor:pointer;font-size:13px}.vision-safety-list{color:var(--text-2);margin:8px 0 0;padding-left:20px;font-size:13px;line-height:1.7}.vision-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.vision-stat{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.vision-stat span{color:var(--text-2);margin-bottom:4px;font-size:12px;display:block}.vision-stat strong{color:var(--green);font-size:28px;font-weight:700;display:block}.vision-stat small{color:var(--text-2);font-size:11px}.vision-tabs{background:var(--surface-2);border-radius:var(--radius);gap:8px;margin-bottom:24px;padding:4px;display:flex}.vision-tab-btn{border-radius:calc(var(--radius) - 4px);color:var(--text-2);background:0 0;border:none;flex:1;padding:12px;font-weight:600;transition:background .15s,color .15s}.vision-tab-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.vision-panels{flex-direction:column;gap:24px;display:flex}.vision-tab-content{display:none}.vision-tab-content.active{display:block}.vision-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.vision-card-title{margin:0 0 8px;font-size:16px;font-weight:600}.vision-card-desc{color:var(--text-2);margin:0 0 12px;font-size:13px;line-height:1.6}.vision-split{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:16px;display:grid}.vision-stage{text-align:center}.vision-stage-head{text-align:left;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.vision-stage-head .vision-card-desc{margin:0}.vision-side-panel{flex-direction:column;gap:20px;display:flex}.vision-calibration{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:20px}.vision-calib-badge{color:var(--text-2);margin-left:10px;font-size:12px;font-weight:400}.vision-calib-badge .warn{color:#c2410c}.vision-step+.vision-step{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.vision-step-title{align-items:center;gap:8px;margin:0 0 10px;font-size:14px;font-weight:600;display:flex}.vision-step-foldable>summary{cursor:pointer;margin:0;list-style:none}.vision-step-foldable>summary::-webkit-details-marker{display:none}.vision-step-foldable>summary:after{content:"▸";color:var(--text-2);order:-1;font-size:11px;transition:transform .12s}.vision-step-foldable[open]>summary:after{transform:rotate(90deg)}.vision-step-foldable>summary .vision-metric-strip{margin-left:auto}.vision-step-foldable[open]>summary{margin-bottom:12px}.vision-step-title i{background:var(--green,#2f6f5e);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-style:normal;font-weight:700;display:inline-flex}.vision-step-title small{color:var(--text-2);font-size:12px;font-weight:400}.vision-step-body{padding-left:28px}.vision-ruler-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=860px){.vision-ruler-grid{grid-template-columns:minmax(0,1fr)}}.vision-glasses-row{flex-wrap:wrap;gap:12px;display:flex}.vision-glasses-row label{flex-direction:column;flex:160px;gap:4px;font-size:13px;font-weight:600;display:flex}.vision-glasses-row select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:6px 8px;font-weight:400}.vision-swatch-check{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.vision-swatch-hint{max-width:46em;color:var(--text-2);flex:260px;margin:0;font-size:12px;line-height:1.7}.vision-swatch-hint b{color:var(--text);font-weight:600}.vision-color-test{border-radius:var(--radius-sm);background:#f7faf9;flex:none;gap:8px;padding:10px;display:flex}.vision-color-chip{border-radius:var(--radius-sm);color:#f7faf9;text-align:center;width:84px;padding:16px 0;font-size:15px;font-weight:700}.vision-red-chip{background:#f70000}.vision-cyan-chip{background:#00faf9}.vision-confirmation{gap:16px;margin-bottom:12px;display:flex}.vision-confirmation label{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.vision-confirmation input[type=checkbox]{cursor:pointer;width:18px;height:18px}.vision-advanced{margin-top:12px;font-size:13px}.vision-advanced summary{color:var(--text-2);cursor:pointer}.vision-ruler-wrap{background:var(--surface-2);border-radius:var(--radius-sm);text-align:center;padding:12px;overflow-x:auto}.vision-ruler-card{border:2px solid var(--text);flex:none;margin-bottom:12px;padding:6px 12px;font-size:13px;font-weight:700;display:inline-block}@media (width<=560px){.vision-step-body{padding-left:0}.vision-ruler-wrap{padding:12px 0}}.vision-form-grid{text-align:left;grid-template-columns:2fr 1fr;gap:12px;display:grid}.vision-form-grid label{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.vision-form-grid input,.vision-form-grid select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:6px 8px;font-weight:400}.vision-form-grid input[type=range]{background:0 0;border:none;padding:0}.vision-metric-strip{color:var(--text-2);font-variant-numeric:tabular-nums;margin:0 0 0 8px;font-size:12px}.vision-preview canvas,.vision-training-area canvas{background:#f7faf9;width:100%;display:block}.vision-preview canvas{border-radius:var(--radius-sm);max-width:600px;margin:0 auto}.vision-training-area canvas{border-radius:var(--radius);max-width:800px;margin:0 auto 20px;box-shadow:0 2px 8px #2d292614}.vision-controls{max-width:500px;margin:0 auto}.vision-readout-row{background:var(--surface-2);border-radius:var(--radius-sm);text-align:left;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:16px;display:flex}.vision-delta-readout span{color:var(--text-2);margin-bottom:2px;font-size:11px;display:block}.vision-delta-readout strong{color:var(--green);font-size:28px;font-weight:700;line-height:1;display:block}.vision-delta-readout small{color:var(--text-2);margin-top:2px;font-size:12px;display:block}.vision-clock{font-variant-numeric:tabular-nums;font-family:SF Mono,SFMono-Regular,monospace;font-size:20px;font-weight:700}.vision-stage-head .vision-clock{font-size:18px}.vision-inline-message{text-align:left;min-height:20px;margin:0 0 16px}.vision-start-controls{grid-template-columns:2fr 1fr;gap:10px;margin-bottom:16px;display:grid}.vision-start-controls .btn-primary{padding:14px;font-size:15px}.vision-protocol-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px}.vision-protocol-btn span{color:var(--text-2);font-size:10px;display:block}.vision-protocol-btn strong{font-size:12px;font-weight:600;display:block}.btn-primary.stop-action{background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.vision-symptom-field{text-align:left;margin-bottom:16px}.vision-symptom-field>span{margin-bottom:8px;font-size:12px;font-weight:600;display:block}.vision-symptom-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.vision-response-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.vision-btn-clear,.vision-btn-double,.vision-btn-uneasy{border-radius:var(--radius-sm);color:#fff;border:none;padding:14px;font-weight:600}.vision-btn-clear{background:var(--green)}.vision-btn-double{background:#d98324}.vision-btn-uneasy{background:#c4483c}.vision-btn-clear:hover{background:var(--green-text)}.vision-btn-double:hover{background:#c0731c}.vision-btn-uneasy:hover{background:#a93a30}.vision-session-summary{background:var(--surface-2);border-radius:var(--radius-sm);text-align:center;grid-template-columns:repeat(3,1fr);gap:12px;padding:12px;font-size:13px;display:grid}.vision-session-summary span{color:var(--text-2);font-size:11px;display:block}.vision-session-summary strong{margin-top:4px;font-weight:700;display:block}#view-vision:not(.vision-session-active) .vision-only-training,#view-vision.vision-session-active .vision-only-idle{display:none}.vision-ready-steps{counter-reset:vision-step;background:var(--surface-2);border-radius:var(--radius-sm);color:var(--text-2);flex-wrap:wrap;justify-content:center;gap:20px;margin:0 0 16px;padding:12px 16px;font-size:13px;list-style:none;display:flex}.vision-ready-steps li{counter-increment:vision-step}.vision-ready-steps li:before{content:counter(vision-step);background:var(--surface);width:18px;height:18px;color:var(--green);border-radius:50%;justify-content:center;align-items:center;margin-right:6px;font-size:11px;font-weight:700;display:inline-flex}.vision-ready-last{color:var(--text-2);text-align:center;margin:0;font-size:12px}.vision-section-summary{cursor:pointer;background:var(--surface-2);border-radius:var(--radius-sm);padding:10px 12px;font-size:14px}.vision-calibration[open] .vision-section-summary{margin-bottom:16px}.vision-nearfar-progress,.vision-freefusion-progress{justify-content:center;gap:32px;margin:20px 0 16px;display:flex}.vision-nearfar-progress span,.vision-freefusion-progress span{color:var(--text-2);font-size:11px;display:block}.vision-nearfar-progress strong,.vision-freefusion-progress strong{margin-top:4px;font-size:18px;font-weight:700;display:block}.vision-nearfar-instruction{margin-bottom:20px}.vision-nearfar-instruction span{color:var(--text-2);letter-spacing:.08em;margin-bottom:4px;font-size:12px;display:block}.vision-nearfar-instruction p{margin:0;font-size:16px;font-weight:600}.vision-nearfar-actions,.vision-freefusion-actions{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;max-width:600px;margin:0 auto;display:grid}.vision-nearfar-actions .btn-primary,.vision-freefusion-actions .btn-primary{padding:14px;font-size:15px}.vision-history-modal{max-width:560px;max-height:80vh;overflow-y:auto}.vision-history-chart{background:var(--surface-2);border-radius:var(--radius-sm);align-items:flex-end;gap:6px;height:120px;margin-bottom:16px;padding:12px;display:flex}.vision-history-chart .bar{background:var(--green-mid);border-radius:4px 4px 0 0;flex:1;min-height:10px;transition:background .15s}.vision-history-chart .bar:hover{background:var(--green)}.vision-history-chart .empty-state,.vision-record-list .empty-state{color:var(--text-2);margin:auto;font-size:13px}.vision-record-list{flex-direction:column;gap:8px;display:flex}.vision-record-list .record-item{background:var(--surface-2);border-radius:var(--radius-sm);gap:12px;padding:12px;display:flex}.vision-record-list .record-marker{background:var(--green-mid);border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.vision-record-list .record-copy{flex:1;min-width:0}.vision-record-list .record-copy strong{justify-content:space-between;gap:8px;font-size:13px;font-weight:600;display:flex}.vision-record-list .record-time{font-variant-numeric:tabular-nums}.vision-record-list .record-status{color:var(--text-2);font-weight:400}.vision-record-list .record-copy small{color:var(--text-2);margin-top:4px;font-size:12px;line-height:1.5;display:block}.modal-backdrop{z-index:1000;background:#2d292673;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-backdrop[hidden]{display:none}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:480px;box-shadow:var(--shadow-lg);padding:24px}.modal h3{color:var(--text);margin:0 0 8px;font-size:18px;font-weight:700}.modal p{color:var(--text-2);margin:0 0 20px;font-size:14px;line-height:1.6}.modal-title-row{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.modal-title-row h3{margin:0}.vision-close-btn{color:var(--text-2);background:0 0;border:none;font-size:20px;line-height:1}.vision-finish-actions{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.vision-finish-options{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.vision-finish-options summary{cursor:pointer;margin-bottom:16px;font-size:14px;font-weight:600}.vision-finish-options label,.vision-protocol-grid label,.vision-advanced label{flex-direction:column;gap:6px;margin-top:16px;font-size:13px;font-weight:600;display:flex}.vision-protocol-grid{grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px;display:grid}.vision-finish-options select,.vision-protocol-grid select,.vision-protocol-grid input,.vision-advanced textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:8px 12px;font-size:14px;font-weight:400}.vision-action-row{gap:12px;margin-top:16px;display:flex}.vision-focus-bar{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:16px;padding:10px clamp(12px,3vw,28px);display:flex}.vision-focus-meta{text-align:left;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.vision-focus-meta strong{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.vision-focus-meta span{color:var(--text-2);font-size:11px}@media (hover:none),(width<=760px){.vision-focus-meta span{display:none}}.vision-focus-clock{color:var(--text-2);font-size:18px}.vision-focus-exit{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);flex:none;padding:8px 16px;font-size:13px;font-weight:600}.vision-focus-exit:hover{border-color:var(--border-focus)}body.vision-focus{overflow:hidden}body.vision-focus .app-header,body.vision-focus #view-vision .vision-top,body.vision-focus #view-vision .vision-safety,body.vision-focus #view-vision .vision-stats,body.vision-focus #view-vision .vision-tabs,body.vision-focus #view-vision .vision-calibration,body.vision-focus #view-vision .vision-side-panel,body.vision-focus #view-vision .vision-stage-head,body.vision-focus #view-vision .vision-session-summary,body.vision-focus #view-vision .vision-start-controls,body.vision-focus #view-vision .vision-readout-row,body.vision-focus #view-vision .vision-nearfar-progress,body.vision-focus #view-vision .vision-freefusion-progress,body.vision-focus #visionNearFarPhaseLabel,body.vision-focus #visionNearFarMessage,body.vision-focus #view-vision .vision-ff-guide,body.vision-focus #visionStartNearFar,body.vision-focus #visionStartFreeFusion{display:none!important}body.vision-focus #view-vision{z-index:900;background:#f7faf9;flex-direction:column;margin:0;padding:0 0 clamp(16px,3vh,32px);display:flex;position:fixed;inset:0;overflow:hidden}body.vision-focus .vision-panels,body.vision-focus .vision-tab-content.active,body.vision-focus .vision-split{flex:1;gap:0;min-height:0;display:flex}body.vision-focus .vision-split{grid-template-columns:1fr;align-items:stretch}body.vision-focus .vision-card{min-height:0;box-shadow:none;background:0 0;border-radius:0;flex-direction:column;flex:1;justify-content:center;gap:0;padding:0 clamp(12px,3vw,32px);display:flex}body.vision-focus .vision-training-area{flex-direction:column;flex:none;justify-content:center;min-height:0;display:flex}body.vision-focus .vision-training-area canvas{max-width:min(94vw,108vh);box-shadow:none;border-radius:12px;margin:0 auto clamp(12px,2.5vh,24px)}body.vision-focus .vision-nearfar-orbit,body.vision-focus .vision-ff-board{width:min(94vw,1100px);min-height:min(58vh,560px);margin:0 auto}body.vision-focus .vision-controls{width:100%;max-width:560px;margin:0 auto}body.vision-focus .vision-inline-message{text-align:center;margin:0 0 14px;font-size:15px}body.vision-focus .vision-nearfar-instruction{margin-bottom:clamp(12px,2.5vh,20px)}body.vision-focus .vision-nearfar-instruction p{font-size:18px}body.vision-focus .vision-response-grid,body.vision-focus .vision-nearfar-actions,body.vision-focus .vision-freefusion-actions{max-width:560px;margin:0 auto}body.vision-focus .vision-nearfar-actions,body.vision-focus .vision-freefusion-actions{margin-top:clamp(14px,3vh,26px)}body.vision-focus .vision-response-grid{grid-template-columns:repeat(3,1fr);margin-bottom:0}body.vision-focus .vision-btn-clear,body.vision-focus .vision-btn-double,body.vision-focus .vision-btn-uneasy{padding:16px 14px;font-size:15px}.form-message{color:var(--text-2);margin:8px 0 0;font-size:13px;line-height:1.5}.form-message.success{color:var(--green-text)}.form-message.warning{color:#a9601a}@media (width<=860px){.vision-split{grid-template-columns:1fr}}@media (width<=768px){.vision-card{padding:16px}.vision-symptom-grid{grid-template-columns:repeat(2,1fr)}.vision-response-grid,.vision-session-summary,.vision-start-controls,.vision-form-grid,.vision-protocol-grid{grid-template-columns:1fr}.vision-finish-actions{flex-direction:column}.vision-nearfar-progress,.vision-freefusion-progress{gap:20px}}.vision-nearfar-orbit{isolation:isolate;border-radius:var(--radius);perspective:1100px;background:radial-gradient(circle at 50% 42%, #00a9c61a, transparent 36%), radial-gradient(circle at 50% 68%, #d7253f0f, transparent 32%), var(--surface-2);place-items:center;min-height:380px;display:grid;position:relative;overflow:hidden}.vision-nearfar-orbit:before,.vision-nearfar-orbit:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.vision-nearfar-orbit:before{aspect-ratio:1;background:repeating-radial-gradient(circle, transparent 0 11.5%, #143b351c 11.7% 12.1%, transparent 12.3% 23.5%), repeating-conic-gradient(from -8deg, #143b351a 0 1deg, transparent 1deg 24deg);opacity:.78;width:min(98%,700px);-webkit-mask-image:radial-gradient(circle,#0000 0 15%,#000 16% 72%,#0000 73%);mask-image:radial-gradient(circle,#0000 0 15%,#000 16% 72%,#0000 73%)}.vision-nearfar-orbit:after{aspect-ratio:1;background:radial-gradient(circle at 50% 50%, #ffffffd1, #dcebe82e 52%, transparent 72%), conic-gradient(from 45deg, transparent 0 22%, #00a9c61a 22% 28%, transparent 28% 50%, #d7253f14 50% 56%, transparent 56% 100%);opacity:.88;border:1px solid #143b351a;width:min(74%,500px);box-shadow:inset 0 0 80px #00a9c614}.vision-depth-tunnel{z-index:0;transform-style:preserve-3d;transition:transform var(--nearfar-phase-duration,7s) cubic-bezier(.22, .8, .18, 1);place-items:center;display:grid;position:absolute;inset:2%;transform:rotateX(13deg)}.vision-depth-tunnel i{width:var(--ring-size);aspect-ratio:1;border:2px solid #143b351f;border-radius:50%;position:absolute;box-shadow:inset 0 0 28px #00a9c60d,0 18px 45px #143b350d}.vision-depth-tunnel i:first-child{--ring-size:96%}.vision-depth-tunnel i:nth-child(2){--ring-size:72%}.vision-depth-tunnel i:nth-child(3){--ring-size:50%}.vision-depth-tunnel i:nth-child(4){--ring-size:30%}.vision-nearfar-single-target{z-index:2;background:radial-gradient(circle,#ffffff2e 0 18%,#0000 19%),linear-gradient(90deg,#0000 45.4%,#ffffffd6 45.4% 54.6%,#0000 54.6%),linear-gradient(#0000 45.4%,#ffffffd6 45.4% 54.6%,#0000 54.6%),#143b35;border:clamp(12px,2.4vw,24px) solid #dcebe8;border-radius:50%;width:clamp(150px,24vw,260px);height:clamp(150px,24vw,260px);transition:background-color .7s,box-shadow .7s,border-width .7s;position:relative;transform:scale(1);box-shadow:0 30px 86px #143b3538,0 0 0 clamp(34px,5.6vw,78px) #dcebe8bd,0 0 0 clamp(78px,11vw,150px) #dcebe833}.vision-nearfar-single-target:before,.vision-nearfar-single-target:after{content:"";pointer-events:none;border-radius:50%;position:absolute;inset:-28%}.vision-nearfar-single-target:before{border:3px dashed #143b353d;-webkit-mask-image:radial-gradient(circle,#0000 0 42%,#000 43%);mask-image:radial-gradient(circle,#0000 0 42%,#000 43%)}.vision-nearfar-single-target:after{background:radial-gradient(circle,#ffffff57,#ffffff0f 68%,#0000 70%);border:1px solid #ffffff57;inset:28%}.vision-nearfar-orbit.running .vision-nearfar-single-target{box-shadow:0 36px 96px #143b3540,0 0 0 clamp(46px,7.2vw,96px) #dcebe8cc,0 0 0 clamp(104px,14vw,190px) #dcebe838}.vision-nearfar-orbit.far .vision-nearfar-single-target{background:radial-gradient(circle,#ffffff2e 0 18%,#0000 19%),linear-gradient(90deg,#0000 45.4%,#ffffffb3 45.4% 54.6%,#0000 54.6%),linear-gradient(#0000 45.4%,#ffffffb3 45.4% 54.6%,#0000 54.6%),#00a9c6;box-shadow:0 12px 32px #00a9c63d,0 0 0 clamp(18px,3vw,38px) #dcebe8ad,0 0 0 clamp(58px,7vw,118px) #00a9c614}.vision-nearfar-orbit.running:before{animation:7s ease-in-out infinite vision-depth-grid}.vision-nearfar-orbit.running:after{animation:7s ease-in-out infinite reverse vision-depth-ring}.vision-nearfar-orbit.running .vision-depth-tunnel i{animation:7s ease-in-out infinite vision-tunnel-pulse}.vision-nearfar-orbit.running .vision-depth-tunnel i:nth-child(2){animation-delay:-.55s}.vision-nearfar-orbit.running .vision-depth-tunnel i:nth-child(3){animation-delay:-1.1s}.vision-nearfar-orbit.running .vision-depth-tunnel i:nth-child(4){animation-delay:-1.65s}.vision-nearfar-orbit.running .vision-nearfar-single-target:before{animation:12s linear infinite vision-reticle-turn}.vision-nearfar-orbit.running:not(.far) .vision-nearfar-single-target{animation:vision-near-target-glide var(--nearfar-phase-duration,7s) linear both, vision-target-micro-pulse 1.8s ease-in-out infinite}.vision-nearfar-orbit.running.far .vision-nearfar-single-target{animation:vision-far-target-glide var(--nearfar-phase-duration,7s) linear both}.vision-nearfar-orbit.far .vision-depth-tunnel{transform:rotateX(19deg)scale(.68)}.vision-nearfar-dual-target{--dual-disc-size:clamp(116px, 18vw, 210px);--dual-spread:min(20vw, 180px);z-index:2;width:min(86vw,700px);min-height:calc(var(--dual-disc-size) * 1.58);isolation:isolate;place-items:center;display:none;position:relative}.vision-nearfar-orbit.dual .vision-nearfar-single-target{display:none}.vision-nearfar-orbit.dual .vision-nearfar-dual-target{display:grid}.vision-dual-disc{width:var(--dual-disc-size);aspect-ratio:1;opacity:.94;background:radial-gradient(circle,#fff3 0 17%,#0000 18%),linear-gradient(90deg,#0000 45.4%,#ffffffd1 45.4% 54.6%,#0000 54.6%),linear-gradient(#0000 45.4%,#ffffffd1 45.4% 54.6%,#0000 54.6%),#143b35;border:clamp(10px,1.8vw,18px) solid #dcebe8f0;border-radius:50%;position:absolute;transform:translate(0)scale(.42);box-shadow:0 26px 72px #143b352e,0 0 0 clamp(24px,3.4vw,48px) #dcebe87a}.vision-dual-left{transform-origin:62%}.vision-dual-right{transform-origin:38%}.vision-nearfar-dual-target i{z-index:3;aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,#ffffffe0,#ffffff3d 58%,#0000 70%);border-radius:50%;width:clamp(42px,6vw,74px);position:absolute;box-shadow:0 0 0 clamp(34px,4.8vw,72px) #ffffff29}.vision-nearfar-orbit.dual.running:not(.far) .vision-dual-left{animation:vision-dual-left-spread var(--nearfar-phase-duration,7s) linear both}.vision-nearfar-orbit.dual.running:not(.far) .vision-dual-right{animation:vision-dual-right-spread var(--nearfar-phase-duration,7s) linear both}.vision-nearfar-orbit.dual.running.far .vision-dual-left{animation:vision-dual-left-gather var(--nearfar-phase-duration,7s) linear both}.vision-nearfar-orbit.dual.running.far .vision-dual-right{animation:vision-dual-right-gather var(--nearfar-phase-duration,7s) linear both}@keyframes vision-depth-ring{0%,to{opacity:.52;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}@keyframes vision-depth-grid{0%,to{opacity:.66;transform:scale(1.02)rotate(0)}50%{opacity:.92;transform:scale(.9)rotate(5deg)}}@keyframes vision-tunnel-pulse{0%,to{opacity:.5;transform:translateZ(0)scale(1)}50%{opacity:.96;transform:translateZ(70px)scale(.78)}}@keyframes vision-reticle-turn{to{transform:rotate(360deg)}}@keyframes vision-near-target-glide{0%{transform:scale(.38)translateY(-34px)}25%{transform:scale(.56)translateY(-24px)}50%{transform:scale(.76)translateY(-12px)}74%{transform:scale(.96)translateY(0)}90%{transform:scale(1.08)translateY(7px)}to{transform:scale(1.16)translateY(12px)}}@keyframes vision-far-target-glide{0%{transform:scale(1.16)translateY(12px)}25%{transform:scale(.96)translateY(0)}50%{transform:scale(.76)translateY(-12px)}74%{transform:scale(.56)translateY(-24px)}90%,to{transform:scale(.38)translateY(-34px)}}@keyframes vision-dual-left-spread{0%{transform:translate(0)scale(.42)}25%{transform:translateX(calc(var(--dual-spread) * -.08)) scale(.62)}50%{transform:translateX(calc(var(--dual-spread) * -.28)) scale(.84)}74%{transform:translateX(calc(var(--dual-spread) * -.62)) scale(1.04)}90%{transform:translateX(calc(var(--dual-spread) * -.86)) scale(1.14)}to{transform:translateX(calc(var(--dual-spread) * -1)) scale(1.18)}}@keyframes vision-dual-right-spread{0%{transform:translate(0)scale(.42)}25%{transform:translateX(calc(var(--dual-spread) * .08)) scale(.62)}50%{transform:translateX(calc(var(--dual-spread) * .28)) scale(.84)}74%{transform:translateX(calc(var(--dual-spread) * .62)) scale(1.04)}90%{transform:translateX(calc(var(--dual-spread) * .86)) scale(1.14)}to{transform:translateX(var(--dual-spread)) scale(1.18)}}@keyframes vision-dual-left-gather{0%{transform:translateX(calc(var(--dual-spread) * -1)) scale(1.18)}25%{transform:translateX(calc(var(--dual-spread) * -.86)) scale(1.14)}50%{transform:translateX(calc(var(--dual-spread) * -.62)) scale(1.04)}74%{transform:translateX(calc(var(--dual-spread) * -.28)) scale(.84)}90%{transform:translateX(calc(var(--dual-spread) * -.08)) scale(.62)}to{transform:translate(0)scale(.42)}}@keyframes vision-dual-right-gather{0%{transform:translateX(var(--dual-spread)) scale(1.18)}25%{transform:translateX(calc(var(--dual-spread) * .86)) scale(1.14)}50%{transform:translateX(calc(var(--dual-spread) * .62)) scale(1.04)}74%{transform:translateX(calc(var(--dual-spread) * .28)) scale(.84)}90%{transform:translateX(calc(var(--dual-spread) * .08)) scale(.62)}to{transform:translate(0)scale(.42)}}@keyframes vision-target-micro-pulse{0%,to{filter:brightness()}50%{filter:brightness(1.05)}}.vision-ff-board{--fusion-gap:clamp(34px, 9.9vw, 90px);isolation:isolate;border-radius:var(--radius);background:linear-gradient(90deg,#0000 49.6%,#143b351a 49.6% 50.4%,#0000 50.4%),repeating-linear-gradient(90deg,#143b350d 0 1px,#0000 1px 9.2%),#f8fbfa;border:1px solid #b8cfcacc;place-items:center;min-height:420px;display:grid;position:relative;overflow:hidden}.vision-ff-board:before{content:"";z-index:0;pointer-events:none;border:2px solid #143b3514;border-color:#143b3514 #00a9c629 #143b3514 #d7253f1f;border-radius:50%;position:absolute;inset:8%;transform:scaleX(1.24)}.vision-ff-board:after{content:"";z-index:0;pointer-events:none;border:1px dashed #143b352e;border-radius:999px;position:absolute;inset:16% 11%;transform:scaleX(1.22)}.vision-ff-guide{z-index:4;color:#17211fbd;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff9e;border:1px solid #b8cfca94;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:800;position:absolute;top:16px;left:50%;transform:translate(-50%)}.vision-ff-pair{z-index:2;justify-content:center;align-items:center;gap:var(--fusion-gap);width:min(100%,900px);padding:0 clamp(12px,4vw,54px);transition:gap .52s cubic-bezier(.18,.84,.22,1);display:flex;position:relative}.vision-ff-card{aspect-ratio:.82;background:#143b35;border:clamp(10px,1.6vw,18px) solid #dcebe8;border-radius:8px;flex:none;width:clamp(108px,22vw,220px);position:relative;overflow:hidden;box-shadow:0 28px 70px #143b3529,0 0 0 clamp(8px,1.4vw,18px) #dcebe86b}.vision-ff-card:before{content:"";border:2px solid #ffffff57;border-radius:6px;position:absolute;inset:12%}.vision-ff-card.left{background:linear-gradient(90deg,#0000 46.5%,#ffffffe6 46.5% 53.5%,#0000 53.5%),#143b35}.vision-ff-card.right{background:linear-gradient(#0000 46.5%,#ffffffe6 46.5% 53.5%,#0000 53.5%),#143b35}.vision-ff-card span{aspect-ratio:1;background:#fff;border-radius:50%;width:21%;position:absolute;top:18%}.vision-ff-card.left span{left:18%}.vision-ff-card.right span{right:18%}.vision-ff-board.parallel .vision-ff-card.left span{left:auto;right:20%}.vision-ff-board.parallel .vision-ff-card.right span{left:18%;right:auto}.vision-ff-board.running .vision-ff-card{animation:2.2s ease-in-out infinite vision-fusion-card-breathe}@keyframes vision-fusion-card-breathe{0%,to{filter:brightness()}50%{filter:brightness(1.06)}}.vision-mode-switch{background:var(--surface-2);border-radius:var(--radius-sm);gap:8px;padding:4px;display:flex}.vision-mode-switch button{border-radius:calc(var(--radius-sm) - 2px);color:var(--text-2);cursor:pointer;background:0 0;border:none;flex:1;padding:10px 16px;font-size:13px;font-weight:600;transition:all .15s}.vision-mode-switch button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.vision-symptom-choice{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;padding:10px 8px;font-size:13px;font-weight:600;transition:all .15s}.vision-symptom-choice:hover{border-color:var(--green)}.vision-symptom-choice.active{border-color:var(--green);background:var(--green);color:#fff}.vision-assessment,.vision-assessment-content{margin:24px 0}.vision-assessment-step h4{color:var(--green);margin:0 0 8px;font-size:18px}.vision-assessment-step .vision-card-desc{margin-bottom:20px}.vision-form-section{flex-direction:column;gap:16px;margin:20px 0;display:flex}.vision-form-section label{flex-direction:column;gap:6px;display:flex}.vision-form-section label span{color:var(--text-2);font-size:14px;font-weight:500}.vision-form-section select,.vision-form-section input[type=number]{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:10px 12px;font-size:15px}.vision-checkbox-label{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);align-items:center;gap:8px;padding:12px;display:flex}.vision-checkbox-label input{width:18px;height:18px}.vision-assessment-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;display:flex}.vision-test-area{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin:20px 0;padding:24px}.vision-test-instructions{text-align:center}.vision-test-instructions p{color:var(--text-2);margin:8px 0}.vision-test-instructions kbd{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:4px 8px;font-family:monospace;font-size:14px}.vision-test-instructions button{margin-top:16px}#simVisionCanvas,#fusionTestCanvas{border:2px solid var(--border);border-radius:var(--radius-sm);background:#fff;margin:20px auto;display:block}.vision-test-result{text-align:center;padding:24px}.vision-metric-large{color:var(--green);margin:16px 0;font-size:48px;font-weight:700}.vision-metric-label{color:var(--text-2);font-size:14px}.vision-fusion-test{flex-direction:column;align-items:center;gap:16px;display:flex}.vision-test-controls{gap:12px;display:flex}.vision-test-status{color:var(--text-2);margin:8px 0;font-size:18px;font-weight:600}.vision-stereopsis-demo{text-align:center}.vision-freefusion-preview{margin:24px 0}.vision-freefusion-pair{justify-content:center;align-items:center;gap:80px;display:flex}.vision-freefusion-item{color:var(--text);font-size:72px}.vision-stereopsis-buttons{justify-content:center;gap:12px;margin-top:24px;display:flex}.vision-assessment-summary{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:20px 0;display:grid}.vision-summary-item{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:6px;padding:16px;display:flex}.vision-summary-item span{color:var(--text-2);font-size:13px}.vision-summary-item strong{color:var(--green);font-size:20px}.vision-assessment-advice{border-left:4px solid var(--green);background:var(--green-light);border-radius:var(--radius-sm);margin-top:24px;padding:16px}.vision-assessment-advice h5{color:var(--green);margin:0 0 8px;font-size:15px}.vision-assessment-advice p{color:var(--text);margin:0;line-height:1.6}.vision-metrics-card{margin:24px 0}.vision-card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.vision-metrics-summary{margin:20px 0}.vision-metrics-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.vision-metric-card{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:center;flex-direction:column;gap:8px;padding:16px;display:flex}.vision-metric-card .vision-metric-label{color:var(--text-2);font-size:13px}.vision-metric-card .vision-metric-value{color:var(--green);font-size:24px;font-weight:700}.vision-metric-card .vision-metric-note{color:var(--text-2);margin-top:2px;font-size:11px}.vision-metrics-detail{margin-top:16px}.vision-metrics-charts{flex-direction:column;gap:24px;padding:20px;display:flex}#visionFusionRangeChart{border:2px solid var(--border);border-radius:var(--radius-sm);background:#fff;margin:0 auto;display:block}.vision-metrics-trends{flex-direction:column;gap:16px;display:flex}
