:root{--bg: #f2f7f3;--bg-warm: #f5f9f6;--surface: rgba(255, 255, 255, .7);--surface-hover: rgba(255, 255, 255, .86);--surface-muted: rgba(235, 243, 238, .58);--surface-solid: #ffffff;--glass-bg: rgba(255, 255, 255, .58);--glass-border: rgba(255, 255, 255, .44);--glass-shadow: 0 4px 24px rgba(15, 59, 53, .06);--ink: #0f3b35;--ink-soft: #244d45;--muted: #5a7870;--line: rgba(15, 59, 53, .08);--line-strong: rgba(15, 59, 53, .14);--accent: #f59e0b;--accent-strong: #d97706;--accent-soft: rgba(245, 158, 11, .12);--accent-muted: rgba(245, 158, 11, .2);--success: #059669;--success-soft: rgba(5, 150, 105, .1);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .08);--warning: #f59e0b;--warning-soft: rgba(245, 158, 11, .1);--radius-sm: 12px;--radius-md: 20px;--radius-lg: 28px;--radius-xl: 32px;--radius-full: 999px;--z-nav: 40;--z-sticky: 20;--z-toast: 50;color:var(--ink);background:var(--bg);font-family:Inter,PingFang SC,Microsoft YaHei,ui-sans-serif,system-ui,-apple-system,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;background:radial-gradient(ellipse at 15% -8%,rgba(52,211,153,.14),transparent 48%),radial-gradient(ellipse at 88% 10%,rgba(16,185,129,.1),transparent 42%),radial-gradient(ellipse at 50% 78%,rgba(94,200,160,.1),transparent 38%),linear-gradient(180deg,#f6fbf7 0%,var(--bg) 38%,#edf5ef 100%)}body:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;content:"";background-image:radial-gradient(rgba(15,59,53,.05) .4px,transparent .5px);background-size:14px 14px;opacity:.2}h1,h2,h3,p{margin-top:0}h1,h2,h3{margin-bottom:0;color:var(--ink);letter-spacing:-.02em;text-wrap:balance;font-family:Outfit,PingFang SC,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif}h1{max-width:780px;font-size:clamp(42px,5vw,66px);line-height:1.04;font-weight:800}h2{font-size:22px;line-height:1.2;font-weight:700}h3{font-size:17px;line-height:1.28;font-weight:650}p{color:var(--ink-soft);line-height:1.68;text-wrap:pretty}small{color:var(--muted);line-height:1.45;font-size:.88em}button,.file{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:7px;border:0;border-radius:var(--radius-md);padding:11px 22px;color:#fff;background:var(--ink);font-family:Inter,PingFang SC,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif;font-weight:600;font-size:.94em;letter-spacing:-.01em;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0f3b351a}button:hover{background:#1a4a42;transform:translateY(-2px);box-shadow:0 6px 20px #0f3b3524}button:active{transform:translateY(0);box-shadow:0 1px 4px #0f3b3514}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.38;transform:none;background:var(--ink);box-shadow:none}.secondary,.mini,.tab{color:var(--ink);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);font-weight:550;box-shadow:var(--glass-shadow)}.secondary:hover,.mini:hover{background:var(--surface-hover);border-color:#0f3b352e}.text-button{justify-self:start;min-height:auto;padding:6px 0;background:transparent;border:0;color:var(--accent-strong);font-weight:600;box-shadow:none}.text-button:hover{color:#b45309;background:transparent;transform:none}.mini{justify-self:start;min-height:30px;padding:5px 10px;border-radius:var(--radius-sm);font-size:.82em;box-shadow:none}.mini:hover{box-shadow:var(--glass-shadow)}input,textarea,select{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 14px;background:var(--surface-solid);color:var(--ink);outline:none;font-size:.94em;transition:border-color .18s ease,box-shadow .18s ease}input::placeholder,textarea::placeholder{color:#8aa098}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea{min-height:110px;resize:vertical;line-height:1.62}.app-section{animation:rise-in .3s ease both}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.panel{display:grid;gap:14px;padding:22px;border:1px solid var(--glass-border);border-radius:var(--radius-xl);background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--glass-shadow)}.panel h2{font-size:19px}.panel h3{font-size:16px;margin-bottom:4px}.panel-heading{display:flex;gap:12px;align-items:flex-start}.heading-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-sm);color:var(--accent-strong);background:var(--accent-soft);flex-shrink:0}.status{position:sticky;top:80px;z-index:var(--z-sticky);margin:12px 0;padding:10px 16px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--ink-soft);line-height:1.45;font-size:.92em;box-shadow:var(--glass-shadow);display:flex;align-items:center;gap:8px}.status.loading{border-color:var(--accent-muted);background:#fffc}.status.loading:after{content:"";display:inline-block;width:7px;height:7px;border-radius:var(--radius-full);background:var(--accent);animation:pulse .8s ease-in-out infinite;margin-left:auto}.status-cancel{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-full);background:var(--ink-muted);color:#fff;cursor:pointer;padding:0;flex-shrink:0;transition:background .15s}.status-cancel:hover{background:var(--danger)}@keyframes pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.grid{display:grid;gap:14px}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.actions,.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.wrap{flex-wrap:wrap}label{display:grid;gap:6px;color:var(--ink-soft);font-weight:550;font-size:.94em}form,.stack{display:grid;gap:14px}.hint{margin:0;color:var(--muted);line-height:1.6;font-size:.92em}.muted{color:var(--muted)}.file{position:relative;text-align:center;width:100%;border-radius:var(--radius-md)}.file input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.primary-upload{min-height:58px;place-content:center;font-size:16px;border:2px dashed var(--line-strong);background:var(--surface-muted);color:var(--ink)}.primary-upload:hover{border-color:var(--accent);background:var(--accent-soft)}.list{display:grid;gap:10px;max-height:560px;overflow:auto}.list.compact{max-height:280px}.item{display:grid;gap:6px;padding:13px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--surface-muted)}.item p{margin:0;font-size:.92em}.kind-badge{display:inline-flex;width:fit-content;min-height:26px;align-items:center;padding:3px 10px;border-radius:var(--radius-full);color:var(--accent-strong);background:var(--accent-soft);font-size:12px;font-weight:650}.kind-badge.pdf{color:#991b1b;background:#dc262614}.kind-badge.document{color:#6d28d9;background:#6d28d914}.kind-badge.success{color:#0d6b28;background:#16a34a1a}.kind-badge.warn{color:#92400e;background:#d977061a}.kind-badge.danger{color:#991b1b;background:#dc26261a}.kind-badge.muted{color:var(--ink-muted);background:var(--surface-muted)}.pill{display:inline-flex;align-items:center;min-height:26px;padding:3px 10px;border-radius:var(--radius-full);background:var(--surface-muted);color:var(--ink-soft);font-size:12px;font-weight:600}.pill.high{color:var(--accent-strong);background:var(--accent-soft)}.pill.low{color:var(--muted);background:var(--surface-muted)}.eyebrow{width:fit-content;margin:0;border-radius:var(--radius-full);padding:4px 10px;color:var(--accent-strong);background:var(--accent-soft);font-size:12px;font-weight:700;letter-spacing:.02em}.advanced{display:grid;gap:10px;padding:14px;border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:var(--surface-muted)}.mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:5px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--surface-muted)}.mode-switch button{width:100%;min-height:42px;color:var(--ink);background:transparent;box-shadow:none}.mode-switch button.active{color:#fff;background:var(--ink);box-shadow:0 2px 12px #0f3b3529}.invite-box{display:grid;gap:12px}.invite-status{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md);color:var(--muted);background:var(--surface-muted)}.invite-status.valid{color:var(--success);background:var(--success-soft);border-color:#0596692e}.tabs{position:sticky;top:20px;z-index:var(--z-nav);display:flex;align-items:center;gap:6px;margin:0 auto 24px;padding:8px;width:fit-content;max-width:calc(100% - 32px);overflow-x:auto;border-radius:var(--radius-full);background:#ffffff4d;backdrop-filter:blur(40px) saturate(1.8);-webkit-backdrop-filter:blur(40px) saturate(1.8);border:1px solid rgba(255,255,255,.6);box-shadow:0 1px 8px #0f3b350a,0 4px 24px #0f3b350f,0 12px 48px #0f3b350d,inset 0 .5px #fffc}.tabs .tab{display:flex;align-items:center;gap:6px;border:0;padding:11px 22px;border-radius:var(--radius-full);font-size:15px;font-weight:560;color:var(--ink-soft);background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:all .3s cubic-bezier(.22,1,.36,1);white-space:nowrap;flex-shrink:0;min-height:42px}.tabs .tab:hover{color:var(--ink);background:#ffffff80}.tabs .tab.active{color:#fff;background:var(--ink);box-shadow:0 2px 12px #0f3b3538,0 4px 20px #0f3b351a,inset 0 1px #ffffff40;transform:scale(1.04)}@media(max-width:980px){.tabs{margin-left:12px;margin-right:12px;overflow-x:auto}}.home{width:min(1160px,100%);min-height:100dvh;margin:0 auto;padding:64px 36px 48px}.home-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.65fr);gap:40px;align-items:center;min-height:460px;padding:48px 0 52px}.hero-copy{display:grid;align-content:center;gap:16px;min-width:0;padding:20px 0}.home-hero h1{font-size:clamp(44px,6vw,74px);font-weight:850;line-height:1.04;letter-spacing:-.03em;margin:0}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:4px}.hero-command{position:relative;display:grid;align-content:center;gap:24px;min-height:320px;overflow:hidden;border-radius:var(--radius-xl);padding:28px;color:#f6fbf8;background:radial-gradient(circle at 78% 14%,rgba(245,158,11,.18),transparent 16rem),linear-gradient(145deg,var(--ink),#1a5a4e 52%,var(--ink));box-shadow:0 14px 34px #0f3b3524}.command-topline{display:grid;gap:8px;position:relative;z-index:1}.command-topline span{color:#c8ddd4;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.command-topline strong{max-width:320px;color:#fffdf4;font-size:clamp(28px,2.8vw,38px);line-height:1.06;font-weight:850}.command-list{display:grid;gap:8px;position:relative;z-index:1}.command-list span{display:flex;align-items:center;gap:10px;min-height:44px;border-radius:var(--radius-md);padding:11px 14px;color:#e4f4eb;background:#ffffff0f;font-size:14px}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0 30px}.home-grid .project-form{grid-column:span 2}.intro-panel ol{margin:0;padding-left:20px;line-height:1.85;color:var(--ink-soft)}.setup-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.7fr);gap:22px;align-items:stretch;min-height:380px}.setup-shell{display:grid;gap:20px;margin-top:8px}.setup-steps{display:flex;flex-wrap:wrap;gap:8px}.setup-steps button{display:flex;align-items:center;gap:7px;min-height:38px;padding:8px 16px;border-radius:var(--radius-full);font-size:13px;background:var(--surface-muted);color:var(--muted);border:1px solid var(--glass-border);box-shadow:none;font-weight:600}.setup-steps button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.setup-steps button.done{background:var(--surface-solid);color:var(--ink);border-color:var(--glass-border)}.setup-actions{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;align-self:start;display:grid;gap:12px;min-height:100dvh;padding:20px;border-right:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.brand{display:grid;gap:1px;padding-bottom:12px;border-bottom:1px solid var(--line)}.brand strong{font-size:24px;line-height:1;font-weight:700;font-family:Outfit,PingFang SC,Microsoft YaHei,sans-serif}.brand span{color:var(--muted);font-size:13px}.sidebar-form{max-height:65dvh;overflow:auto}.sidebar-form .panel{padding:14px}.project-list{display:grid;gap:6px}.project-card{display:grid;gap:5px;width:100%;min-height:auto;padding:11px;border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--ink-soft);background:#ffffff5c;text-align:left;font-size:.94em;transition:all .18s ease}.project-card:hover{background:var(--surface-hover);border-color:#0f3b352e}.project-card.active{color:#fff;border-color:var(--ink);background:var(--ink)}.project-card.active small{color:#a8c4bc}.project-open{display:grid;gap:4px;width:100%;min-height:auto;padding:0;color:inherit;background:transparent;text-align:left;box-shadow:none;border:0;backdrop-filter:none;-webkit-backdrop-filter:none}.project-open:hover{transform:none;box-shadow:none;background:transparent}.project-actions{display:flex;gap:6px;flex-wrap:wrap}.project-actions .mini{min-height:28px;padding:5px 8px;font-size:12px}.workspace{display:grid;align-content:start;gap:14px;width:min(1020px,100%);padding:18px 22px}.workspace-head{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;align-items:end;padding-bottom:18px;border-bottom:1px solid var(--line)}.workspace-head h1{font-size:clamp(36px,5vw,60px);font-weight:800}.workspace-head p{margin:8px 0 0;color:var(--muted)}.progress-card{display:grid;gap:6px;padding:14px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.progress-card strong,.metric-panel strong{font-size:28px;color:var(--ink);font-weight:750;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.progress{height:6px;overflow:hidden;border-radius:var(--radius-full);background:var(--surface-muted)}.progress span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .3s ease}.progress-ring{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:conic-gradient(var(--accent) var(--progress, 0%),var(--surface-muted) var(--progress, 0%))}.progress-ring strong{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--surface-solid);font-size:16px;color:var(--ink);font-weight:650}.page-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-panel{min-height:130px;align-content:start;cursor:default;overflow:hidden;min-width:0}.metric-panel small{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.metric-panel span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;font-weight:550}.focus-text{font-size:16px!important;font-weight:620!important;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.wide{grid-column:span 4}.next-step-panel{overflow:hidden;min-width:0}.next-step-panel h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.next-step-panel p{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.today-panel{overflow:hidden;min-width:0}.today-panel-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid var(--glass-border)}.today-panel-head span{display:flex;align-items:center;gap:6px;font-weight:620;font-size:16px;color:var(--ink)}.today-panel-head small{color:var(--muted);font-size:13px}.today-list{display:grid;gap:2px}.today-row{display:flex;align-items:center;gap:10px;padding:12px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;overflow:hidden;min-width:0}.today-row:hover{background:var(--surface-muted)}.today-row-main{flex:1;min-width:0;overflow:hidden}.today-row-main strong{display:block;font-size:15px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-row-meta{display:flex;gap:10px;margin-top:3px;font-size:13px;color:var(--muted);flex-wrap:wrap}.module-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--muted)}.module-status-dot.doing{background:var(--accent);box-shadow:0 0 6px var(--accent-muted)}.module-status-dot.todo{background:var(--warning)}.upload-queue{display:grid;gap:6px;max-height:180px;overflow:auto}.upload-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--radius-sm);font-size:13px;background:var(--surface-muted)}.upload-row.done{color:var(--success);background:var(--success-soft)}.upload-row.failed{color:var(--danger);background:var(--danger-soft)}.upload-row.reading{color:var(--warning);background:var(--warning-soft)}.material-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start}.material-delete{min-height:30px;padding:5px 9px;font-size:12px;background:var(--danger-soft);color:var(--danger);border-color:transparent}.material-delete:hover{background:#dc262624}.plan-actions{margin-bottom:14px}.plan-mode-toggle{display:flex;gap:6px;flex-wrap:wrap}.plan-mode-toggle .tab{min-height:36px;padding:7px 16px;font-size:.88em;transition:all .18s ease}.plan-mode-toggle .tab:hover{background:#ffffff80;border-color:#0f3b352e;transform:translateY(-1px);box-shadow:0 2px 8px #0f3b351a}.plan-mode-toggle .tab.active{color:#fff;background:var(--ink);border-color:var(--ink);box-shadow:0 2px 10px #0f3b3538,0 4px 16px #0f3b351a,inset 0 1px #ffffff40;transform:scale(1.04)}.plan-mode-toggle .tab.active:hover{background:var(--ink);transform:scale(1.04);box-shadow:0 2px 10px #0f3b3538,0 4px 16px #0f3b351a,inset 0 1px #ffffff40}.overdue-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--warning-soft);color:var(--warning);font-size:.92em;font-weight:550}.overdue-banner span{display:flex;align-items:center;gap:6px}.daily-timeline{display:grid;gap:12px}.daily-summary{display:flex;gap:16px;padding:16px 20px;border-radius:var(--radius-md);background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);flex-wrap:wrap}.daily-summary-stat{flex:1;min-width:80px;text-align:center}.daily-summary-value{display:block;font-size:24px;font-weight:800;color:var(--ink);font-family:Outfit,Inter,sans-serif;letter-spacing:-.02em;line-height:1.2}.daily-summary-label{display:block;font-size:12px;color:var(--muted);margin-top:2px;font-weight:500}.daily-day-card{display:grid;gap:10px;padding:18px 20px;border:1px solid var(--glass-border);border-radius:var(--radius-xl);background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--glass-shadow);transition:border-color .2s,box-shadow .2s}.daily-day-card:hover{box-shadow:0 6px 32px #0f3b351a}.daily-day-card.today{border-color:var(--accent-muted);background:#fff8eb85;box-shadow:0 4px 24px #f59e0b1a}.daily-day-card.overdue{border-color:#dc262638;background:#dc262608}.daily-day-card.full{border-left:4px solid var(--success)}.daily-day-card.empty{border-style:dashed;border-color:#0f3b351a;background:#ebf3ee59;opacity:.72}.daily-day-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.daily-day-date{display:flex;align-items:baseline;gap:8px}.daily-day-date strong{font-size:17px;font-weight:700;color:var(--ink)}.daily-day-weekday{font-size:13px;color:var(--muted);font-weight:500}.daily-day-countdown{font-size:12px;font-weight:600;color:var(--muted);background:var(--surface-muted);padding:3px 10px;border-radius:var(--radius-full);white-space:nowrap}.daily-day-card.today .daily-day-countdown{color:var(--accent-strong);background:var(--accent-soft)}.daily-day-card.overdue .daily-day-countdown{color:var(--danger);background:var(--danger-soft)}.daily-time-bar-wrap{display:flex;align-items:center;gap:10px}.daily-time-bar{flex:1;height:8px;border-radius:4px;background:#0f3b3512;overflow:hidden}.daily-time-bar-fill{height:100%;border-radius:4px;background:var(--success);transition:width .4s ease}.daily-time-bar-fill.overtime{background:var(--danger)}.daily-time-bar-fill.full{background:var(--accent)}.daily-time-text{font-size:12px;color:var(--muted);font-weight:550;white-space:nowrap;min-width:90px;text-align:right}.daily-time-text.overtime{color:var(--danger);font-weight:650}.daily-day-empty{display:flex;align-items:center;justify-content:flex-start;min-height:48px;padding:12px 14px;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:#ffffff6b}.daily-day-empty span{font-size:13px;color:var(--muted);font-weight:550}.daily-plan-list{display:grid;gap:14px}.daily-group{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:#ffffff85;box-shadow:0 2px 8px #0f3b350a}.daily-group.today{border-color:#f59e0b57;background:#ffffffad}.daily-group.overdue{background:#ffffff61}.daily-group-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--line)}.daily-group-head strong{font-size:18px;line-height:1.2;color:var(--ink);font-weight:750}.daily-group-head small{display:inline-flex;flex-wrap:wrap;gap:4px;color:var(--muted);font-size:13px;font-weight:600}.daily-group-items{display:grid;gap:8px}.daily-item{display:flex;align-items:center;gap:12px;min-height:64px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff9e;cursor:pointer;transition:background .15s,border-color .15s,transform .15s;overflow:hidden;min-width:0}.daily-item:hover{border-color:var(--line-strong);background:var(--surface-hover);transform:translateY(-1px)}.daily-item-main{flex:1;min-width:0;overflow:hidden}.daily-item-main strong{display:block;font-size:15px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-item-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:5px;font-size:13px;color:var(--muted)}.daily-item-minutes{color:var(--ink-soft);font-weight:550;font-size:12px}.module-form{grid-template-columns:minmax(160px,1fr) 110px 130px minmax(140px,1fr) auto;align-items:end;margin-bottom:14px}.module-form h2{grid-column:1 / -1}.kanban{display:grid;grid-template-columns:repeat(3,minmax(210px,1fr));gap:12px;margin-bottom:14px;overflow-x:auto}.kanban-column{display:grid;align-content:start;gap:8px;min-height:400px;padding:11px;border:1px solid var(--glass-border);border-radius:var(--radius-xl);background:var(--surface-muted);transition:background .18s ease,border-color .18s ease}.kanban-column:hover{border-color:#0f3b352e;background:#e6f0ebcc}.column-head{display:grid;gap:3px;padding-bottom:7px;border-bottom:1px solid var(--line)}.module-card{display:grid;gap:8px;padding:11px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:grab;transition:all .18s ease}.module-card:hover{border-color:#0f3b352e;box-shadow:var(--glass-shadow)}.module-card:active{cursor:grabbing}.module-card strong{line-height:1.32;font-size:.94em}.module-card-actions{display:flex;gap:6px;flex-wrap:wrap}.module-card p{margin:5px 0 0;color:var(--muted);line-height:1.5;overflow-wrap:anywhere;font-size:.88em}.module-meta{display:flex;flex-wrap:wrap;gap:5px}.module-meta span{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:var(--radius-full);background:#ffffff80;color:var(--ink-soft);font-size:12px;font-weight:550}.empty-slot{display:grid;min-height:76px;place-items:center;border:1px dashed var(--line-strong);border-radius:var(--radius-md);color:var(--muted);font-size:14px}.module-detail{gap:16px}.module-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.detail-meta{margin-top:8px}.detail-block{display:grid;gap:8px}.detail-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.detail-title span{color:var(--muted);font-size:13px}.explanation-block{gap:14px;margin-inline:-4px;padding:18px;border:1px solid rgba(15,59,53,.1);border-radius:var(--radius-lg);background:linear-gradient(180deg,#ffffffc7,#f6fbf7a3),radial-gradient(circle at 96% 0%,rgba(245,158,11,.1),transparent 16rem)}.explanation-block .detail-title{padding-bottom:12px;border-bottom:1px solid var(--line)}.ai-text p{margin:10px 0;white-space:pre-line}.ai-text ul{margin:6px 0;padding-left:18px}.ai-text li{line-height:1.65;color:var(--ink-soft)}.ai-text .ai-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:14px}.ai-text .ai-table th,.ai-text .ai-table td{padding:7px 9px;border:1px solid var(--line);text-align:left}.ai-text .ai-table th{background:var(--surface-muted);font-weight:650}.reading-text{display:grid;gap:12px;max-width:74ch}.reading-text p.ai-prose-card{margin:0;padding:15px 16px;border:1px solid var(--line);border-radius:var(--radius-md);color:#183f39;background:#ffffffb3;font-size:1rem;line-height:1.86;letter-spacing:0;overflow-wrap:anywhere;box-shadow:0 1px 4px #0f3b3508}.reading-text p.ai-prose-card.summary{border-color:#05966938;background:#ecfdf5b8}.reading-text p.ai-prose-card.example{border-color:#f59e0b42;background:#fffbebc7}.reading-text p.ai-prose-card.warning{border-color:#dc26262e;background:#fef2f2b8}.ai-prose-label{display:inline-flex;align-items:center;min-height:24px;margin:0 8px 4px 0;padding:2px 9px;border-radius:var(--radius-full);color:var(--ink);background:#0f3b3514;font-size:12px;font-weight:750;line-height:1.2}.note p{max-height:320px;overflow:auto}.plan-preview{gap:12px;max-width:740px}.plan-preview h2{font-size:22px}.result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.result-head>div{display:grid;gap:8px}.result-head button{flex-shrink:0}.result-head h2{cursor:text}.result-title-input{width:min(360px,100%);padding:6px 8px;font-size:22px;font-weight:750}.mock-record{display:grid;gap:5px;padding:12px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;transition:all .16s ease}.mock-record:hover,.mock-record:focus-visible{border-color:#0f3b3547;background:var(--surface-hover);transform:translateY(-1px)}.mock-record.selected{border-color:#0951486b;background:linear-gradient(180deg,#e8f6f1db,#ffffffb8);box-shadow:inset 0 0 0 1px #0951481f,0 10px 24px #0f3b3514}.mock-record:focus-visible{outline:3px solid rgba(245,158,11,.28);outline-offset:2px}.mock-record-head strong{color:var(--ink)}.mock-record-body{cursor:pointer}.mock-rename-input{width:100%;padding:5px 7px;font-weight:600;font-size:inherit}.mock-record-actions{display:flex;gap:6px;margin-top:4px}.memorize-list{display:grid;gap:14px;margin-top:18px}.memorize-card{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:13px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;transition:opacity .28s ease,transform .22s ease,max-height .28s ease,margin .28s ease,padding .28s ease,border-width .28s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease;overflow:hidden}.memorize-card:hover{transform:translateY(-3px);border-color:#f59e0b52;background:var(--surface-hover);box-shadow:0 10px 28px #0f3b351a}.memorize-card:active{transform:translateY(-1px) scale(.995);box-shadow:0 5px 16px #0f3b351a}.memorize-card.dismissing{opacity:0;transform:translate(36px);max-height:0;margin:0;padding-top:0;padding-bottom:0;border-width:0}.memorize-card-main{cursor:pointer;display:grid;gap:5px}.memorize-card-main:hover strong{color:var(--accent-strong)}.memorize-zhan{min-height:34px;padding:6px 14px;background:var(--accent);color:#fff;flex-shrink:0;border-radius:var(--radius-sm);box-shadow:0 2px 8px #f59e0b3d}.memorize-zhan:hover{background:var(--accent-strong);box-shadow:0 4px 14px #d9770652}.sub-nav{margin-bottom:14px}.sub-nav .tab{font-size:.88em}.mistake-form{display:grid;gap:10px;margin-bottom:16px;padding:16px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--surface-muted)}.mistake-form label{display:grid;gap:4px;font-size:.88em;color:var(--ink-soft)}.mistake-form textarea{min-height:60px;resize:vertical}.mistake-row{cursor:pointer;transition:background .15s ease}.mistake-row:hover{background:var(--surface-hover)}.mistake-detail{padding:10px 14px 14px;border-top:1px solid var(--glass-border);display:grid;gap:10px}.mistake-detail strong{display:block;margin-bottom:4px;font-size:.82em;color:var(--muted)}.mistake-detail p{margin:0;font-size:.92em;line-height:1.55}.weakpoint-row .item-head{align-items:flex-start}.weak-severity{display:inline-block;padding:1px 8px;border-radius:var(--radius-full);font-size:.72em;font-weight:600;margin-left:6px}.severity-high{background:var(--danger-soft);color:var(--danger)}.severity-medium{background:var(--warning-soft);color:var(--accent-strong)}.severity-low{background:var(--success-soft);color:var(--success)}.weak-evidence{margin:4px 0 0;font-size:.88em;color:var(--muted);line-height:1.5}.mock-taking .mock-question-block{margin-bottom:16px;padding:14px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--surface-muted)}.mock-question-block strong{display:block;margin-bottom:8px;font-size:.92em;line-height:1.55}.mock-question-block textarea{min-height:70px;resize:vertical;width:100%;border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:10px;font-size:.92em;background:var(--surface-solid)}.mock-choices{display:grid;gap:6px}.mock-choice-option{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:flex-start;padding:9px 10px;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--surface-solid);cursor:pointer;transition:border-color .15s,background .15s}.mock-choice-option:hover:not(.disabled){border-color:var(--accent);background:var(--surface-muted)}.mock-choice-option.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-solid))}.mock-choice-option.disabled{cursor:default;opacity:.7}.mock-choice-option input{margin-top:2px}.mock-choice-option span{font-size:.92em;line-height:1.5}.mock-preview-grid{display:grid;gap:14px}.mock-preview-section{display:grid;gap:12px;padding:14px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--surface-solid)}.mock-preview-question{display:grid;gap:9px;padding:12px 0;border-top:1px solid var(--line)}.mock-preview-question:first-of-type{border-top:0;padding-top:0}.mock-preview-question strong{color:var(--ink);font-size:.96em;line-height:1.55}.mock-preview-options{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.mock-preview-options span{display:block;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-soft);background:var(--surface-muted);font-size:.9em;line-height:1.45}.mock-scoring-result,.mock-answer-key,.mock-mistake-picker{display:grid;gap:10px;margin-top:16px;padding:14px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--surface-solid)}.mock-mistake-option{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:flex-start;padding:9px 10px;border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--ink-soft);line-height:1.5}.mock-mistake-option input{margin-top:4px}.today-panel{margin-bottom:16px}.overdue-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:12px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:.88em;flex-wrap:wrap}.overdue-banner span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-panel .module-row{padding:10px 12px}.practice-answers{display:grid;gap:12px;margin:14px 0}.practice-answer-row{display:grid;gap:6px}.practice-answer-row strong{font-size:.88em;color:var(--ink-soft)}.practice-answer-row textarea{min-height:60px;resize:vertical;border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:10px;font-size:.92em;background:var(--surface)}.card-learning-area{gap:12px;padding:18px;border:1px solid var(--glass-border);border-radius:var(--radius-xl);background:var(--surface-muted)}.card-round-badge{font-size:.82em;color:var(--muted);text-align:center}.card-progress-dots{display:flex;justify-content:center;gap:6px}.card-dot{width:10px;height:10px;border-radius:var(--radius-full);background:var(--line);transition:background .2s ease}.card-dot.dot-current{background:var(--accent);animation:dot-pulse .6s ease-in-out infinite}.card-dot.dot-current:nth-child(2){animation-delay:.15s}.card-dot.dot-current:nth-child(3){animation-delay:.3s}@keyframes dot-pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}.dot-mastered{background:var(--success)}.dot-uncertain{background:var(--accent)}.dot-unknown{background:var(--danger)}.dot-pending{background:var(--line)}.learn-card{perspective:800px;cursor:pointer;min-height:200px}.learn-card-inner{position:relative;width:100%;min-height:200px;transition:transform .35s ease;transform-style:preserve-3d}.learn-card.flipped .learn-card-inner{transform:rotateY(180deg)}.learn-card-front,.learn-card-back{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;border-radius:var(--radius-lg);text-align:center}.learn-card-front{background:var(--surface-solid);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.learn-card-back{background:var(--surface-solid);border:1px solid var(--accent-muted);transform:rotateY(180deg)}.card-type-badge{display:inline-block;padding:2px 10px;border-radius:var(--radius-full);font-size:.72em;font-weight:600;background:var(--accent-soft);color:var(--accent-strong)}.learn-card-front p,.learn-card-back p{margin:0;font-size:1.05em;line-height:1.6;color:var(--ink)}.tap-hint{font-size:.78em;color:var(--muted);margin-top:6px}.card-exam-answer{font-size:.88em;color:var(--ink-soft);border-left:3px solid var(--accent);padding-left:10px;text-align:left}.card-memory-tip{font-size:.85em;color:var(--accent-strong);font-weight:550}.card-feedback-buttons{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.feedback-mastered{background:var(--success);color:#fff;border:0}.feedback-mastered:hover{background:#047857}.feedback-uncertain{background:var(--warning-soft);color:var(--accent-strong);border:0}.feedback-uncertain:hover{background:var(--accent-muted)}.feedback-unknown{background:var(--danger-soft);color:var(--danger);border:0}.feedback-unknown:hover{background:#dc26262e}.card-preview-strip{display:flex;gap:6px;flex-wrap:wrap}.card-preview-chip{display:inline-block;padding:3px 10px;border-radius:var(--radius-sm);font-size:.78em;background:var(--surface-muted);border:1px solid var(--glass-border);color:var(--ink-soft);cursor:default}.utility{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:30px}.card-stack{position:relative;height:160px;cursor:pointer;display:flex;align-items:center;justify-content:center;margin:8px 0;transition:transform .2s ease}.card-stack:hover{transform:scale(1.02)}.card-stack:active{transform:scale(.98)}.stacked-card{position:absolute;width:85%;max-width:300px;padding:16px;border-radius:var(--radius-lg);background:var(--surface-solid);border:1px solid var(--glass-border);box-shadow:0 2px 12px #0f3b3514;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;transition:transform .25s ease}.stacked-card p{margin:0;font-size:.9em;line-height:1.4;color:var(--ink)}.swipe-card-stage{position:relative;height:270px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin:0;border-radius:var(--radius-lg)}.ios-card{position:absolute;top:6px;right:6px;bottom:6px;left:6px;cursor:grab;will-change:transform,opacity,filter;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.ios-card:active{cursor:grabbing}.swipe-card-inner{width:100%;height:100%;position:relative;transition:transform .24s cubic-bezier(.22,1,.36,1);transform-style:preserve-3d}.ios-card.flipped .swipe-card-inner{transform:rotateY(180deg)}.swipe-card-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:22px 20px;border-radius:var(--radius-lg);text-align:center;background:var(--surface-solid);border:1px solid var(--glass-border);box-shadow:0 4px 20px #0f3b3514;overflow:hidden}.swipe-card-face.back{transform:rotateY(180deg);background:#fafdfb;border-color:var(--accent-muted)}.swipe-card-face p{margin:0;max-width:100%;font-size:1.02em;line-height:1.55;color:var(--ink);overflow-wrap:break-word;word-break:break-word}.ios-card .card-exam-answer{font-size:.85em;color:var(--ink-soft);border-left:3px solid var(--accent);padding-left:10px;text-align:left;max-width:100%;overflow-wrap:break-word}.ios-card .card-memory-tip{font-size:.82em;color:var(--accent-strong);font-weight:550;max-width:100%;overflow-wrap:break-word}.flip-hint{text-align:center;margin:0 0 2px;font-size:.8em;font-weight:550;color:var(--accent-strong);cursor:pointer;-webkit-user-select:none;user-select:none}.swipe-hint{text-align:center;margin:6px 0 0;font-size:.72em;color:var(--muted);-webkit-user-select:none;user-select:none}@media(prefers-reduced-motion:reduce){.swipe-card-inner{transition:none}.ios-card{will-change:auto}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;min-height:auto;border-right:0;border-bottom:1px solid var(--glass-border)}.project-list{display:flex;overflow-x:auto}.project-card{min-width:190px;flex-shrink:0}.workspace{width:100%}.workspace-head,.two,.home-grid{grid-template-columns:1fr}.home-grid .project-form{grid-column:span 1}.page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wide{grid-column:span 2}.module-form{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(3,minmax(240px,1fr))}.tabs{margin-left:12px;margin-right:12px;overflow-x:auto}}@media(max-width:680px){.home,.workspace,.sidebar{padding:12px}.home-hero,.setup-hero{grid-template-columns:1fr;min-height:auto}h1,.workspace-head h1{font-size:34px}.home-hero h1{font-size:36px}.page-grid{grid-template-columns:1fr}.wide{grid-column:span 1}button,.file{width:100%}.actions button,.project-list button,.module-card button{width:auto}.result-head{display:grid}.result-head button{width:fit-content}}.pdf-render-container{position:fixed;top:0;left:-9999px;width:794px;background:#fff;font-family:PingFang SC,Microsoft YaHei,SimSun,Noto Sans SC,system-ui,serif;color:#111;line-height:1.85;z-index:-1}.exam-paper{padding:52px 48px;min-height:1123px}.exam-paper.page-break{min-height:auto;padding-top:52px}.exam-paper h1{text-align:center;font-size:24px;font-weight:800;margin:0 0 28px;padding-bottom:12px;border-bottom:2px solid #222;letter-spacing:1px}.exam-paper h2{font-size:16px;font-weight:750;margin:22px 0 14px}.exam-paper p{font-size:14px;line-height:1.8;margin:8px 0;text-indent:0}.exam-paper .q{text-indent:0;padding-left:0}.pdf-render-container .pdf-table{width:100%;margin:14px 0;border-collapse:collapse;font-size:13px}.pdf-render-container .pdf-table th,.pdf-render-container .pdf-table td{padding:8px 10px;border:1px solid #888;text-align:left;vertical-align:top;line-height:1.55}.pdf-render-container .pdf-table th{background:#eee;font-weight:700}.pdf-render-container .pdf-table tr:nth-child(2n) td{background:#fafafa}
