@import "https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Noto+Serif+SC:wght@400;500;600;700&display=swap";:root{--bg:#f7f8f5;--card:#fdfdfb;--tint:#f1f4f6;--border:#d6e0e8;--border-strong:#bdd0dc;--border-hair:#e7ecef;--heading:#1f3554;--body:#3e5878;--muted:#7d92a9;--blue:#2f66a0;--blue-hover:#174980;--blue-light:#e7f0f7;--blue-border:#afc3d3;--panel-bg:#c8d8ea;--panel-card:#dae8f3;--panel-card-raised:#e8f2fa;--panel-border:#afc3d3;--panel-border-soft:#2f568224;--panel-text:#1f3554;--panel-muted:#3e5878;--panel-soft:#6a84a0;--parchment-card:#fdfdfb;--parchment-deep:#f1f4f6;--ink-strong:#1f3554;--ink:#3e5878;--ink-muted:#7d92a9;--ink-soft:#7d92a9;--ink-panel:#c8d8ea;--ink-panel-border:#afc3d3;--cerulean:#2f66a0;--cerulean-dark:#174980;--cerulean-light:#2f66a017;--line:#2f56821a;--line-soft:#2f56820e;--issue-grammar:#2f66a0;--issue-grammar-bg:#2f66a014;--issue-natural:#237a8a;--issue-natural-bg:#237a8a14;--issue-vocab:#4a4ea0;--issue-vocab-bg:#4a4ea014;--issue-order:#1a7a9a;--issue-order-bg:#1a7a9a14;--issue-tone:#3a5a8a;--issue-tone-bg:#3a5a8a12;--shadow-card:0 1px 2px #1f35540d, 0 3px 10px #1f35540f;--shadow-elevated:0 4px 20px #1f355417;--shadow-float:0 12px 40px #1f355421;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:16px;--radius-2xl:18px;--space-xs:6px;--space-sm:10px;--space-md:16px;--space-lg:24px;--space-xl:36px;--space-2xl:56px;--font-ui:"DM Sans", sans-serif;--font-display:"EB Garamond", serif;--font-chinese:"Noto Serif SC", "Songti SC", "STSong", serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{min-height:100vh;font-family:var(--font-ui);color:var(--body);background-color:var(--bg);background-image:linear-gradient(var(--border-hair) 1px, transparent 1px), linear-gradient(90deg, var(--border-hair) 1px, transparent 1px);background-size:36px 36px;overflow-x:hidden}button,input,textarea{font:inherit}.chinese-text{font-family:var(--font-chinese);line-height:1.9}.header{z-index:100;-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#f7f8f5f2;justify-content:space-between;align-items:center;gap:20px;height:64px;padding:0 40px;display:flex;position:sticky;top:0}.header:after{content:"";background:repeating-linear-gradient(90deg, var(--blue-border) 0px, var(--blue-border) 4px, transparent 4px, transparent 10px);opacity:.45;height:1px;position:absolute;bottom:-3px;left:40px;right:40px}.header-left,.header-right{align-items:center;display:flex}.header-right{justify-content:flex-end}.logo{align-items:center;gap:13px;display:flex}.logo-img{object-fit:contain;border-radius:8px;flex-shrink:0;width:36px;height:36px;display:block}.logo-copy{flex-direction:column;gap:1px;display:flex}.logo-text{font-family:var(--font-display);color:var(--heading);letter-spacing:.01em;font-size:1.18rem;font-weight:500}.logo-sub{letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-size:.64rem}.lang-switcher{border:1px solid var(--border);background:var(--card);border-radius:999px;gap:1px;padding:3px;display:inline-flex}.lang-btn{min-width:42px;min-height:28px;color:var(--muted);letter-spacing:.1em;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:0 12px;font-size:.7rem;font-weight:600;transition:all .15s}.lang-btn:hover{color:var(--body)}.lang-btn.active{background:var(--heading);color:#edf4fb}.app-layout{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:24px;max-width:1440px;margin:0 auto;padding:36px 40px 72px;display:grid}.app-layout:not(.with-panel){grid-template-columns:minmax(0,1fr)}.main-content{flex-direction:column;gap:18px;min-width:0;display:flex}.inline-editor-section{flex-direction:column;gap:12px;display:flex}.editor-label{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);padding-left:2px;font-size:.64rem}.inline-editor-container{border:1px solid var(--border);border-radius:var(--radius-2xl);background:var(--card);box-shadow:var(--shadow-card);transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.inline-editor-container.focused{border-color:var(--blue-border);box-shadow:var(--shadow-elevated)}.inline-editor{width:100%;min-height:360px;color:var(--heading);white-space:pre-wrap;word-break:break-word;outline:none;padding:32px 34px 20px;font-size:clamp(1.1rem,1.4vw,1.35rem);line-height:2.15}#grammar-input{-webkit-user-select:text;user-select:text}.inline-editor:empty:before{content:attr(data-placeholder);font-family:var(--font-ui);color:var(--muted);white-space:pre-line;font-size:.96rem;line-height:1.8}.analyzing-bar{background:var(--border-hair);height:1.5px;position:absolute;inset:0 0 auto}.analyzing-bar-fill{background:linear-gradient(90deg, var(--blue), #2f66a026);width:26%;animation:1.4s ease-in-out infinite scanning;position:absolute;inset:0 auto 0 0}.analyzing-bar-text{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-size:.6rem;position:absolute;top:10px;right:18px}.editor-footer{border-top:1px solid var(--border-hair);justify-content:space-between;align-items:center;gap:14px;padding:10px 20px 16px;display:flex}.char-count{color:var(--muted);align-items:center;gap:7px;font-size:.76rem;display:flex}.char-count-badge{background:var(--tint);border:1px solid var(--border);min-width:24px;height:18px;color:var(--body);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:.7rem;font-weight:600;display:inline-flex}.editor-actions{gap:5px;display:flex}.btn-icon,.btn-sample,.btn-rewrite-copy,.panel-issue-apply{transition:all .15s}.btn-icon{border:1px solid var(--border);width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.btn-icon:active,.btn-sample:active,.panel-issue-apply:active,.btn-rewrite-copy:active,.mobile-panel-toggle:active,.btn-analyze:active{transform:scale(.97)}.btn-analyze{background:var(--blue);color:#fff;border:1.5px solid var(--blue);cursor:pointer;white-space:nowrap;border-radius:6px;height:30px;padding:0 14px;font-size:.8rem;font-weight:600;transition:all .15s}.btn-analyze:hover:not(:disabled){background:var(--blue-dark,#1a4a8a);border-color:var(--blue-dark,#1a4a8a)}.btn-analyze:disabled{opacity:.4;cursor:not-allowed}.sample-buttons-container{flex-direction:column;gap:9px;display:flex}.sample-label{letter-spacing:.13em;text-transform:uppercase;color:var(--muted);padding-left:2px;font-size:.64rem}.sample-buttons{flex-wrap:wrap;gap:7px;display:flex}.btn-sample{border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;border-radius:999px;padding:5px 13px;font-size:.8rem}.btn-sample:hover{border-color:var(--blue-border);color:var(--blue);background:var(--blue-light)}.underline-legend{flex-wrap:wrap;gap:10px 18px;padding:0 2px;display:flex}.legend-item{color:var(--muted);align-items:center;gap:7px;font-size:.72rem;display:inline-flex}.legend-line{border-radius:999px;flex-shrink:0;width:14px;height:1.5px}.legend-grammar{background:var(--issue-grammar)}.legend-word-choice{background:var(--issue-vocab)}.legend-word-order,.legend-particle{background:var(--issue-order)}.legend-style{border-top:1.5px dashed var(--issue-tone);height:0}.issue-mark{color:inherit;cursor:pointer;background:0 0;position:relative}.issue-mark:after{content:"";position:absolute;bottom:-3px;left:0;right:0}.issue-mark:hover,.issue-mark.flash{border-radius:2px}.mark-grammar:after{border-bottom:1.5px solid var(--issue-grammar)}.mark-grammar:hover,.mark-grammar.flash{background:var(--issue-grammar-bg)}.mark-naturalness:after{border-bottom:1.5px solid var(--issue-natural)}.mark-naturalness:hover,.mark-naturalness.flash{background:var(--issue-natural-bg)}.mark-word_choice:after{border-bottom:1.5px solid var(--issue-vocab)}.mark-word_choice:hover,.mark-word_choice.flash{background:var(--issue-vocab-bg)}.mark-word_order:after{border-bottom:1.5px solid var(--issue-order)}.mark-word_order:hover,.mark-word_order.flash{background:var(--issue-order-bg)}.mark-measure_word:after,.mark-particle:after{border-bottom:1.5px solid var(--issue-order)}.mark-measure_word:hover,.mark-measure_word.flash,.mark-particle:hover,.mark-particle.flash{background:var(--issue-order-bg)}.mark-tone_register:after,.mark-punctuation:after{border-bottom:1.5px dashed var(--issue-tone)}.mark-tone_register:hover,.mark-tone_register.flash,.mark-punctuation:hover,.mark-punctuation.flash{background:var(--issue-tone-bg)}.suggestion-card{z-index:30;border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--card);width:min(340px,88vw);box-shadow:var(--shadow-float);flex-direction:column;gap:12px;padding:18px;display:flex;position:absolute}.suggestion-card:before{content:"";background:var(--card);border-top:1px solid var(--border);border-left:1px solid var(--border);width:10px;height:10px;position:absolute;top:-5px;left:22px;transform:rotate(45deg)}.suggestion-close{border:1px solid var(--border);cursor:pointer;width:24px;height:24px;color:var(--muted);background:0 0;border-radius:999px;justify-content:center;align-items:center;transition:all .15s;display:flex;position:absolute;top:12px;right:12px}.suggestion-close:hover{background:var(--blue);border-color:var(--blue);color:#fff}.suggestion-header,.suggestion-diff,.suggestion-detail,.suggestion-translations{flex-direction:column;gap:9px;display:flex}.suggestion-header{flex-direction:row;align-items:center;gap:8px}.suggestion-type-badge{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;min-height:20px;padding:0 9px;font-size:.64rem;font-weight:600;display:inline-flex}.type-grammar{background:var(--issue-grammar-bg);color:var(--issue-grammar)}.type-naturalness{background:var(--issue-natural-bg);color:var(--issue-natural)}.type-word_choice{background:var(--issue-vocab-bg);color:var(--issue-vocab)}.type-word_order,.type-measure_word,.type-particle{background:var(--issue-order-bg);color:var(--issue-order)}.type-tone_register,.type-punctuation{background:var(--issue-tone-bg);color:var(--issue-tone)}.suggestion-severity{color:var(--muted);font-size:.72rem}.suggestion-diff{border-radius:var(--radius-md);background:var(--tint);border:1px solid var(--border-hair);gap:5px;padding:12px 14px}.suggestion-original,.suggestion-corrected{align-items:flex-start;gap:8px;display:flex}.suggestion-original{color:var(--muted);text-decoration:line-through}.suggestion-corrected{color:var(--heading);font-weight:600}.diff-label{letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-family:var(--font-ui);color:var(--muted);flex-shrink:0;min-width:34px;padding-top:3px}.suggestion-arrow{color:var(--muted);text-align:center}.btn-apply-fix,.btn-learn-more,.btn-translations{cursor:pointer;border:none}.btn-apply-fix{background:var(--blue);color:#edf4fb;border-radius:999px;min-height:36px;font-size:.84rem;font-weight:600;transition:background .15s}.btn-apply-fix:hover{background:var(--blue-hover)}.suggestion-explanation,.suggestion-detail-text,.translation-row{color:var(--body);font-size:.85rem;line-height:1.65}.l1-interference-badge,.suggestion-rule-tag,.suggestion-translations,.rewrite-explanation,.panel-demo-banner{border:1px solid var(--border-hair);border-radius:var(--radius-md);background:var(--tint)}.l1-interference-badge{padding:9px 12px}.l1-badge-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;font-size:.62rem}.l1-badge-note{color:var(--body);font-size:.83rem;line-height:1.5}.suggestion-rule-tag{width:fit-content;color:var(--body);padding:5px 10px;font-size:.74rem;display:inline-flex}.btn-learn-more,.btn-translations{color:var(--blue);background:0 0;align-items:center;gap:5px;padding:0;font-size:.8rem;font-weight:600;display:inline-flex}.chevron{transition:transform .15s}.chevron.open{transform:rotate(180deg)}.suggestion-detail{border-top:1px solid var(--border-hair);padding-top:10px}.suggestion-translations{padding:9px 12px}.translation-row{gap:8px;display:flex}.translation-flag{flex-shrink:0;font-size:.9rem}.side-panel{border-radius:var(--radius-2xl);background:var(--panel-bg);border:1px solid var(--border-strong);max-height:calc(100vh - 106px);box-shadow:var(--shadow-elevated);scrollbar-width:none;flex-direction:column;display:flex;position:sticky;top:82px;overflow:auto}.side-panel:before{content:"";background-color:var(--panel-bg);height:54px;box-shadow:inset 0 1px 0 var(--border-strong), inset 0 -1.5px 0 var(--panel-border);background-image:radial-gradient(17px at 21px 54px,#2f66a04d 0% 97%,#0000 100%),radial-gradient(9px at 0 54px,#2f66a02e 0% 97%,#0000 100%);background-repeat:repeat-x;background-size:42px 54px;flex-shrink:0;display:block}.side-panel::-webkit-scrollbar{display:none}.panel-tabs{z-index:2;background:var(--panel-bg);border-bottom:1.5px solid var(--panel-border);gap:0;padding:0 16px;display:flex;position:sticky;top:0}.panel-tab{min-height:42px;color:var(--panel-soft);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;margin-bottom:-1.5px;font-size:.67rem;font-weight:600;transition:all .15s;display:flex}.panel-tab:hover{color:var(--panel-muted)}.panel-tab.active{color:var(--blue);border-bottom-color:var(--blue)}.panel-tab-badge{background:var(--blue);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.6rem;font-weight:700;display:inline-flex}.panel-content,.rewrite-panel{flex-direction:column;gap:22px;padding:20px 16px;display:flex}.panel-content{padding-bottom:36px}.rewrite-intro{flex-direction:column;gap:4px;display:flex}.rewrite-summary{color:var(--panel-muted);font-size:.84rem;line-height:1.6}.panel-intro{flex-direction:column;gap:3px;display:flex}.panel-kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--panel-soft);font-size:.6rem}.panel-summary{font-family:var(--font-display);color:var(--panel-text);font-size:1.45rem;font-weight:400;line-height:1.25}.score-dual{border-radius:var(--radius-lg);background:var(--panel-card);border:1px solid var(--panel-border);grid-template-columns:repeat(2,1fr);gap:10px;padding:14px;display:grid}.score-ring-container{flex-direction:column;align-items:center;gap:7px;display:flex}.score-ring{width:78px;height:78px;position:relative}.score-ring svg{width:78px;height:78px;transform:rotate(-90deg)}.score-ring-track{fill:none;stroke:#2f66a01f;stroke-width:5.5px}.score-ring-progress{fill:none;stroke-width:5.5px;stroke-linecap:round}.score-ring-inner{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.score-ring-emoji{color:var(--panel-soft);font-size:.72rem}.score-ring-number{color:var(--blue);font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}.score-ring-label{color:var(--panel-soft);letter-spacing:.1em;text-transform:uppercase;text-align:center;font-size:.62rem;line-height:1.3}.panel-demo-banner{color:var(--panel-muted);background:var(--panel-card);border-color:var(--panel-border);align-items:center;gap:9px;padding:9px 12px;font-size:.81rem;display:flex}.panel-demo-mark{width:20px;height:20px;color:var(--blue);font-family:var(--font-display);background:#2f66a026;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.82rem;display:inline-flex}.panel-stats{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.panel-stat{border:1px solid var(--panel-border);border-radius:var(--radius-md);background:var(--panel-card);text-align:center;padding:10px 7px}.panel-stat-value{color:var(--panel-text);font-family:var(--font-display);font-size:1.12rem;font-weight:400;display:block}.panel-stat-label{color:var(--panel-soft);text-transform:uppercase;letter-spacing:.09em;margin-top:2px;font-size:.6rem;display:block}.panel-tone-section{border:1px solid var(--panel-border);border-radius:var(--radius-lg);background:var(--panel-card);padding-top:0;overflow:hidden}.panel-content>.panel-tone-section{border-top-width:1px;margin-top:2px;padding-top:0}.panel-section-header{border-bottom:1px solid var(--panel-border);color:var(--panel-soft);letter-spacing:.16em;text-transform:uppercase;padding:9px 13px;font-size:.62rem}.panel-tone-content{flex-direction:column;gap:7px;padding:11px;display:flex}.tone-tag,.tone-warning,.tone-alternatives{border:1px solid var(--panel-border-soft);border-radius:var(--radius-md);background:var(--panel-card-raised);padding:7px 10px}.tone-tag,.tone-suggestion,.tone-alt-item,.panel-issue-explanation,.panel-no-issues-sub,.error-banner{color:var(--panel-muted);font-size:.83rem;line-height:1.55}.tone-warning{border-left:2px solid var(--blue)}.tone-alt-label,.tone-alt-context{color:var(--panel-soft);text-transform:uppercase;letter-spacing:.09em;font-size:.63rem}.tone-alt-item{border-top:1px solid var(--panel-border-soft);flex-direction:column;gap:3px;padding:7px 0;display:flex}.tone-alt-item:first-of-type{border-top:none;padding-top:0}.tone-alt-text{color:var(--panel-text);font-weight:500}.panel-categories{border-top:1px solid var(--panel-border-soft);flex-direction:column;gap:3px;padding-top:4px;display:flex}.panel-category{border-radius:var(--radius-lg);background:var(--panel-card);border:1px solid var(--panel-border-soft);transition:border-color .15s,background .15s;overflow:hidden}.panel-category.empty{opacity:.4}.panel-category.expanded{border-color:var(--panel-border);background:var(--panel-card-raised)}.panel-category-header{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:9px;width:100%;padding:9px 12px;transition:background .15s;display:flex}.panel-category-header:hover:not(:disabled){background:#2f66a00d}.panel-category.expanded .panel-category-header{border-left:2.5px solid var(--blue);padding-left:9.5px}.panel-cat-icon{width:22px;height:22px;color:var(--blue);font-family:var(--font-display);background:#2f66a01a;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:.78rem;display:inline-flex}.panel-cat-name{color:var(--panel-text);flex:1;font-size:.84rem;font-weight:500}.panel-cat-count{min-width:20px;height:20px;color:var(--blue);border:1px solid var(--panel-border-soft);background:#2f66a01f;border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:.66rem;font-weight:700;display:inline-flex}.count-grammar{color:var(--blue);background:#2f66a02e}.count-naturalness{color:#237a8a;background:#237a8a2e}.count-word_choice{color:#4a4ea0;background:#4a4ea02e}.count-word_order{color:#1a7a9a;background:#1a7a9a2e}.count-measure_word,.count-particle{color:#1a7a9a;background:#1a7a9a26}.count-tone_register,.count-punctuation{color:#3a5a8a;background:#3a5a8a2e}.panel-cat-chevron{color:var(--panel-soft);flex-shrink:0;transition:transform .15s}.panel-cat-chevron.open{transform:rotate(180deg)}.panel-category-issues{flex-direction:column;gap:0;padding:0 12px 10px;display:flex}.panel-issue-item{border-bottom:1px solid var(--panel-border-soft);cursor:pointer;flex-direction:column;gap:5px;padding:10px 2px;transition:background .15s;display:flex}.panel-issue-item:last-child{border-bottom:none}.panel-issue-item:hover{border-radius:var(--radius-sm);background:#2f66a00d;padding-left:6px;padding-right:6px}.panel-issue-diff{flex-wrap:wrap;align-items:baseline;gap:7px;display:flex}.panel-issue-original{color:var(--panel-soft);text-decoration:line-through}.panel-issue-arrow{color:var(--panel-soft);font-size:.82rem}.panel-issue-corrected{color:var(--blue);font-weight:600}.panel-issue-explanation{color:var(--panel-muted);font-size:.78rem;line-height:1.5}.panel-issue-l1{width:fit-content;color:var(--blue);background:#2f66a01a;border-radius:999px;padding:2px 7px;font-size:.65rem;font-weight:600}.panel-issue-apply{border:1px solid var(--blue-border);width:100%;min-height:32px;color:var(--blue);cursor:pointer;background:0 0;border-radius:999px;margin-top:4px;font-size:.78rem;font-weight:600;transition:all .15s}.panel-issue-apply:hover{background:var(--blue);border-color:var(--blue);color:#fff}.panel-no-issues{text-align:center;padding:36px 14px}.panel-no-issues-emoji,.empty-state-emoji{width:46px;height:46px;font-family:var(--font-display);border-radius:12px;justify-content:center;align-items:center;margin-bottom:14px;font-size:1.4rem;display:inline-flex}.panel-no-issues-emoji{background:var(--panel-card);border:1px solid var(--panel-border);color:var(--blue)}.empty-state-emoji{background:var(--tint);border:1px solid var(--border);color:var(--muted)}.panel-no-issues-text,.empty-state-title{font-family:var(--font-display);margin-bottom:5px;font-size:1.15rem}.panel-no-issues-text{color:var(--panel-text)}.empty-state-title{color:var(--heading)}.rewrite-styles{flex-direction:column;gap:7px;display:flex}.rewrite-style-btn{border:1px solid var(--panel-border-soft);border-radius:var(--radius-md);background:var(--panel-card);text-align:left;cursor:pointer;align-items:center;gap:10px;min-height:42px;padding:0 12px;transition:all .15s;display:flex}.rewrite-style-btn:hover{background:var(--panel-card-raised);border-color:var(--panel-border)}.rewrite-style-btn.active{border-color:var(--blue);background:var(--blue-light)}.rewrite-style-icon{width:22px;height:22px;color:var(--blue);font-family:var(--font-display);background:#2f66a01a;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:.82rem;display:inline-flex}.rewrite-style-label{color:var(--panel-text);font-size:.84rem;font-weight:500}.rewrite-loading{justify-content:center;padding:28px 0;display:flex}.rewrite-loading-dots{align-items:center;gap:5px;display:flex}.rewrite-loading-dots span{background:var(--blue);opacity:.5;border-radius:999px;width:4px;height:4px;animation:.78s infinite alternate dotBounce}.rewrite-loading-dots span:nth-child(2){animation-delay:.17s}.rewrite-loading-dots span:nth-child(3){animation-delay:.34s}.rewrite-result{border-radius:var(--radius-lg);border:1px solid var(--panel-border);background:var(--panel-card-raised);border-left:3px solid var(--blue);flex-direction:column;gap:9px;padding:14px;display:flex}.rewrite-text{color:var(--panel-text);font-size:.96rem;line-height:1.95}.rewrite-explanation{color:var(--panel-muted);background:var(--panel-card);border-radius:var(--radius-sm);border:1px solid var(--panel-border-soft);padding:8px 11px;font-size:.8rem}.rewrite-actions{justify-content:flex-end;display:flex}.btn-rewrite-copy{border:1px solid var(--blue-border);cursor:pointer;min-height:30px;color:var(--blue);background:0 0;border-radius:999px;padding:0 13px;font-size:.78rem;font-weight:600;transition:all .15s}.btn-rewrite-copy:hover{background:var(--blue);border-color:var(--blue);color:#fff}.rewrite-toast{background:var(--heading);color:#edf4fb;box-shadow:var(--shadow-elevated);z-index:999;border-radius:999px;padding:7px 14px;font-size:.8rem;font-weight:600;position:fixed;bottom:20px;right:20px}.empty-state{border-radius:var(--radius-2xl);background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-card);padding:28px 26px}.empty-state-msg{max-width:52ch;color:var(--muted);font-size:.9rem;line-height:1.82}.error-banner{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--tint);color:var(--body);align-items:center;gap:9px;padding:11px 15px;font-size:.84rem;display:flex}.mobile-panel-toggle{display:none}.corrected-section{border:1px solid var(--border);border-radius:var(--radius-2xl);background:var(--card);box-shadow:var(--shadow-card);border-top:3px solid var(--blue-border);animation:.35s fadeIn;overflow:hidden}.corrected-header{border-bottom:1px solid var(--border-hair);justify-content:space-between;align-items:center;gap:12px;padding:16px 22px 15px;display:flex}.corrected-title{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:.64rem}.corrected-actions{gap:6px;display:flex}.btn-secondary{border:1px solid var(--blue-border);min-height:26px;color:var(--blue);cursor:pointer;background:0 0;border-radius:999px;padding:0 12px;font-size:.72rem;font-weight:600;transition:all .15s}.btn-secondary:hover{background:var(--blue);border-color:var(--blue);color:#fff}.corrected-body{padding:24px 26px 28px}.corrected-text-display{color:var(--heading);font-size:clamp(1.05rem,1.3vw,1.22rem);line-height:2.1}.correction-highlight{background:var(--blue-light);color:var(--blue);text-decoration:underline;-webkit-text-decoration-color:var(--blue-border);text-decoration-color:var(--blue-border);text-underline-offset:3px;border-radius:3px;padding:0 2px;font-weight:600}.pinyin-display{border-top:1px solid var(--border-hair);color:var(--muted);letter-spacing:.04em;margin-top:16px;padding-top:14px;font-size:.86rem;line-height:2}.corrected-translation{border-top:1px solid var(--border-hair);color:var(--body);gap:8px;margin-top:10px;padding-top:10px;font-size:.9rem;display:flex}.corrected-translation-label{color:var(--muted);font-weight:600}.toast{background:var(--heading);color:#edf4fb;box-shadow:var(--shadow-elevated);z-index:999;opacity:0;pointer-events:none;border-radius:999px;padding:7px 14px;font-size:.8rem;font-weight:600;transition:opacity .2s,transform .2s;position:fixed;bottom:20px;right:20px;transform:translateY(6px)}.toast.show{opacity:1;transform:translateY(0)}.app-footer{align-items:center;max-width:1440px;margin:0 auto;padding:0 40px 32px;display:flex}.app-footer span{color:var(--muted);letter-spacing:.04em;font-size:.72rem}@keyframes scanning{0%{left:-28%}to{left:104%}}@keyframes dotBounce{0%{transform:translateY(0)}to{transform:translateY(-4px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.side-panel .panel-content{padding:0}.analysis-section{border-top:1px solid var(--panel-border-soft,#2f568224);margin-top:16px;padding-top:16px}.analysis-section-title{color:var(--panel-text,#1f3554);letter-spacing:.01em;margin:0 0 12px;font-size:.95rem;font-weight:700}.level-headline{align-items:center;gap:12px;margin-bottom:14px;display:flex}.level-badge{color:#fff;background:var(--cerulean,#2f66a0);white-space:nowrap;border-radius:10px;padding:6px 12px;font-size:1.1rem;font-weight:800}.level-counts{color:var(--panel-muted,#3e5878);flex-wrap:wrap;gap:4px 14px;font-size:.82rem;display:flex}.level-counts strong{color:var(--panel-text,#1f3554)}.level-bars{flex-direction:column;gap:6px;display:flex}.level-bar-row{color:var(--panel-muted,#3e5878);grid-template-columns:56px 1fr 28px;align-items:center;gap:8px;font-size:.8rem;display:grid}.level-bar-track{background:#2f56821f;border-radius:6px;height:9px;overflow:hidden}.level-bar-fill{background:linear-gradient(90deg, var(--cerulean,#2f66a0), #5b91c4);border-radius:6px;min-width:2px;height:100%;transition:width .35s}.level-bar-row.beyond .level-bar-fill{background:#b0bccb}.level-bar-count{text-align:right;font-variant-numeric:tabular-nums}.level-hardest{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.level-hardest-label{color:var(--panel-soft,#6a84a0);margin-right:2px;font-size:.78rem}.hardest-chip{background:var(--panel-card-raised,#e8f2fa);border:1px solid var(--panel-border,#afc3d3);color:var(--panel-text,#1f3554);border-radius:12px;flex-direction:column;align-items:center;padding:3px 10px;line-height:1.15;display:inline-flex}.hardest-word{font-size:.95rem}.hardest-pinyin{color:var(--panel-soft,#6a84a0);font-size:.68rem}.grammar-list{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.grammar-item{background:var(--panel-card-raised,#e8f2fa);border:1px solid var(--panel-border-soft,#2f568224);border-radius:10px;flex-direction:column;gap:4px;min-width:0;padding:7px 10px;display:flex}.grammar-item-head{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.grammar-empty{color:var(--panel-soft,#6a84a0);margin:0 0 4px;font-size:.85rem}.grammar-explain{color:var(--panel-muted,#3e5878);font-size:.8rem;line-height:1.4}.grammar-example{color:var(--panel-soft,#6a84a0);font-size:.8rem;line-height:1.4}.grammar-level{color:var(--cerulean-dark,#174980);background:var(--blue-light,#e7f0f7);border:1px solid var(--blue-border,#afc3d3);white-space:nowrap;border-radius:6px;padding:1px 6px;font-size:.68rem;font-weight:700}.grammar-name{color:var(--panel-text,#1f3554);font-size:.86rem;font-weight:600}.grammar-term{color:var(--panel-soft,#6a84a0);margin-left:6px;font-size:.8rem}.grammar-eg{color:var(--panel-muted,#3e5878);overflow-wrap:anywhere;flex-basis:100%;font-size:.92rem}.grammar-src{text-transform:uppercase;letter-spacing:.04em;border-radius:5px;padding:1px 6px;font-size:.62rem;font-weight:700}.grammar-src.src-rule{color:#2c6e49;background:#e3efe5}.grammar-src.src-llm{color:#6a3fa0;background:#efe6f7}.grammar-src.src-lexical{color:#5a6b7d;background:#eef1f4}.grammar-deepen-btn{color:#fff;background:var(--cerulean,#2f66a0);cursor:pointer;border:none;border-radius:10px;width:100%;margin-top:12px;padding:9px 12px;font-size:.85rem;font-weight:600;transition:background .15s}.grammar-deepen-btn:hover:not(:disabled){background:var(--cerulean-dark,#174980)}.grammar-deepen-btn:disabled{opacity:.6;cursor:default}@media (width<=1180px){.app-layout,.app-layout.with-panel{grid-template-columns:1fr}.side-panel{max-height:none;position:static}}@media (width<=768px){.header{flex-wrap:wrap;gap:8px;height:auto;min-height:54px;padding:10px 18px}.header:after{left:18px;right:18px}.header-left,.header-right{justify-content:center}.lang-switcher{justify-content:center;width:100%}.app-layout{gap:16px;padding:20px 16px 112px}.main-content{gap:14px}.inline-editor-container{border-radius:var(--radius-xl)}.inline-editor{min-height:300px;padding:22px 20px;font-size:1.1rem;line-height:2}.editor-footer{flex-direction:column;align-items:flex-start;gap:10px;padding:10px 16px 16px}.editor-actions{justify-content:flex-end;width:100%}.btn-icon{width:36px;height:36px}.sample-buttons{width:100%}.btn-sample{min-height:36px}.empty-state{padding:22px 16px}.panel-stats,.score-dual{grid-template-columns:1fr}.side-panel{border-radius:var(--radius-xl);z-index:90;max-height:min(46vh,420px);box-shadow:var(--shadow-float);transition:transform .21s,box-shadow .21s;position:fixed;inset:auto 10px 10px;transform:translateY(calc(100% + 22px))}.app-layout.with-panel .side-panel{transform:translateY(0)}.panel-tabs{padding:12px 12px 0}.panel-tab,.panel-issue-apply,.btn-rewrite-copy,.rewrite-style-btn{min-height:44px}.mobile-panel-toggle{background:var(--heading);color:#edf4fb;letter-spacing:.03em;min-height:46px;box-shadow:var(--shadow-float);z-index:100;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0 22px;font-size:.86rem;font-weight:700;display:inline-flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}}.analysis-tabs{border-bottom:1px solid var(--panel-border-soft,#2f568224);gap:4px;margin:14px 0 4px;display:flex}.analysis-tab{color:var(--panel-soft,#6a84a0);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:8px 12px;font-size:.85rem;font-weight:600;transition:color .15s,border-color .15s;display:inline-flex}.analysis-tab:hover{color:var(--panel-text,#1f3554)}.analysis-tab.active{color:var(--cerulean,#2f66a0);border-bottom-color:var(--cerulean,#2f66a0)}.analysis-tab-badge{background:var(--blue-light,#e7f0f7);color:var(--cerulean-dark,#174980);text-align:center;border-radius:999px;min-width:17px;padding:0 6px;font-size:.68rem;font-weight:700}.analysis-tab.active .analysis-tab-badge{background:var(--cerulean,#2f66a0);color:#fff}.analysis-tab-panel{padding-top:8px}.analysis-empty{color:var(--panel-soft,#6a84a0);padding:16px 4px;font-size:.85rem}.analysis-tab-panel .analysis-section{border-top:none;margin-top:0;padding-top:0}.auth-splash{min-height:100vh;color:var(--muted);font-family:var(--font-ui);letter-spacing:.02em;justify-content:center;align-items:center;font-size:.95rem;display:flex}.login-screen{min-height:100vh;padding:var(--space-lg);background:var(--bg);justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:380px;padding:var(--space-xl) var(--space-lg);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-elevated);text-align:center}.login-title{margin:0 0 var(--space-xs);font-family:var(--font-display);color:var(--heading);font-size:2rem;font-weight:600}.login-sub{margin:0 0 var(--space-lg);color:var(--muted);font-size:.9rem}.login-form{gap:var(--space-sm);flex-direction:column;display:flex}.login-input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);width:100%;color:var(--body);font-family:var(--font-ui);box-sizing:border-box;padding:11px 14px;font-size:.95rem;transition:border-color .15s}.login-input:focus{border-color:var(--blue-border);outline:none}.login-btn{border-radius:var(--radius-md);background:var(--cerulean,#2f66a0);color:#fff;width:100%;font-family:var(--font-ui);cursor:pointer;border:none;padding:11px 14px;font-size:.9rem;font-weight:600;transition:background .15s}.login-btn:hover:not(:disabled){background:var(--cerulean-dark,#174980)}.login-btn:disabled{opacity:.6;cursor:default}.login-sent{border-radius:var(--radius-md);background:var(--blue-light);color:var(--blue-hover);margin:0;padding:14px;font-size:.9rem;font-weight:600}.login-error{margin:var(--space-xs) 0 0;color:#b0413e;font-size:.82rem}.signout-btn{margin-left:var(--space-sm);border:1px solid var(--border);background:var(--card);min-height:28px;color:var(--muted);font-family:var(--font-ui);letter-spacing:.08em;cursor:pointer;border-radius:999px;padding:0 14px;font-size:.7rem;font-weight:600;transition:all .15s}.signout-btn:hover{color:var(--body);border-color:var(--border-strong)}.quota-badge{color:var(--muted,#7d92a9);background:var(--tint,#f1f4f6);border:1px solid var(--border,#d6e0e8);margin-right:var(--space-sm,10px);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.7rem;font-weight:600}.quota-notice{border-radius:var(--radius-md,10px);background:var(--blue-light,#e7f0f7);border:1px solid var(--blue-border,#afc3d3);color:var(--blue-hover,#174980);flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:12px 16px;font-size:.9rem;display:flex}.quota-notice-pro{font-weight:600}.sample-buttons-container{animation:.4s fadeIn}
