.achievement-page{font-family:var(--ds-font-sans);letter-spacing:var(--ds-ls-body);color:var(--ds-text-primary);padding:0 4px}.achievement-page .top-filters{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:16px;display:flex}.achievement-page .filter-dropdown{width:fit-content;min-width:0;max-width:100%}.achievement-page .filter-dropdown .ant-select-selector{background:var(--ds-bg-surface)!important;border:1px solid var(--ds-border-subtle)!important;border-radius:var(--ds-radius-button)!important;min-height:34px!important;box-shadow:none!important;padding:0 12px!important;transition:border-color .18s,box-shadow .18s!important}.achievement-page .filter-dropdown:hover .ant-select-selector{border-color:var(--ds-border-default)!important}.achievement-page .filter-dropdown .ant-select-selection-item,.achievement-page .filter-dropdown .ant-select-selection-placeholder{font-size:13px;font-weight:var(--ds-fw-medium);color:var(--ds-text-primary);letter-spacing:var(--ds-ls-caption);white-space:nowrap}.achievement-page .filter-dropdown .ant-select-selection-placeholder{color:var(--ds-text-tertiary)}.achievement-page .filter-dropdown.ant-select-focused .ant-select-selector,.achievement-page .filter-dropdown.ant-select-open .ant-select-selector{border-color:var(--ds-accent)!important;box-shadow:0 0 0 3px var(--ds-accent-soft)!important}.filter-dropdown-popup{max-width:min(420px,100vw - 24px);width:max-content!important;min-width:max-content!important}.filter-dropdown-popup .ant-select-item{white-space:nowrap;letter-spacing:var(--ds-ls-caption);font-size:13px}.achievement-page .achievement-cumulative{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);margin-left:auto;font-size:13px}.achievement-page .achievement-cumulative-num{font-weight:var(--ds-fw-semibold);color:var(--ds-text-primary);letter-spacing:-.012em;margin:0 2px}.achievement-page .achievement-empty{text-align:center;background:var(--ds-bg-surface);border-radius:var(--ds-radius-card);box-shadow:var(--ds-shadow-soft);margin-top:16px;padding:60px 20px}.achievement-page .achievement-empty-title{font-size:18px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);margin-bottom:8px}.achievement-page .achievement-empty-desc{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);font-size:14px;line-height:1.5}.achievement-page .overview-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:20px;display:grid}.achievement-page .card{background:var(--ds-bg-surface);border-radius:var(--ds-radius-card);box-shadow:var(--ds-shadow-soft);border:none;padding:24px;transition:box-shadow .2s,transform .2s}.achievement-page .card:hover{box-shadow:var(--ds-shadow-hover);transform:translateY(-2px)}.achievement-page .overview-card-title{font-size:12px;font-weight:var(--ds-fw-medium);color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);margin-bottom:12px}.achievement-page .big-number{font-size:30px;font-weight:var(--ds-fw-semibold);letter-spacing:-.025em;color:var(--ds-text-primary);align-items:baseline;gap:10px;margin-bottom:16px;line-height:1;display:flex}.achievement-page .big-number .percent-text{font-feature-settings:"tnum";line-height:1}.achievement-page .tone-good{color:#16a34a}.achievement-page .tone-mid{color:#d97706}.achievement-page .tone-low{color:#dc2626}.achievement-page .tone-none{color:var(--ds-text-tertiary)}.achievement-page .change-indicator-inline{font-size:12px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);align-items:center;gap:2px;display:inline-flex}.achievement-page .change-positive{color:var(--ds-accent);font-weight:var(--ds-fw-medium)}.achievement-page .change-negative{color:var(--ds-text-tertiary);font-weight:var(--ds-fw-medium)}.achievement-page .change-neutral{color:var(--ds-text-disabled);font-weight:var(--ds-fw-regular)}.achievement-page .progress-bar{background:var(--ds-bg-muted);border-radius:999px;width:100%;height:6px;margin-top:auto;overflow:hidden}.achievement-page .progress-bar-fill{background:var(--ds-accent);border-radius:999px;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.achievement-page .majorunit-card{background:var(--ds-bg-surface);border-radius:var(--ds-radius-card);box-shadow:var(--ds-shadow-soft);border:none;margin-bottom:16px;padding:24px;transition:box-shadow .2s}.achievement-page .majorunit-card:hover{box-shadow:var(--ds-shadow-hover)}.achievement-page .majorunit-header{margin-bottom:8px}.achievement-page .majorunit-title-wrap{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.achievement-page .majorunit-title{font-size:16px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);flex:1;line-height:1.3}.achievement-page .midunits-container{margin-top:16px}.achievement-page .midunit-card{background:var(--ds-bg-canvas);border-radius:var(--ds-radius-button);border:none;margin-bottom:12px;padding:18px 20px}.achievement-page .midunit-card:last-child{margin-bottom:0}.achievement-page .midunit-header{margin-bottom:8px}.achievement-page .midunit-title-wrap{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.achievement-page .midunit-title{font-size:15px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);flex:1;line-height:1.3}.achievement-page .minorunits-container{flex-direction:column;gap:8px;margin-top:12px;display:flex}.achievement-page .minorunit-card{background:var(--ds-bg-surface);border-radius:var(--ds-radius-button);border:none;padding:14px 16px}.achievement-page .minorunit-header{margin-bottom:0}.achievement-page .minorunit-title-wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.achievement-page .minorunit-title{font-size:14px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);color:var(--ds-text-primary);flex-wrap:wrap;flex:1;align-items:center;gap:8px;line-height:1.4;display:flex}.achievement-page .unit-inline-badge{font-size:12px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);border-radius:var(--ds-radius-pill);background:var(--ds-status-neutral-soft);color:var(--ds-text-secondary);white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.achievement-page .unit-inline-badge:before{content:"";background:var(--ds-text-disabled);border-radius:50%;flex-shrink:0;width:5px;height:5px}.achievement-page .unit-inline-badge.tone-good:before{background:#16a34a}.achievement-page .unit-inline-badge.tone-mid:before{background:#d97706}.achievement-page .unit-inline-badge.tone-low:before{background:#dc2626}.achievement-page .unit-metrics{grid-template-columns:1fr 1fr;gap:16px;margin-top:4px;display:grid}.achievement-page .unit-metric-block{flex-direction:column;gap:6px;display:flex}.achievement-page .unit-metric-header{justify-content:space-between;align-items:baseline;display:flex}.achievement-page .unit-metric-label{font-size:12px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);color:var(--ds-text-tertiary)}.achievement-page .unit-metric-value{font-size:14px;font-weight:var(--ds-fw-semibold);letter-spacing:-.012em;color:var(--ds-text-primary)}.achievement-page .unit-metric-value.colored{font-feature-settings:"tnum"}.achievement-page .unit-metric-bar{background:var(--ds-bg-muted);border-radius:999px;width:100%;height:6px;overflow:hidden}.achievement-page .unit-metric-bar-fill{background:var(--ds-accent);border-radius:999px;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.achievement-page .midunit-header .unit-metric-bar,.achievement-page .midunit-header .unit-metric-bar-fill{height:4px}.achievement-page .toggle-btn{border:1px solid var(--ds-border-subtle);border-radius:var(--ds-radius-button);font-size:12px;font-weight:var(--ds-fw-regular);letter-spacing:var(--ds-ls-caption);color:var(--ds-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.achievement-page .toggle-btn:hover{background:var(--ds-status-neutral-soft);border-color:var(--ds-border-default);color:var(--ds-text-primary)}.achievement-page .toggle-btn .chevron{color:var(--ds-text-tertiary);align-items:center;font-size:10px;display:inline-flex}.achievement-page .unit-summary,.achievement-page .subunit-summary{font-size:13px;font-weight:var(--ds-fw-regular);color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);margin-left:4px}.achievement-page .section-card{background:var(--ds-bg-surface);border-radius:var(--ds-radius-card);box-shadow:var(--ds-shadow-soft);border:none;margin-bottom:16px;padding:24px;transition:box-shadow .2s}.achievement-page .section-card:hover{box-shadow:var(--ds-shadow-hover)}.achievement-page .subunits-wrapper{flex-direction:column;gap:12px;margin-top:16px;display:flex}.achievement-page .subunit-card{background:var(--ds-bg-canvas);border-radius:var(--ds-radius-button);border:none;padding:18px 20px}.achievement-page .subunit-header{flex-direction:column;gap:12px;display:flex}.achievement-page .subunit-title-wrap{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;width:100%;display:flex}.achievement-page .subunit-title{font-size:15px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);flex:1;line-height:1.3}.achievement-page .type-categories{flex-direction:column;gap:20px;margin-top:16px;display:flex}.achievement-page .type-category{margin:0}.achievement-page .type-category-header{font-size:13px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);color:var(--ds-text-tertiary);border-bottom:1px solid var(--ds-border-subtle);margin:0 0 10px;padding-bottom:8px}.achievement-page .kc-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px;display:grid}.achievement-page .kc-card{background:var(--ds-bg-subtle);border-radius:var(--ds-radius-button);border:none;flex-direction:column;gap:6px;min-height:120px;padding:14px 16px;transition:background .18s;display:flex}.achievement-page .kc-card:hover{background:var(--ds-bg-canvas)}.achievement-page .kc-card.unevaluated{background:var(--ds-status-neutral-soft);opacity:.75}.achievement-page .kc-row-1{justify-content:space-between;align-items:center;gap:8px;display:flex}.achievement-page .kc-id{font-size:11px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);color:var(--ds-text-tertiary);font-feature-settings:"tnum"}.achievement-page .kc-score-area{align-items:center;gap:6px;display:flex}.achievement-page .kc-score-badge{font-size:12px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-caption);border-radius:var(--ds-radius-pill);background:var(--ds-bg-muted);color:var(--ds-text-secondary);font-feature-settings:"tnum";align-items:center;padding:2px 10px;display:inline-flex}.achievement-page .kc-score-badge.tone-good{color:#16a34a;background:#16a34a1a}.achievement-page .kc-score-badge.tone-mid{color:#d97706;background:#d977061a}.achievement-page .kc-score-badge.tone-low{color:#dc2626;background:#dc26261a}.achievement-page .kc-change-inline{font-size:11px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);align-items:center;display:inline-flex}.achievement-page .badge-unevaluated{background:var(--ds-status-neutral-soft);color:var(--ds-text-tertiary);font-size:12px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);border-radius:var(--ds-radius-pill);align-items:center;padding:2px 10px;display:inline-flex}.achievement-page .kc-row-2{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.achievement-page .kc-numname{font-size:14px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-caption);color:var(--ds-text-primary);flex:1;line-height:1.4}.achievement-page .kc-count{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);font-feature-settings:"tnum";flex-shrink:0;font-size:12px}.achievement-page .kc-desc{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);font-size:12px;line-height:1.5}.achievement-page .kc-unevaluated-text{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);text-align:center;margin-top:auto;padding:6px 0 2px;font-size:12px}.achievement-page .tooltip-wrapper{align-items:center;gap:6px;display:inline-flex;position:relative}.achievement-page .tooltip-icon{background:var(--ds-bg-muted);width:14px;height:14px;color:var(--ds-text-tertiary);font-size:10px;font-weight:var(--ds-fw-semibold);cursor:help;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .18s,color .18s;display:inline-flex}.achievement-page .tooltip-icon:hover{background:var(--ds-text-tertiary);color:var(--ds-text-on-dark)}.achievement-page .tooltip-content{visibility:hidden;opacity:0;background:var(--ds-bg-dark);color:var(--ds-text-on-dark);border-radius:var(--ds-radius-button);font-size:12px;font-weight:var(--ds-fw-regular);letter-spacing:var(--ds-ls-caption);white-space:normal;word-break:keep-all;z-index:1000;width:max-content;max-width:min(280px,100vw - 40px);box-shadow:var(--ds-shadow-soft);pointer-events:none;padding:8px 12px;line-height:1.5;transition:opacity .18s,visibility .18s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.achievement-page .tooltip-content:after{content:"";border:5px solid #0000;border-bottom-color:var(--ds-bg-dark);position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.achievement-page .tooltip-wrapper:hover .tooltip-content{visibility:visible;opacity:1}@media (min-width:768px) and (max-width:1023px){.achievement-page .overview-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.achievement-page .overview-grid,.achievement-page .kc-grid{grid-template-columns:1fr}.achievement-page .unit-metrics{grid-template-columns:1fr;gap:12px}.achievement-page .majorunit-card,.achievement-page .section-card{padding:20px}.achievement-page .midunit-card,.achievement-page .subunit-card{padding:16px}.achievement-page .big-number{font-size:30px}}@media (max-width:475px){.achievement-page .majorunit-title{font-size:16px}.achievement-page .midunit-title,.achievement-page .subunit-title{font-size:14px}.achievement-page .majorunit-card,.achievement-page .section-card{padding:16px}.achievement-page .filter-dropdown .ant-select-selector{min-height:32px!important;padding:0 10px!important}}
:root{--lt-analysis-gutter:24px}.lt-analysis-toggle{cursor:pointer;color:#555;background:0 0;border:none;align-items:center;gap:6px;width:100%;max-width:810px;margin:0 auto;padding:10px 0;font-size:14px;font-weight:600;display:flex}.lt-analysis-root{box-sizing:border-box;width:100%;max-width:810px;min-height:0;padding:var(--lt-analysis-gutter);padding-bottom:calc(var(--lt-analysis-gutter) + env(safe-area-inset-bottom,0px));background:#8180e8;flex-direction:column;align-items:stretch;margin:0 auto;font-family:Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;display:flex;position:relative;overflow-x:hidden}.lt-analysis-banner{box-sizing:border-box;background:#fff;border-radius:42px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:100%;min-height:156px;display:flex}.lt-analysis-title{text-align:center;color:#564fe2;-webkit-text-stroke:1px #564fe2;paint-order:stroke fill;margin:0;font-family:Sandoll Hoyoyo,Pretendard,sans-serif;font-size:52px;font-weight:900;line-height:63px}.lt-analysis-subtitle{box-sizing:border-box;text-align:center;color:#7c79ba;word-break:keep-all;width:100%;max-width:100%;margin:8px 0 0;padding:0 16px;font-size:clamp(12px,2.2vw,17px);font-weight:500;line-height:1.45}.lt-analysis-info-bar{flex-direction:row;flex-shrink:0;align-items:center;gap:16px;width:100%;min-width:0;height:36px;margin-top:28px;display:flex}.lt-analysis-info-item{flex-direction:row;flex:1 1 0;align-items:center;gap:10px;min-width:0;height:36px;display:flex}.lt-analysis-info-label{color:#352e2e;white-space:nowrap;-webkit-text-stroke:.4px #352e2e;paint-order:stroke fill;flex-shrink:0;font-family:Sandoll Hoyoyo,Pretendard,sans-serif;font-size:30px;font-weight:900;line-height:36px}.lt-analysis-info-box{box-sizing:border-box;color:#333;text-overflow:ellipsis;white-space:nowrap;background:#fff;border-radius:10px;justify-content:center;align-items:center;width:100%;min-width:0;max-width:160px;height:36px;padding:6px 12px;font-size:14px;font-weight:500;display:flex;overflow:hidden}.lt-analysis-card{box-sizing:border-box;--lt-card-padding-x:27px;background:#fff;border-radius:36px;flex-shrink:0;width:100%;min-height:503px;margin-top:24px;overflow:visible}.lt-analysis-score-row{margin:28px var(--lt-card-padding-x)0;flex-direction:row;align-items:center;gap:24px;display:flex}.lt-analysis-score-item{flex-direction:row;align-items:center;gap:12px;display:flex}.lt-analysis-score-label{color:#352e2e;-webkit-text-stroke:.4px #352e2e;paint-order:stroke fill;font-family:Sandoll Hoyoyo,Pretendard,sans-serif;font-size:28px;font-weight:900;line-height:34px}.lt-analysis-score-box{box-sizing:border-box;color:#373532;background:#f4f4f6;border-radius:10px;justify-content:center;align-items:center;width:132px;height:49px;padding:10px;font-size:16px;font-weight:600;display:flex}.lt-analysis-table{margin:16px var(--lt-card-padding-x)0;box-sizing:border-box;flex-direction:column;flex-shrink:0;display:flex;overflow:visible}.lt-analysis-table-header{flex-direction:row;flex-shrink:0;width:100%;height:46px;display:flex}.lt-analysis-th{text-align:center;color:#373532;box-sizing:border-box;background:#adaafb;justify-content:center;align-items:center;height:46px;padding:8px 10px;font-size:12px;font-weight:600;line-height:1.3;display:flex}.lt-analysis-th-score{border-radius:15px 0 0;flex:0 0 72px;width:72px}.lt-analysis-th-level{border-left:1px solid #fff;border-right:1px solid #fff;flex:0 0 72px;width:72px}.lt-analysis-th-diagnosis{white-space:normal;overflow-wrap:break-word;word-break:keep-all;border-radius:0 15px 0 0;flex:1 1 0;min-width:0}.lt-analysis-tr{box-sizing:border-box;flex-direction:row;flex-shrink:0;align-items:stretch;width:100%;height:auto;min-height:65px;display:flex}.lt-analysis-tr+.lt-analysis-tr{border-top:1px solid #e3e3e3}.lt-analysis-td{text-align:center;color:#373532;box-sizing:border-box;background:#fff;justify-content:center;align-items:center;height:auto;min-height:65px;padding:6px 10px;font-size:12px;font-weight:600;line-height:15px;display:flex}.lt-analysis-td-score{flex:0 0 72px;width:72px}.lt-analysis-td-level{border-left:1px solid #e3e3e3;border-right:1px solid #e3e3e3;flex:0 0 72px;width:72px}.lt-analysis-td-diagnosis{text-align:left;color:#000;overflow-wrap:break-word;word-break:keep-all;white-space:normal;flex-direction:column;flex:1 1 0;justify-content:flex-start;align-items:flex-start;min-width:0;padding:6px 10px;font-size:11px;line-height:1.4;display:flex}.lt-analysis-diagnosis-title{flex-shrink:0;margin-bottom:4px;font-weight:800;display:block}.lt-analysis-diagnosis-desc{white-space:normal;overflow-wrap:break-word;word-break:keep-all;min-width:0;font-weight:500;display:block}.lt-analysis-tr-active .lt-analysis-td{background:#f5f3ff}.lt-analysis-purple-line{height:0;margin:16px var(--lt-card-padding-x)28px;border-top:3px solid #7c77f9}.lt-analysis-wrong-section{background:#fff;border-radius:36px;flex-shrink:0;width:100%;min-width:0;min-height:246px;margin-top:24px;overflow-x:hidden}.lt-analysis-wrong-header{align-items:flex-end;gap:12px;min-height:33px;margin:29px 40px 0;display:flex}.lt-analysis-wrong-title{color:#474566;-webkit-text-stroke:.4px #474566;paint-order:stroke fill;flex-shrink:0;align-self:flex-start;margin:0;font-family:Sandoll Hoyoyo,Pretendard,sans-serif;font-size:27px;font-weight:900;line-height:33px}.lt-analysis-wrong-separator{border-top:1px solid #000;flex:1;min-width:0;height:0;margin-bottom:10px}.lt-analysis-wrong-desc{color:#85839e;overflow-wrap:break-word;word-break:keep-all;margin:12px 40px 16px;font-size:15px;font-weight:400;line-height:1.45}.lt-analysis-wrong-grid{isolation:isolate;border-radius:9.43px;flex-direction:column;width:calc(100% - 80px);min-width:0;max-width:660px;min-height:132px;margin:0 40px 28px;display:flex;position:relative;overflow:visible}.lt-analysis-wrong-row{flex-direction:row;flex-shrink:0;width:100%;min-width:0;height:33px;display:flex}.lt-analysis-wrong-cell{color:#000;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;background:#f4f4f6;flex:1 1 0;justify-content:center;align-items:center;min-width:0;height:33px;padding:0 2px;font-size:13px;font-weight:500;line-height:17px;display:flex;overflow:hidden}.lt-wrong-mark{background:red;border-radius:50%;flex-shrink:0;width:14.14px;height:14.14px;position:relative}.lt-wrong-mark:before,.lt-wrong-mark:after{content:"";background:#fff;border-radius:.5px;width:1.8px;height:8px;position:absolute;top:50%;left:50%}.lt-wrong-mark:before{transform:translate(-50%,-50%)rotate(45deg)}.lt-wrong-mark:after{transform:translate(-50%,-50%)rotate(-45deg)}.lt-analysis-grid-line{pointer-events:none;z-index:4;border-top:1px solid #dfdfdf;width:100%;height:0;position:absolute;left:0}.lt-analysis-footer{width:calc(100% + 2*var(--lt-analysis-gutter));margin-left:calc(-1*var(--lt-analysis-gutter));margin-right:calc(-1*var(--lt-analysis-gutter));margin-top:24px;margin-bottom:calc(-1*var(--lt-analysis-gutter));min-height:64px;padding:16px clamp(12px,4vw,52px);padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));box-sizing:border-box;background:#2d2d63;flex-shrink:0;justify-content:center;align-items:center;display:flex}.lt-analysis-footer-text{text-align:center;color:#fff;white-space:nowrap;margin:0;font-size:clamp(13px,2.8vw,25px);font-weight:800;line-height:1.4}@media (max-width:1280px){.lt-analysis-title{-webkit-text-stroke:.4px #564fe2;font-size:42px;line-height:1.25}.lt-analysis-info-label{font-size:24px;line-height:1.2}.lt-analysis-info-box{max-width:150px;padding:6px 12px;font-size:13px}.lt-analysis-score-label{font-size:24px;line-height:1.25}.lt-analysis-score-box{font-size:15px}.lt-analysis-wrong-title{font-size:24px;line-height:1.3}.lt-analysis-card{--lt-card-padding-x:22px}}@media (max-width:900px){:root{--lt-analysis-gutter:24px}.lt-analysis-card{--lt-card-padding-x:20px}.lt-analysis-title{font-size:42px;line-height:1.25}.lt-analysis-info-label{font-size:24px}.lt-analysis-info-box{max-width:140px;padding:6px 12px}.lt-analysis-th-score,.lt-analysis-th-level,.lt-analysis-td-score,.lt-analysis-td-level{flex:0 0 64px;width:64px}}@media (max-width:768px){:root{--lt-analysis-gutter:16px}.lt-analysis-card{--lt-card-padding-x:16px}.lt-analysis-title{font-size:36px;line-height:1.25}.lt-analysis-info-label{font-size:20px}.lt-analysis-info-box{max-width:120px;padding:4px 10px;font-size:12px}.lt-analysis-score-label{font-size:22px}.lt-analysis-score-box{width:100px;height:44px;font-size:14px}.lt-analysis-th-score,.lt-analysis-th-level,.lt-analysis-td-score,.lt-analysis-td-level{flex:0 0 56px;width:56px}.lt-analysis-th,.lt-analysis-td{padding:6px 8px;font-size:11px}.lt-analysis-td-diagnosis{padding:6px 8px;font-size:11px;line-height:1.35}.lt-analysis-wrong-header{margin:29px 16px 0}.lt-analysis-wrong-title{font-size:22px}.lt-analysis-wrong-desc{margin:12px 16px 16px;font-size:13px}.lt-analysis-wrong-grid{width:calc(100% - 32px);max-width:none;margin:0 16px 28px}.lt-analysis-wrong-cell{font-size:12px}}@media (max-width:700px){.lt-analysis-info-bar{margin-top:12px}.lt-analysis-card{min-height:400px;margin-top:12px}.lt-analysis-wrong-section{margin-top:12px}.lt-analysis-wrong-header{margin:29px 16px 0}.lt-analysis-wrong-desc{margin:12px 16px 16px}.lt-analysis-wrong-grid{width:calc(100% - 32px);max-width:none;margin:0 16px 28px}.lt-analysis-footer{margin-top:12px}}@media (max-width:480px){:root{--lt-analysis-gutter:12px}.lt-analysis-card{--lt-card-padding-x:12px;min-height:400px;margin-top:12px}.lt-analysis-wrong-section,.lt-analysis-footer{margin-top:12px}.lt-analysis-title{font-size:28px}.lt-analysis-info-bar{flex-wrap:wrap;gap:10px;height:auto;min-height:36px}.lt-analysis-info-item{flex:100%;min-width:100%}.lt-analysis-info-label{flex-shrink:0;width:72px;min-width:72px;font-size:15px}.lt-analysis-info-box{flex:1;min-width:0;max-width:100%;padding:4px 10px;font-size:12px}.lt-analysis-score-label{font-size:18px}.lt-analysis-score-box{width:80px;height:40px;font-size:13px}.lt-analysis-th-score,.lt-analysis-th-level,.lt-analysis-td-score,.lt-analysis-td-level{flex:0 0 40px;width:40px}.lt-analysis-th,.lt-analysis-td{padding:4px;font-size:9px}.lt-analysis-td-diagnosis{min-width:0;padding:4px 6px;font-size:9px;line-height:1.3}.lt-analysis-wrong-section{min-height:260px}.lt-analysis-wrong-header{margin:29px 12px 0}.lt-analysis-wrong-desc{margin:12px 12px 16px;font-size:11px;line-height:1.4}.lt-analysis-wrong-grid{width:calc(100% - 24px);max-width:none;margin:0 12px 24px}.lt-analysis-wrong-cell{padding:2px 4px;font-size:9px;line-height:1.2}}@media (max-width:425px){.lt-analysis-footer-text{white-space:normal;word-break:keep-all}}@media (max-width:360px){.lt-analysis-banner{justify-content:flex-start;height:auto;min-height:120px;padding:20px 16px}.lt-analysis-title{white-space:normal;overflow-wrap:break-word;word-break:keep-all;font-size:24px;line-height:1.3}.lt-analysis-subtitle{white-space:normal;overflow-wrap:break-word;word-break:keep-all;padding:0 8px;line-height:1.4}.lt-analysis-score-row{flex-wrap:wrap;gap:12px}.lt-analysis-score-item{gap:8px;min-width:0}.lt-analysis-score-label{font-size:16px}.lt-analysis-score-box{width:64px;min-width:0;height:36px;padding:6px 4px;font-size:12px}}
.leveltest-tab{font-family:var(--ds-font-sans);letter-spacing:var(--ds-ls-body);color:var(--ds-text-primary);padding:0 4px}.leveltest-filter-card{background:var(--ds-bg-canvas);border-radius:var(--ds-radius-card);border:none;margin-bottom:24px;padding:20px 24px}.leveltest-filter-row{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.leveltest-filter-item{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.leveltest-filter-label{color:var(--ds-text-tertiary);font-size:12px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);flex-shrink:0}.leveltest-subject-badge{font-size:13px;font-weight:var(--ds-fw-semibold);color:var(--ds-text-primary);letter-spacing:var(--ds-ls-caption);background:var(--ds-bg-surface);border-radius:var(--ds-radius-button);box-shadow:none;border:none;padding:4px 12px}.leveltest-loading{text-align:center;padding:60px}.leveltest-empty{text-align:center;color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-body);padding:60px;font-size:15px}.leveltest-list{flex-direction:column;gap:20px;display:flex}.leveltest-card{border-radius:var(--ds-radius-card);background:var(--ds-bg-surface);box-shadow:var(--ds-shadow-soft);border:none;padding:24px 24px 12px;transition:box-shadow .2s,transform .2s}.leveltest-card:hover{box-shadow:var(--ds-shadow-hover);transform:translateY(-2px)}.leveltest-card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.leveltest-card-title-wrap{flex:220px;min-width:0}.leveltest-card-title{font-size:16px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);margin:0;line-height:1.2}.leveltest-card-meta{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);flex-wrap:wrap;gap:4px 10px;margin-top:8px;font-size:13px;display:flex}.leveltest-card-meta>span:not(:last-child):after{content:"·";color:var(--ds-text-disabled);margin-left:10px}.leveltest-status-group{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.leveltest-status-pill{border-radius:var(--ds-radius-pill);background:var(--ds-status-neutral-soft);font-size:12px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);color:var(--ds-text-secondary);flex-shrink:0;align-items:center;gap:6px;padding:4px 10px 4px 8px;line-height:1.4;display:inline-flex}.leveltest-status-dot{background:var(--ds-status-neutral);border-radius:50%;flex-shrink:0;width:6px;height:6px}.leveltest-status-pill--success{background:var(--ds-status-success-soft);color:var(--ds-status-success)}.leveltest-status-pill--success .leveltest-status-dot{background:var(--ds-status-success)}.leveltest-status-pill--accent{background:var(--ds-accent-soft);color:var(--ds-accent)}.leveltest-status-pill--accent .leveltest-status-dot{background:var(--ds-accent)}.leveltest-status-pill--warning{background:var(--ds-status-warning-soft);color:var(--ds-status-warning)}.leveltest-status-pill--warning .leveltest-status-dot{background:var(--ds-status-warning)}.leveltest-status-pill--danger{background:var(--ds-status-danger-soft);color:var(--ds-status-danger)}.leveltest-status-pill--danger .leveltest-status-dot{background:var(--ds-status-danger)}.leveltest-status-pill--accent .leveltest-status-dot.leveltest-dot-spin{animation:1.2s ease-in-out infinite leveltest-dot-pulse}@keyframes leveltest-dot-pulse{0%,to{opacity:1}50%{opacity:.35}}.leveltest-recent-result{background:var(--ds-bg-canvas);border-radius:var(--ds-radius-button);margin-bottom:8px;padding:12px 4px 12px 20px}.leveltest-recent-meta-row{margin-bottom:10px}.leveltest-recent-attempt{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);font-size:12px;font-weight:var(--ds-fw-medium)}.leveltest-recent-score-row{flex-wrap:wrap;align-items:baseline;gap:20px;min-width:0;display:flex}.leveltest-score-block{flex-shrink:0;align-items:baseline;gap:6px;display:flex}.leveltest-score-primary{font-size:26px;font-weight:var(--ds-fw-semibold);letter-spacing:-.025em;color:var(--ds-text-primary);line-height:1}.leveltest-score-suffix{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);font-size:14px;font-weight:var(--ds-fw-regular)}.leveltest-score-detail-group{flex-wrap:wrap;gap:14px;min-width:0;display:flex}.leveltest-score-detail{color:var(--ds-text-secondary);letter-spacing:var(--ds-ls-caption);font-size:13px}.leveltest-recent-actions{flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex}.leveltest-previous-list{border-top:1px solid var(--ds-border-subtle);margin-top:8px;margin-bottom:8px;padding-top:12px}.leveltest-previous-title{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);font-size:12px;font-weight:var(--ds-fw-medium);margin-bottom:8px}.leveltest-previous-row{border-bottom:1px solid var(--ds-border-subtle);letter-spacing:var(--ds-ls-caption);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 4px;font-size:13px;display:flex}.leveltest-previous-row:last-child{border-bottom:none}.leveltest-previous-meta{color:var(--ds-text-secondary);flex-wrap:wrap;align-items:baseline;gap:16px;min-width:0;display:flex}.leveltest-previous-num{font-weight:var(--ds-fw-semibold);color:var(--ds-text-primary);min-width:28px}.leveltest-previous-date{color:var(--ds-text-tertiary)}.leveltest-previous-score{color:var(--ds-text-primary);font-weight:var(--ds-fw-medium)}.leveltest-teacher-note{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);padding:8px 0;font-size:13px}.leveltest-card-actions{border-top:1px solid var(--ds-border-subtle);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;padding-top:8px;display:flex}.leveltest-action-secondary.ant-btn{color:var(--ds-text-secondary)}.leveltest-action-secondary.ant-btn:hover{color:var(--ds-text-primary);background:var(--ds-status-neutral-soft)}
.mockexam-tab{font-family:var(--ds-font-sans);letter-spacing:var(--ds-ls-body);color:var(--ds-text-primary);padding:0 4px}.mockexam-filter-card{background:var(--ds-bg-canvas);border-radius:var(--ds-radius-card);border:none;margin-bottom:20px;padding:14px 18px}.mockexam-filter-row{flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:10px;display:flex}.mockexam-filter-row:last-child{margin-bottom:0}.mockexam-filter-row-months{justify-content:space-between;align-items:center}.mockexam-search-btn{flex-shrink:0;margin-left:auto}.mockexam-filter-item{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mockexam-filter-item-months{align-items:center}.mockexam-filter-label{color:var(--ds-text-tertiary);font-size:12px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);text-transform:none;flex-shrink:0}.mockexam-subject-badge{font-size:13px;font-weight:var(--ds-fw-semibold);color:var(--ds-text-primary);letter-spacing:var(--ds-ls-caption);background:var(--ds-bg-surface);border-radius:var(--ds-radius-button);box-shadow:none;border:none;padding:4px 12px}.mockexam-year-tilde{color:var(--ds-text-tertiary);font-weight:var(--ds-fw-regular)}.mockexam-toggle-all{color:var(--ds-accent-link);cursor:pointer;letter-spacing:var(--ds-ls-caption);background:0 0;border:none;padding:2px 6px;font-size:12px}.mockexam-toggle-all:hover:not(:disabled){text-decoration:underline}.mockexam-toggle-all:disabled{color:var(--ds-text-disabled);cursor:not-allowed}.mockexam-loading{text-align:center;padding:60px}.mockexam-empty{text-align:center;color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-body);padding:60px;font-size:15px}.mockexam-list{flex-direction:column;gap:20px;display:flex}.mockexam-card{border-radius:var(--ds-radius-card);background:var(--ds-bg-surface);box-shadow:var(--ds-shadow-soft);border:none;padding:24px 24px 16px;transition:box-shadow .2s,transform .2s}.mockexam-card:hover{box-shadow:var(--ds-shadow-hover);transform:translateY(-2px)}.mockexam-card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.mockexam-card-title-wrap{flex:220px;min-width:0}.mockexam-card-title{font-size:16px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);margin:0;line-height:1.2}.mockexam-card-meta{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);flex-wrap:wrap;gap:4px 10px;margin-top:8px;font-size:13px;display:flex}.mockexam-card-meta>span:not(:last-child):after{content:"·";color:var(--ds-text-disabled);margin-left:10px}.mockexam-status-pill{border-radius:var(--ds-radius-pill);background:var(--ds-status-neutral-soft);font-size:12px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);color:var(--ds-text-secondary);flex-shrink:0;align-items:center;gap:6px;padding:4px 10px 4px 8px;line-height:1.4;display:inline-flex}.mockexam-status-dot{background:var(--ds-status-neutral);border-radius:50%;flex-shrink:0;width:6px;height:6px}.mockexam-status-pill--success{background:var(--ds-status-success-soft);color:var(--ds-status-success)}.mockexam-status-pill--success .mockexam-status-dot{background:var(--ds-status-success)}.mockexam-status-pill--accent{background:var(--ds-accent-soft);color:var(--ds-accent)}.mockexam-status-pill--accent .mockexam-status-dot{background:var(--ds-accent)}.mockexam-recent-result{background:var(--ds-bg-canvas);border-radius:var(--ds-radius-button);margin-bottom:8px;padding:12px 4px 12px 20px}.mockexam-recent-meta-row{margin-bottom:10px}.mockexam-recent-attempt{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);font-size:12px;font-weight:var(--ds-fw-medium)}.mockexam-recent-actions{flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex}.mockexam-recent-score-row{flex-wrap:wrap;align-items:baseline;gap:20px;min-width:0;display:flex}.mockexam-score-block{flex-shrink:0;align-items:baseline;gap:6px;display:flex}.mockexam-score-primary{font-size:26px;font-weight:var(--ds-fw-semibold);letter-spacing:-.025em;color:var(--ds-text-primary);line-height:1}.mockexam-score-suffix{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);font-size:14px;font-weight:var(--ds-fw-regular)}.mockexam-score-detail-group{flex-wrap:wrap;gap:14px;min-width:0;display:flex}.mockexam-score-detail{color:var(--ds-text-secondary);letter-spacing:var(--ds-ls-caption);font-size:13px}.mockexam-detail-summary{flex-wrap:wrap;gap:16px;margin-bottom:24px;display:flex}.mockexam-summary-card{background:var(--ds-bg-canvas);border-radius:var(--ds-radius-card);text-align:center;flex:1;min-width:140px;padding:22px 18px}.mockexam-summary-value{font-size:32px;font-weight:var(--ds-fw-semibold);letter-spacing:-.025em;color:var(--ds-text-primary);line-height:1}.mockexam-summary-value.accent{color:var(--ds-accent)}.mockexam-summary-label{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);font-size:12px;font-weight:var(--ds-fw-medium);margin-top:8px}.mockexam-previous-list{border-top:1px solid var(--ds-border-subtle);margin-top:8px;margin-bottom:8px;padding-top:12px}.mockexam-previous-title{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);font-size:12px;font-weight:var(--ds-fw-medium);margin-bottom:8px}.mockexam-previous-row{border-bottom:1px solid var(--ds-border-subtle);letter-spacing:var(--ds-ls-caption);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 4px;font-size:13px;display:flex}.mockexam-previous-row:last-child{border-bottom:none}.mockexam-previous-meta{color:var(--ds-text-secondary);flex-wrap:wrap;align-items:baseline;gap:16px;min-width:0;display:flex}.mockexam-previous-num{font-weight:var(--ds-fw-semibold);color:var(--ds-text-primary);min-width:28px}.mockexam-previous-date{color:var(--ds-text-tertiary)}.mockexam-previous-score{color:var(--ds-text-primary);font-weight:var(--ds-fw-medium)}.mockexam-card-actions{border-top:1px solid var(--ds-border-subtle);justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;padding-top:8px;display:flex}.mockexam-action-secondary.ant-btn{color:var(--ds-text-secondary)}.mockexam-action-secondary.ant-btn:hover{color:var(--ds-text-primary);background:var(--ds-status-neutral-soft)}
.feedback-page{max-width:960px;font-family:var(--ds-font-sans);letter-spacing:var(--ds-ls-body);color:var(--ds-text-primary);margin:0 auto;padding:24px}.feedback-page--embedded{max-width:none;margin:0;padding:0}.feedback-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.feedback-header-left{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.feedback-header-title{font-size:20px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);margin:0;line-height:1.2}.feedback-header-meta{color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-caption);flex-wrap:wrap;gap:4px 10px;font-size:13px;display:flex}.feedback-header-meta>span:not(:last-child):after{content:"·";color:var(--ds-text-disabled);margin-left:10px}.feedback-card.ant-card{border-radius:var(--ds-radius-card);background:var(--ds-bg-surface);box-shadow:var(--ds-shadow-soft);border:none;transition:box-shadow .2s}.feedback-card.ant-card:hover{box-shadow:var(--ds-shadow-hover)}.feedback-card.ant-card .ant-card-body{padding:24px}.feedback-card--embedded.ant-card,.feedback-card--embedded.ant-card:hover{box-shadow:none}.feedback-card-title{font-size:18px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);border-bottom:1px solid var(--ds-border-subtle);margin:0 0 16px;padding-bottom:16px;line-height:1.2}.feedback-body{font-size:14px;font-weight:var(--ds-fw-regular);letter-spacing:var(--ds-ls-body);color:var(--ds-text-primary);overflow-wrap:anywhere;word-break:break-word;line-height:1.7}.feedback-body strong,.feedback-body b{font-weight:var(--ds-fw-semibold);color:var(--ds-text-primary)}.feedback-body h1{font-size:20px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);margin:20px 0 8px;line-height:1.25}.feedback-body h2{font-size:17px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);margin:18px 0 8px;line-height:1.3}.feedback-body h3{font-size:15px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);margin:16px 0 6px;line-height:1.35}.feedback-body h4{font-size:14px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-caption);color:var(--ds-text-primary);margin:14px 0 6px;line-height:1.4}.feedback-body p{white-space:pre-wrap;margin:8px 0}.feedback-body ul{margin:8px 0 8px 4px;padding-left:20px;list-style-type:disc}.feedback-body ol{margin:8px 0 8px 4px;padding-left:20px;list-style-type:decimal}.feedback-body li{margin:3px 0;display:list-item}.feedback-body li::marker{color:var(--ds-text-tertiary)}.feedback-body a{color:var(--ds-accent-link);text-decoration:none}.feedback-body a:hover{text-decoration:underline}.feedback-body hr{border:0;border-top:1px solid var(--ds-border-subtle);margin:20px 0}.feedback-body blockquote{background:var(--ds-bg-canvas);border-left:4px solid var(--ds-accent);border-radius:0 var(--ds-radius-button)var(--ds-radius-button)0;color:var(--ds-text-secondary);margin:12px 0;padding:12px 16px}.feedback-body blockquote p{margin:0}.feedback-body code.feedback-inline-code{background:var(--ds-bg-canvas);color:var(--ds-text-primary);border-radius:var(--ds-radius-micro);white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:baseline;max-width:100%;padding:1px 6px;font-size:.92em;display:inline-block}.feedback-body pre.feedback-code-block{background:var(--ds-bg-canvas);border-radius:var(--ds-radius-button);margin:12px 0;padding:14px 16px;font-size:13px;line-height:1.55;overflow-x:auto}.feedback-body pre.feedback-code-block code{color:var(--ds-text-primary);background:0 0;padding:0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.feedback-table-wrap{margin:12px 0;overflow-x:auto}.feedback-body table{border-collapse:collapse;width:100%;font-size:14px}.feedback-body th{text-align:left;background:var(--ds-bg-canvas);border-bottom:1px solid var(--ds-border-default);font-weight:var(--ds-fw-semibold);color:var(--ds-text-primary);letter-spacing:var(--ds-ls-caption);padding:8px 12px}.feedback-body td{border-bottom:1px solid var(--ds-border-subtle);color:var(--ds-text-secondary);padding:8px 12px}.feedback-body tr:last-child td{border-bottom:none}.feedback-empty{text-align:center;color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-body);padding:60px 20px;font-size:15px;line-height:1.5}.feedback-empty-processing{color:var(--ds-text-secondary)}.feedback-send-button-row{justify-content:flex-end;margin-bottom:16px;display:flex}
.wizard-container{background:#f7f9fe;border:1px solid #e9edf5;border-radius:10px;margin-bottom:20px;overflow:hidden}.wizard-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:14px 20px;transition:background .2s;display:flex}.wizard-header:hover{background:#eef2fb}.wizard-header-left{align-items:center;gap:8px;display:flex}.wizard-header-title{color:#27364b;font-size:15px;font-weight:600}.wizard-header-badge{color:#8b5ff1;background:#f0e8ff;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.wizard-toggle-icon{color:#94a3b8;font-size:12px;transition:transform .2s}.wizard-toggle-icon.expanded{transform:rotate(180deg)}.wizard-body{padding:0 20px 20px}.wizard-upload-notice{color:#64748b;background:#fff;border:1px solid #e9edf5;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.wizard-breadcrumb{background:#fff;border:1px solid #e9edf5;border-radius:8px;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:16px;padding:10px 14px;display:flex}.wizard-breadcrumb-locked{color:#94a3b8;background:#f1f5f9;border-radius:6px;align-items:center;padding:4px 10px;font-size:13px;font-weight:500;display:inline-flex}.wizard-breadcrumb-tag{color:#8b5ff1;cursor:pointer;background:#f0e8ff;border:none;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.wizard-breadcrumb-tag:hover{background:#e0d0ff}.wizard-breadcrumb-separator{color:#cbd5e1;margin:0 2px;font-size:12px}.wizard-step{animation:.2s wizardFadeIn}@keyframes wizardFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.wizard-step-title{color:#27364b;margin-bottom:12px;font-size:14px;font-weight:600}.wizard-step-description{color:#64748b;margin-bottom:12px;font-size:13px}.wizard-card-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.wizard-card-grid.two-cols{grid-template-columns:repeat(2,1fr)}.wizard-card-grid.three-cols{grid-template-columns:repeat(3,1fr)}.wizard-card{cursor:pointer;text-align:center;background:#fff;border:1px solid #e9edf5;border-radius:8px;padding:14px 16px;transition:all .2s}.wizard-card:hover{border-color:#8b5ff1;box-shadow:0 2px 8px #8b5ff126}.wizard-card.selected{background:#f7f2ff;border-color:#8b5ff1}.wizard-card.muted{background:#f8fafc;border-style:dashed}.wizard-card.muted .wizard-card-label{color:#94a3b8}.wizard-card-label{color:#27364b;font-size:14px;font-weight:600}.wizard-card-sub{color:#8b5ff1;margin-top:2px;font-size:11px;font-weight:500}.wizard-level-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.wizard-level-card{text-align:center;cursor:pointer;background:#fff;border:1px solid #e9edf5;border-radius:10px;padding:16px 12px;transition:all .2s}.wizard-level-card:hover{border-color:#8b5ff1;box-shadow:0 2px 8px #8b5ff126}.wizard-level-card.selected{background:#f7f2ff;border-color:#8b5ff1}.wizard-level-icon{margin-bottom:6px;font-size:28px}.wizard-level-name{color:#27364b;margin-bottom:4px;font-size:13px;font-weight:700}.wizard-level-desc{color:#94a3b8;font-size:11px;line-height:1.5}.wizard-results{flex-direction:column;gap:8px;max-height:320px;display:flex;overflow-y:auto}.wizard-result-card{background:#fff;border:1px solid #e9edf5;border-radius:8px;padding:12px 16px;transition:box-shadow .2s}.wizard-result-card:hover{box-shadow:0 2px 8px #0000000f}.wizard-result-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.wizard-result-title{color:#27364b;flex:1;font-size:13px;font-weight:600}.wizard-result-badges{flex-shrink:0;gap:6px;display:flex}.wizard-badge{border-radius:4px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.wizard-badge.cls-sub{color:#0958d9;background:#f0f7ff}.wizard-badge.cls-big{color:#0d9488;background:#f0fdfa}.wizard-badge.cls-exam{color:#059669;background:#ecfdf5}.wizard-badge.cls-review{color:#d97706;background:#fffbeb}.wizard-badge.cls-vocab{color:#9333ea;background:#faf5ff}.wizard-badge.cls-text{color:#0d9488;background:#f0fdfa}.wizard-badge.cls-grammar{color:#ea580c;background:#fff7ed}.wizard-badge.cls-problem{color:#dc2626;background:#fef2f2}.wizard-badge.cls-default{color:#64748b;background:#f1f5f9}.wizard-badge.lvl-low{color:#2563eb;background:#eff6ff}.wizard-badge.lvl-mid{color:#ca8a04;background:#fefce8}.wizard-badge.lvl-high{color:#ea580c;background:#fff7ed}.wizard-badge.lvl-top{color:#dc2626;background:#fef2f2}.wizard-badge.lvl-all{color:#64748b;background:#f1f5f9}.wizard-result-scope{color:#94a3b8;margin-top:4px;font-size:11px}.wizard-autograding-notice{color:#389e0d;background:#f0fff4;border:1px solid #b7eb8f;border-radius:8px;align-items:center;gap:8px;margin-bottom:10px;padding:10px 14px;font-size:13px;display:flex}.wizard-autograding-notice-icon{font-size:14px;font-weight:700}.wizard-result-card.autogradeable{border-left:3px solid #52c41a}.wizard-badge.autograde{color:#389e0d;background:#f0fff4;border:1px solid #b7eb8f}.wizard-empty{text-align:center;color:#94a3b8;padding:24px 16px;font-size:14px}.wizard-empty-icon{margin-bottom:8px;font-size:32px;display:block}.wizard-actions{justify-content:center;gap:10px;margin-top:16px;display:flex}.wizard-btn-reset{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e9edf5;border-radius:6px;padding:8px 20px;font-size:13px;font-weight:500;transition:all .2s}.wizard-btn-reset:hover{color:#27364b;background:#f7f9fe;border-color:#cbd5e1}.guide-overlay{z-index:1100;background:#0006;justify-content:center;align-items:center;animation:.15s guideFadeIn;display:flex;position:fixed;inset:0}@keyframes guideFadeIn{0%{opacity:0}to{opacity:1}}.guide-modal{background:#fff;border-radius:14px;width:90%;max-width:480px;max-height:85vh;padding:24px;overflow-y:auto;box-shadow:0 20px 60px #00000026}.guide-modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.guide-modal-title{color:#27364b;font-size:16px;font-weight:700}.guide-modal-close{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:all .2s;display:flex}.guide-modal-close:hover{color:#27364b;background:#e2e8f0}.guide-material-info{background:#f7f9fe;border:1px solid #e9edf5;border-radius:8px;align-items:center;gap:8px;margin-bottom:20px;padding:10px 14px;display:flex}.guide-material-name{color:#27364b;flex:1;font-size:13px;font-weight:600}.guide-step{gap:12px;margin-bottom:18px;display:flex}.guide-step-num{color:#fff;background:#8b5ff1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-top:1px;font-size:12px;font-weight:700;display:flex}.guide-step-content{flex:1}.guide-step-text{color:#27364b;margin-bottom:10px;font-size:14px;line-height:1.6}.guide-path-box{background:#1e293b;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;padding:16px;display:flex}.guide-path-platform{color:#93c5fd;background:#93c5fd1f;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:700}.guide-path-item{align-items:center;gap:6px;display:inline-flex}.guide-path-arrow{color:#475569;font-size:14px;font-weight:700}.guide-path-tag{background:#ffffff14;border:1px solid #ffffff1a;border-radius:6px;flex-direction:column;gap:1px;padding:5px 10px;display:inline-flex}.guide-path-label{color:#94a3b8;font-size:10px;font-weight:500}.guide-path-value{color:#fbbf24;font-size:13px;font-weight:600}.guide-note{color:#64748b;background:#f8fafc;border:1px solid #e9edf5;border-radius:8px;margin-bottom:8px;padding:10px 14px;font-size:12px;line-height:1.6}.guide-note.highlight{color:#389e0d;background:#f0fff4;border-color:#b7eb8f}.guide-footer{border-top:1px solid #f1f5f9;margin-top:4px;padding-top:12px}.guide-footer-legal{color:#94a3b8;margin:0;font-size:11px;line-height:1.5}.guide-footer-tip{color:#a78bfa;margin:4px 0 0;font-size:11px;line-height:1.5}@media (max-width:768px){.wizard-card-grid,.wizard-level-grid{grid-template-columns:repeat(2,1fr)}.wizard-result-header{flex-direction:column;align-items:flex-start}.wizard-result-badges{margin-top:4px}}@media (max-width:475px){.guide-modal{border-radius:12px;padding:18px}.guide-path-box{padding:12px}.guide-path-value{font-size:12px}.wizard-container{border-radius:8px}.wizard-header{padding:12px 14px}.wizard-body{padding:0 14px 14px}.wizard-card-grid{grid-template-columns:1fr 1fr;gap:8px}.wizard-level-grid{grid-template-columns:repeat(2,1fr);gap:8px}.wizard-card{padding:10px 12px}.wizard-card-label{font-size:13px}.wizard-breadcrumb{gap:3px;padding:8px 10px}.wizard-breadcrumb-tag,.wizard-breadcrumb-locked{padding:3px 8px;font-size:12px}.wizard-level-card{padding:12px 8px}.wizard-level-icon{font-size:22px}.wizard-level-name{font-size:12px}.wizard-level-desc{font-size:10px}}
*{box-sizing:border-box;margin:0;padding:0}.assignments-page{-webkit-overflow-scrolling:touch;background:var(--ds-bg-surface);width:100%;height:100dvh;font-family:var(--ds-font-sans);letter-spacing:var(--ds-ls-body);color:var(--ds-text-primary);overflow:hidden auto}.app-header{background:var(--ds-bg-surface);border-bottom:1px solid var(--ds-border-subtle);width:100%;height:76px}.header-content{align-items:center;max-width:834px;height:100%;margin:0 auto;padding:0 16px;display:flex}.logo-section{align-items:center;gap:12px;display:flex}.logo-image{object-fit:contain;justify-content:center;align-items:center;max-width:120%;height:64px;max-height:120%;padding:0;display:flex;transform:scale(1)}.header-title{font-size:20px;font-weight:var(--ds-fw-semibold);color:var(--ds-text-primary);letter-spacing:-.022em;line-height:1.2}.page-content{max-width:834px;margin:0 auto;padding:16px 25px 24px}.menu-tabs{border-bottom:1px solid var(--ds-border-subtle);flex-wrap:wrap;align-items:center;gap:4px 0;margin-bottom:28px;display:flex}.menu-tab{white-space:nowrap;min-width:fit-content;height:40px;color:var(--ds-text-tertiary);font-size:15px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-heading);cursor:pointer;line-height:1.2;font-family:var(--ds-font-sans);background:0 0;border:none;border-bottom:2px solid #0000;flex:auto;margin-bottom:-1px;padding:0 18px;transition:color .2s,border-color .2s}.menu-tab.active{color:var(--ds-text-primary);font-weight:var(--ds-fw-semibold);border-bottom-color:var(--ds-accent)}.menu-tab:hover:not(.active){color:var(--ds-text-secondary)}.menu-tab-divider{background:var(--ds-border-subtle);border-radius:1px;flex-shrink:0;align-self:center;width:1px;height:16px;margin:0 8px}.content-container{border-radius:var(--ds-radius-card);background:0 0;border:none;padding:0}.content-inner{width:100%}.filter-row{align-items:center;gap:16px;margin-bottom:16px;display:flex}.select-wrapper{flex:none;width:fit-content;position:relative}.round-select{width:auto;min-width:0}.round-select .ant-select-selector{border:1px solid var(--ds-border-default)!important;border-radius:var(--ds-radius-button)!important;height:32px!important;box-shadow:none!important;padding:0 12px!important}.round-select .ant-select-selection-wrap{align-items:center}.round-select .ant-select-selection-item{font-size:13px;font-weight:var(--ds-fw-regular);color:var(--ds-text-primary);letter-spacing:var(--ds-ls-caption);line-height:1.6}.round-select.ant-select-focused .ant-select-selector,.round-select.ant-select-open .ant-select-selector{border-color:var(--ds-accent)!important}.round-select-popup .ant-select-item{font-size:13px}.custom-select{border:1px solid var(--ds-border-default);border-radius:var(--ds-radius-button);background:var(--ds-bg-surface);width:115px;height:32px;font-size:13px;font-weight:var(--ds-fw-regular);color:var(--ds-text-primary);letter-spacing:var(--ds-ls-caption);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 6L8 10L12 6\" stroke=\"%2394a3b8\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding:0 36px 0 12px;line-height:1.6}.custom-select option{font-size:inherit}.custom-select:focus{border-color:var(--ds-accent);outline:none}.custom-select.disabled,.custom-select:disabled{background:var(--ds-bg-muted);color:var(--ds-text-disabled);cursor:not-allowed}.date-info{letter-spacing:var(--ds-ls-caption);align-items:center;gap:8px;font-size:13px;line-height:1.6;display:flex}.date-label{color:var(--ds-text-tertiary);font-weight:var(--ds-fw-regular)}.date-value{color:var(--ds-text-secondary);font-weight:var(--ds-fw-regular)}.date-separator{color:var(--ds-text-tertiary)}.divider-line{background:var(--ds-border-subtle);width:100%;height:1px;margin:16px 0}.progress-section{width:100%}.progress-header{background:var(--ds-bg-canvas);border-radius:var(--ds-radius-button);flex-wrap:nowrap;justify-content:space-between;align-items:center;margin-bottom:20px;padding:14px 18px;display:flex}.progress-info{flex:1;align-items:center;gap:12px;display:flex}.progress-label{color:var(--ds-text-secondary);font-size:13px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);white-space:nowrap;line-height:1.6}.progress-bar-container{flex:1;max-width:339px}.progress-bar{background:var(--ds-bg-muted);border-radius:var(--ds-radius-pill);width:100%;height:6px;overflow:hidden}.progress-fill{background:var(--ds-accent);border-radius:var(--ds-radius-pill);height:100%;transition:width .3s}.progress-percentage{color:var(--ds-text-primary);font-size:13px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-caption);white-space:nowrap;line-height:1.6}.achievement-link-btn{border-radius:var(--ds-radius-button);height:28px;color:var(--ds-accent-link);font-size:13px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);cursor:pointer;white-space:nowrap;background:0 0;border:none;margin-left:auto;padding:0 12px;line-height:1.6;transition:color .2s,background .2s}.achievement-link-btn:hover{background:var(--ds-accent-soft);color:var(--ds-accent)}.assignment-list{flex-direction:column;gap:20px;display:flex}.assignment-section{border-radius:var(--ds-radius-card);background:var(--ds-bg-surface);box-shadow:var(--ds-shadow-soft);border:none;flex-direction:column;gap:12px;margin-bottom:0;padding:24px;transition:box-shadow .2s,transform .2s;display:flex}.assignment-section:hover{box-shadow:var(--ds-shadow-hover);transform:translateY(-2px)}.assignment-section:last-of-type{margin-bottom:0}.auto-grade-section:hover,.manual-grade-section:hover{box-shadow:var(--ds-shadow-hover)}.section-header{border-bottom:1px solid var(--ds-border-subtle);align-items:center;gap:10px;margin-bottom:8px;padding-bottom:16px;display:flex}.section-icon{border-radius:var(--ds-radius-button);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.auto-grade-icon{background:var(--ds-accent-soft);color:var(--ds-accent)}.manual-grade-icon{background:var(--ds-status-neutral-soft);color:var(--ds-text-secondary)}.section-title-wrapper{flex:1;align-items:center;gap:6px;display:flex}.section-title{font-size:18px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);color:var(--ds-text-primary);margin:0;line-height:1.2}.section-badge{font-size:12px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);border-radius:var(--ds-radius-pill);background:var(--ds-status-neutral-soft);color:var(--ds-text-secondary);padding:3px 10px;line-height:1.4}.auto-grade-badge,.manual-grade-badge{background:var(--ds-status-neutral-soft);color:var(--ds-text-secondary)}.section-tooltip{align-items:center;display:inline-flex;position:relative}.section-tooltip .tooltip-icon{background:var(--ds-bg-muted);width:16px;height:16px;color:var(--ds-text-tertiary);font-size:11px;font-weight:var(--ds-fw-semibold);cursor:help;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,color .2s;display:inline-flex}.section-tooltip .tooltip-icon:hover{background:var(--ds-text-secondary);color:var(--ds-text-on-dark)}.section-tooltip .tooltip-content{visibility:hidden;opacity:0;background:var(--ds-bg-dark);color:var(--ds-text-on-dark);border-radius:var(--ds-radius-button);font-size:13px;font-weight:var(--ds-fw-regular);letter-spacing:var(--ds-ls-caption);white-space:normal;word-wrap:break-word;word-break:keep-all;overflow-wrap:break-word;z-index:1000;width:fit-content;min-width:220px;max-width:300px;box-shadow:var(--ds-shadow-soft);pointer-events:none;padding:10px 14px;line-height:1.5;transition:opacity .2s,visibility .2s;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.section-tooltip .tooltip-content:after{content:"";border:6px solid #0000;border-right-color:var(--ds-bg-dark);position:absolute;top:50%;right:100%;transform:translateY(-50%)}.section-tooltip:hover .tooltip-content{visibility:visible;opacity:1}.assignment-item{border-radius:var(--ds-radius-button);background:var(--ds-bg-canvas);border:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:14px 16px;transition:background .2s;display:flex}.assignment-item:hover{background:var(--ds-bg-muted);box-shadow:none;transform:none}.auto-grade-section .assignment-item,.manual-grade-section .assignment-item{background:var(--ds-bg-canvas);border-color:#0000}.auto-grade-section .assignment-item:hover,.manual-grade-section .assignment-item:hover{background:var(--ds-bg-muted);box-shadow:none;border-color:#0000}.assignment-item .status-label{flex-shrink:0}.assignment-name{min-width:0;font-size:15px;font-weight:var(--ds-fw-medium);color:var(--ds-text-primary);letter-spacing:var(--ds-ls-body);-webkit-line-clamp:2;text-overflow:ellipsis;word-break:break-word;-webkit-box-orient:vertical;flex:auto;margin-left:4px;line-height:1.4;display:-webkit-box;overflow:hidden}.assignment-actions{flex-shrink:0;justify-content:flex-end;align-items:center;margin-left:auto;display:flex}.action-buttons{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.btn-primary{border:1px solid var(--ds-accent);border-radius:var(--ds-radius-button);background:var(--ds-accent);height:32px;color:var(--ds-text-on-dark);font-size:13px;font-weight:var(--ds-fw-regular);letter-spacing:var(--ds-ls-caption);cursor:pointer;padding:0 14px;line-height:1.6;transition:background .2s,border-color .2s}.btn-primary:hover{background:var(--ds-accent-hover);border-color:var(--ds-accent-hover)}.btn-primary:active{background:var(--ds-accent-active);border-color:var(--ds-accent-active)}.btn-primary.btn-primary-warning{background:var(--ds-status-warning);border-color:var(--ds-status-warning);color:var(--ds-text-on-dark)}.btn-primary.btn-primary-warning:hover{background:var(--ds-status-warning);border-color:var(--ds-status-warning);filter:brightness(1.05)}.btn-secondary{border:1px solid var(--ds-border-default);border-radius:var(--ds-radius-button);background:var(--ds-bg-surface);height:32px;color:var(--ds-text-primary);font-size:13px;font-weight:var(--ds-fw-regular);letter-spacing:var(--ds-ls-caption);cursor:pointer;padding:0 14px;line-height:1.6;transition:background .2s,border-color .2s}.btn-secondary:hover:not(.disabled){background:var(--ds-bg-canvas);border-color:var(--ds-border-strong)}.btn-secondary.disabled{background:var(--ds-bg-subtle);border-color:var(--ds-border-subtle);color:var(--ds-text-disabled);cursor:not-allowed}.status-label{border-radius:var(--ds-radius-pill);height:22px;font-size:12px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);white-space:nowrap;background:var(--ds-status-neutral-soft);min-width:48px;color:var(--ds-text-secondary);justify-content:center;align-items:center;padding:0 10px;line-height:1.4;display:inline-flex}.status-label.pending{background:var(--ds-status-neutral-soft);color:var(--ds-text-secondary)}.status-label.completed,.auto-grade-section .status-label.completed,.manual-grade-section .status-label.completed{background:var(--ds-accent-soft);color:var(--ds-accent)}.status-label.grading{background:var(--ds-status-warning-soft);color:var(--ds-status-warning)}.btn-icon-delete{border-radius:var(--ds-radius-button);width:32px;height:32px;color:var(--ds-text-tertiary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .2s,color .2s;display:flex}.btn-icon-delete:hover{background:var(--ds-status-danger-soft);color:var(--ds-status-danger)}.form-section{margin-bottom:24px}.form-row{gap:16px;margin-bottom:24px;display:flex}.form-row.triple{gap:16px}.form-field{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.form-row:not(.triple) .form-field{max-width:320px}.field-label{color:#27364b;font-size:13px;font-weight:400;line-height:20.8px}.file-upload-section{margin-top:24px}.file-upload-btn{color:#fff;cursor:pointer;background:#27364b;border:none;border-radius:4px;height:28px;margin-bottom:12px;padding:0 12px;font-size:13px;font-weight:500;line-height:28px;transition:all .2s;display:inline-block}.file-upload-btn:hover{background:#1a2333}.file-input-hidden{display:none}.file-list-container{background:#f7f9fe;border:2px dashed #0000;border-radius:4px;min-height:193px;margin-bottom:12px;padding:24px;transition:all .2s;position:relative}.file-list-container.dragging{background:#f0f5ff;border:2px dashed #994dcc;box-shadow:0 0 0 4px #994dcc1a}.file-list-empty{color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;min-height:145px;font-size:12px;line-height:19.2px;display:flex}.file-list{flex-direction:column;gap:8px;display:flex;position:relative}.file-item{background:#fff;border:1px solid #e9edf5;border-radius:6px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.file-name{color:#27364b;font-size:13px;font-weight:400;line-height:20.8px}.file-remove-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:16px;transition:all .2s;display:flex}.file-remove-btn:hover{color:#e52626;background:#fff2f2}.upload-notice{color:#94a3b8;text-align:left;background:0 0;padding:16px;font-size:12px;line-height:19.2px}.submit-upload-btn{color:#fff;cursor:pointer;background:#8b5ff1;border:none;border-radius:8px;width:100%;height:48px;margin-top:24px;font-size:15px;font-weight:500;line-height:24px;transition:all .2s}.submit-upload-btn:hover{background:#7a4fd9}.submit-upload-btn:active{background:#6a3fc1}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-container{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-width:800px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 8px 32px #0003}.modal-header{background:#fff;border-bottom:1px solid #e9edf5;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-title{color:#27364b;margin:0;font-size:20px;font-weight:600;line-height:28px}.modal-close-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:24px;line-height:1;transition:all .2s;display:flex}.modal-close-btn:hover{color:#27364b;background:#f3f5fa}.modal-content{flex:1;padding:24px;overflow-y:auto}.modal-content .custom-select{width:100%;min-width:200px}.modal-content .form-field{flex:1;min-width:180px}.loading-state,.empty-state,.empty-placeholder{text-align:center;color:var(--ds-text-tertiary);letter-spacing:var(--ds-ls-body);padding:60px 20px;font-size:15px;line-height:1.6}.empty-state-with-action{flex-direction:column;align-items:center;gap:10px;padding:24px 0 12px;display:flex}.empty-message{color:var(--ds-text-tertiary);font-size:14px;font-weight:var(--ds-fw-regular);letter-spacing:var(--ds-ls-caption);text-align:center;margin:0;line-height:1.5}.btn-add-material{border-radius:var(--ds-radius-card);background:var(--ds-accent);width:100%;color:var(--ds-text-on-dark);cursor:pointer;box-shadow:var(--ds-shadow-soft);letter-spacing:var(--ds-ls-body);border:none;align-items:center;gap:14px;padding:16px 20px;transition:background .2s,box-shadow .2s,transform .2s;display:flex}.btn-add-material-icon{border-radius:var(--ds-radius-button);background:#ffffff2e;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.btn-add-material-text{text-align:left;flex-direction:column;flex:1;gap:2px;display:flex}.btn-add-material-main{font-size:15px;font-weight:var(--ds-fw-semibold);letter-spacing:var(--ds-ls-heading);line-height:1.4}.btn-add-material-sub{font-size:12px;font-weight:var(--ds-fw-regular);letter-spacing:var(--ds-ls-caption);color:#ffffffb8;line-height:1.4}.btn-add-material-arrow{font-size:22px;font-weight:var(--ds-fw-light);opacity:.7;flex-shrink:0}.btn-add-material:hover{background:var(--ds-accent-hover);box-shadow:var(--ds-shadow-hover);transform:translateY(-1px)}.btn-add-material:active{background:var(--ds-accent-active);transform:translateY(0)}.below-content-cta{margin-top:20px}.assignment-item.add-item{cursor:pointer;border:1px dashed var(--ds-border-default);background:0 0;justify-content:center;transition:background .2s,border-color .2s}.assignment-item.add-item:hover{background:var(--ds-accent-soft);border-color:var(--ds-accent);box-shadow:none}.add-content{color:var(--ds-text-tertiary);align-items:center;gap:10px;display:flex}.assignment-item.add-item:hover .add-content{color:var(--ds-accent)}.add-icon{width:20px;height:20px}.add-text{font-size:14px;font-weight:var(--ds-fw-medium);letter-spacing:var(--ds-ls-caption);line-height:1.4}.loading-container{justify-content:center;align-items:center;min-height:200px;display:flex}@media (max-width:1023px) and (min-width:768px){.logo-image{height:clamp(48px,6.6vw,60px);transform:scale(.9)}.section-tooltip .tooltip-content{width:fit-content;min-width:180px;max-width:260px;padding:8px 12px;font-size:11px}.section-tooltip .tooltip-icon{width:13px;height:13px;font-size:9px}.header-content,.page-content{padding:24px 16px}.filter-row{flex-flow:wrap;align-items:center;gap:10px 12px;margin-bottom:12px}.date-info{flex-wrap:nowrap}.progress-header{flex-direction:row;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px}.progress-info{flex-wrap:wrap;flex:1;width:auto}.assignment-item{gap:8px;padding:10px}.assignment-name{flex:auto;min-width:0;font-size:15px!important;font-weight:600!important;line-height:20px!important}.action-buttons{flex-wrap:wrap;gap:6px}.assignment-actions{flex-shrink:0;margin-left:auto}.round-select .ant-select-selector{height:32px!important;padding:0 10px!important}.round-select .ant-select-selection-item{line-height:18px}.assignment-section{gap:10px;padding:20px}.section-header{flex-wrap:wrap;gap:8px;margin-bottom:6px;padding-bottom:14px}.section-title-wrapper{justify-content:flex-start;width:100%}.section-title{font-size:15px}.section-badge{padding:3px 10px;font-size:12px}.section-icon{width:24px;height:24px}.btn-primary,.btn-secondary{height:32px;padding:0 14px;font-size:13px}.btn-icon-delete{width:32px;height:32px}}@media (max-width:767px) and (min-width:476px){.header-content{padding:0 10px}.logo-image{height:clamp(40px,8vw,50px);transform:scale(.85)}.logo-section{gap:8px}.header-title{letter-spacing:-.02em;font-size:18px}}@media (max-width:475px){.section-tooltip .tooltip-content{word-break:break-word;-webkit-hyphens:auto;hyphens:auto;width:fit-content;min-width:160px;max-width:240px;padding:7px 10px;font-size:10.5px;line-height:1.4}.section-tooltip .tooltip-icon{width:13px;height:13px;font-size:9px}.header-content{padding:0 4px}.page-content{padding:16px 12px}.divider-line{margin:10px 0}.menu-tab{flex:1;width:auto;padding:0 10px;font-size:13px}.menu-tab-divider{height:14px;margin:0 4px}.logo-image{height:clamp(36px,10vw,48px);transform:scale(.8)}.logo-section{gap:6px}.header-title{letter-spacing:-.018em;font-size:16px}.filter-row{flex-flow:wrap;align-items:center;gap:8px 10px;margin-bottom:10px}.date-info{flex-wrap:nowrap;font-size:11px}.progress-header{gap:8px;margin-bottom:10px;padding:8px}.progress-label,.progress-percentage{font-size:11px}.achievement-link-btn{height:26px;padding:0 10px;font-size:10px}.assignment-item{gap:6px;min-height:40px;padding:8px}.assignment-name{flex:auto;min-width:0;font-size:12px!important;font-weight:600!important;line-height:18px!important}.assignment-actions{flex:0 auto;justify-content:flex-end;min-width:0;max-width:100%;margin-top:0;margin-left:auto;padding-left:0}.assignment-section{border-radius:var(--ds-radius-card);gap:8px;padding:16px}.section-header{margin-bottom:4px;padding-bottom:12px}.section-title-wrapper{gap:4px;width:100%}.section-title{font-size:14px}.section-badge{padding:2px 8px;font-size:11px}.section-icon{width:22px;height:22px}.btn-primary,.btn-secondary{height:30px;padding:0 8px;font-size:11px}.btn-icon-delete{width:30px;height:30px;font-size:14px}.action-buttons{flex-wrap:wrap;justify-content:flex-end;gap:3px;max-width:100%}.round-select .ant-select-selector{height:30px!important;padding:0 9px!important}.round-select .ant-select-selection-item{line-height:17px}.add-icon{width:20px;height:20px}.btn-add-material{width:100%;max-width:none}.add-content{font-size:14px}.content-container{padding:0!important}}.gradeable-info-box{background:#f7f9fe;border:1px solid #e9edf5;border-radius:10px;margin-bottom:20px;overflow:hidden}.gradeable-info-header{-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:14px 18px;transition:background .2s;display:flex}.gradeable-info-header:hover{background:#eef2fb}.gradeable-info-left{align-items:center;gap:12px;display:flex}.gradeable-info-icon{flex-shrink:0;font-size:20px}.gradeable-info-text{flex-direction:column;gap:2px;display:flex}.gradeable-info-title{color:#27364b;font-size:14px;font-weight:600}.gradeable-info-sub{color:#0958d9;font-size:12px}.gradeable-info-sub.warn{color:#ad6800}.gradeable-info-toggle{color:#94a3b8;font-size:11px;transition:transform .2s}.gradeable-info-toggle.expanded{transform:rotate(180deg)}.gradeable-info-body{border-top:1px solid #e9edf5;padding:0 18px 16px;animation:.2s gradeable-fade-in}@keyframes gradeable-fade-in{0%{opacity:0}to{opacity:1}}.gradeable-warning{color:#595959;background:#fff1f0;border:1px solid #ffccc7;border-radius:6px;margin-top:12px;padding:10px 12px;font-size:13px;line-height:1.5}.gradeable-file-list{flex-direction:column;gap:6px;max-height:200px;margin-top:12px;display:flex;overflow-y:auto}.gradeable-file-item{color:#27364b;background:#fff;border:1px solid #e9edf5;border-radius:6px;align-items:center;gap:10px;padding:6px 10px;font-size:13px;display:flex}.gradeable-file-dot{background:#3b82f6;border-radius:50%;flex-shrink:0;width:6px;height:6px}@media (max-width:475px){.gradeable-info-header{padding:12px 14px}.gradeable-info-body{padding:0 14px 14px}.gradeable-info-title{font-size:13px}.gradeable-info-sub{font-size:11px}.gradeable-file-item{padding:5px 8px;font-size:12px}}
