:root{--bg:#f5f3ee;--paper:#fffefa;--ink:#202620;--muted:#687169;--line:#dcded7;--green:#315d4b;--green-soft:#e5ede7;--blue:#3f6173;--blue-soft:#e6edf0;--warm:#8a6237;--warm-soft:#f1e9dd;--danger:#9b4338;--shadow:0 18px 55px rgba(42,52,45,.07)}
*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;color:var(--ink);background:radial-gradient(circle at 10% 0,rgba(207,220,209,.55),transparent 34rem),var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:15px;line-height:1.65}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:15px max(24px,calc((100vw - 1120px)/2));border-bottom:1px solid rgba(210,214,207,.85);background:rgba(245,243,238,.88);backdrop-filter:blur(18px)}.wordmark{color:var(--ink);font-family:Georgia,"Times New Roman",serif;font-size:19px;letter-spacing:-.02em}.wordmark:hover{text-decoration:none}.wordmark span{margin-left:8px;color:var(--muted);font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.topbar nav{display:flex;flex-wrap:wrap;gap:6px}.topbar nav a{padding:6px 10px;border-radius:8px;color:var(--muted);font-size:13px}.topbar nav a:hover,.topbar nav a.active{color:var(--green);background:var(--green-soft);text-decoration:none}.shell{width:min(1120px,calc(100% - 40px));min-height:calc(100vh - 150px);margin:0 auto;padding:48px 0 64px}.footer{display:flex;justify-content:space-between;width:min(1120px,calc(100% - 40px));margin:0 auto;padding:22px 0 34px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.eyebrow{margin:0 0 8px;color:var(--green);font-size:11px;font-weight:750;letter-spacing:.17em;text-transform:uppercase}h1,h2,h3,p{overflow-wrap:anywhere}h1{margin:0;font-family:Georgia,"Times New Roman","Noto Serif SC",serif;font-size:clamp(38px,6vw,66px);font-weight:500;letter-spacing:-.04em;line-height:1.05}h2{margin:0 0 16px;font-size:20px;letter-spacing:-.02em}h3{margin:0;font-size:16px}.lead{max-width:700px;margin:18px 0 0;color:var(--muted);font-size:17px}.page-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:34px}.page-head.compact h1{font-size:clamp(34px,5vw,52px)}.page-head .actions{margin:0}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{min-width:0;padding:21px;background:rgba(255,254,250,.88);border:1px solid var(--line);border-radius:15px;box-shadow:0 10px 30px rgba(43,52,46,.035)}.card.flat{box-shadow:none}.card-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}.card-header h2,.card-header h3{margin:0}.muted,.meta{color:var(--muted)}.meta{font-size:12px}.metric{padding:18px 20px}.metric b{display:block;font-family:Georgia,"Times New Roman",serif;font-size:30px;font-weight:500;line-height:1.1}.metric span{color:var(--muted);font-size:12px}.progress{height:5px;margin-top:12px;overflow:hidden;background:#e8e9e4;border-radius:9px}.progress i{display:block;height:100%;background:var(--green);border-radius:9px}.pill{display:inline-flex;align-items:center;padding:3px 8px;border-radius:99px;background:var(--green-soft);color:var(--green);font-size:11px}.pill.blue{background:var(--blue-soft);color:var(--blue)}.pill.warm{background:var(--warm-soft);color:var(--warm)}.pill.gray{background:#edeee9;color:var(--muted)}.pill.bad{background:#f5e4e1;color:var(--danger)}.dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#4e9b6e}.dot.bad{background:#c55d50}.list{margin:0;padding:0;list-style:none}.list>li{padding:11px 0;border-top:1px solid var(--line)}.list>li:first-child{border-top:0}.row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.row-main{min-width:0}.row-main p{margin:4px 0 0}.task{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px}.task button{width:23px;height:23px;padding:0;border-radius:50%;background:transparent;color:var(--green)}.task.done{opacity:.55}.task.done strong{text-decoration:line-through}.section{margin-top:32px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:14px}.section-title h2{margin:0}.split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px}.stack{display:grid;gap:16px}.flash{margin-bottom:18px;padding:11px 14px;border:1px solid #ccdfd2;border-radius:10px;background:#ebf5ee;color:#2d6848}.flash.error{border-color:#ead0ca;background:#f8e9e5;color:var(--danger)}form{margin:0}label{display:block;margin-bottom:6px;color:var(--muted);font-size:12px}input,textarea,select,button,.button{font:inherit}input,textarea,select{width:100%;padding:10px 11px;color:var(--ink);border:1px solid #cfd4cc;border-radius:9px;background:#fff}textarea{min-height:108px;resize:vertical}button,.button{display:inline-flex;align-items:center;justify-content:center;padding:8px 13px;color:#fff;border:1px solid var(--green);border-radius:8px;background:var(--green);cursor:pointer}button:hover,.button:hover{filter:brightness(.96);text-decoration:none}button.secondary,.button.secondary{color:var(--green);background:transparent}button.quiet,.button.quiet{color:var(--muted);border-color:var(--line);background:transparent}button.danger{color:var(--danger);border-color:#e2c4be;background:transparent}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field.full{grid-column:1/-1}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.actions form{display:inline}.empty{padding:30px;text-align:center;color:var(--muted);border:1px dashed #cdd2ca;border-radius:13px}.inbox-item,.bookmark{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:18px;padding:20px 0;border-top:1px solid var(--line)}.inbox-item:first-child,.bookmark:first-child{border-top:0}.item-copy p{margin:7px 0}.item-copy .source{font-size:12px}.item-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:6px;flex-wrap:wrap}.item-actions button{padding:5px 8px;font-size:11px}.filterbar{display:flex;gap:9px;align-items:center;margin-bottom:16px}.filterbar input{max-width:420px}.service-row{display:grid;grid-template-columns:minmax(180px,1fr) 100px 100px;gap:16px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.service-row:first-child{border-top:0}.cert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cert{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;background:#f8f8f4;border-radius:8px;font-size:12px}.experiment{display:flex;flex-direction:column;min-height:210px}.experiment h3{font-size:18px}.experiment p{color:var(--muted)}.experiment .actions{margin-top:auto}.output{white-space:pre-wrap;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fafaf6}.compare-output{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.compare-output div{padding:12px;border-radius:9px;background:#f2f4ef}.publication{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:34px;padding:27px 0;border-top:1px solid var(--line)}.publication h2{font-family:Georgia,"Times New Roman",serif;font-size:24px;font-weight:500}.publication figure{margin:0}.publication img{display:block;width:100%;height:auto;border:1px solid var(--line)}.publication figcaption{margin-top:7px;color:var(--muted);font-size:11px}.cv-shell{width:min(920px,100%);margin:0 auto}.cv-header{display:flex;justify-content:space-between;gap:30px;padding-bottom:28px;border-bottom:1px solid var(--line)}.cv-header h1{font-size:48px}.cv-links{text-align:right}.cv-section{display:grid;grid-template-columns:170px minmax(0,1fr);gap:35px;padding:31px 0;border-bottom:1px solid var(--line)}.cv-section>h2{color:var(--green);font-size:12px;text-transform:uppercase;letter-spacing:.09em}.record{display:grid;grid-template-columns:145px minmax(0,1fr);gap:24px;padding:14px 0;border-top:1px solid var(--line)}.record:first-child{padding-top:0;border-top:0}.record p{margin:5px 0}.tags{display:flex;gap:7px;flex-wrap:wrap}.tags span{padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:#fafaf6;font-size:12px}
@media(max-width:900px){.grid.four{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.publication{grid-template-columns:1fr}.publication figure{max-width:420px}}
@media(max-width:680px){.topbar{position:static;display:block;padding:14px 18px}.topbar nav{margin-top:10px;overflow-x:auto;flex-wrap:nowrap}.shell,.footer{width:min(100% - 28px,1120px)}.shell{padding-top:34px}.page-head,.cv-header{display:block}.page-head .actions,.cv-links{margin-top:16px;text-align:left}.grid.two,.grid.three,.grid.four,.form-grid,.cert-grid{grid-template-columns:1fr}.inbox-item,.bookmark{grid-template-columns:1fr;gap:8px}.item-actions{justify-content:flex-start}.service-row{grid-template-columns:1fr auto}.service-row>*:last-child{grid-column:1/-1}.cv-section{display:block}.cv-section>h2{margin-bottom:15px}.record{grid-template-columns:1fr;gap:2px}.footer{flex-direction:column}.compare-output{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.login-page{min-height:100vh;background:radial-gradient(circle at 15% 10%,rgba(202,218,205,.65),transparent 30rem),radial-gradient(circle at 90% 88%,rgba(210,219,225,.65),transparent 34rem),var(--bg)}
.login-shell{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.62fr);align-items:center;gap:clamp(40px,8vw,110px);width:min(1040px,calc(100% - 40px));min-height:100vh;margin:0 auto;padding:56px 0}.login-copy h1{max-width:660px}.login-copy .lead{max-width:580px}.login-card{padding:34px;background:rgba(255,254,250,.9);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);backdrop-filter:blur(16px)}.login-mark{margin:0 0 30px;font-family:Georgia,"Times New Roman",serif;font-size:20px}.login-mark span{margin-left:8px;color:var(--muted);font-family:Inter,system-ui,sans-serif;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.login-card h2{margin-bottom:4px}.login-card form{display:grid;gap:15px;margin-top:24px}.login-card form button{width:100%;margin-top:4px;padding:11px}.login-public{display:flex;gap:12px;align-items:center;margin-top:24px;padding-top:18px;border-top:1px solid var(--line);font-size:12px}.login-public span{margin-right:auto;color:var(--muted)}
@media(max-width:760px){.login-shell{grid-template-columns:1fr;align-content:center;gap:30px}.login-copy h1{font-size:clamp(38px,12vw,56px)}.login-copy .lead{font-size:15px}.login-card{padding:26px}}
.top-three{margin-top:18px}.top-three .section-title{align-items:center}.top-three .section-title h2{margin:0}.top-task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.top-task{display:flex;flex-direction:column;gap:14px;min-height:270px}.top-rank{font:500 34px/1 Georgia,"Times New Roman",serif;color:#a7b4aa}.top-task-copy h3{margin:10px 0 6px;font-size:18px}.top-task-copy p{margin:0;color:var(--muted)}.top-task-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.top-task-actions form{display:flex;gap:6px;flex-wrap:wrap}.top-task-actions button{padding:6px 9px;font-size:12px}.compact-metrics .metric{padding:14px 17px}.compact-metrics .metric b{font-size:24px}.later-tasks summary{cursor:pointer;color:var(--green);font-weight:650}.later-tasks[open] summary{margin-bottom:12px}.mini-action{margin-top:6px!important;padding:3px 7px!important;font-size:11px!important}.focus-now{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:22px;margin:-8px 0 28px;border-color:#a8c4b4;background:linear-gradient(135deg,#f8fcf8,#eef5f0)}.focus-now h2{margin:0}.focus-now p{margin:4px 0 0}.focus-clock{min-width:126px;font:500 34px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--green);font-variant-numeric:tabular-nums}.reflection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.reflection-grid textarea{min-height:120px}.feedback-actions{display:flex;gap:5px;margin-top:8px}.feedback-actions button{padding:3px 8px;font-size:11px}.feedback-actions button.selected{color:#fff;background:var(--green)}
@media(max-width:900px){.top-task-grid{grid-template-columns:1fr}.top-task{min-height:0}.focus-now{grid-template-columns:1fr auto}.focus-now form{grid-column:1/-1}.reflection-grid{grid-template-columns:1fr}}
