:root{--navy:#112a43;--navy-2:#173a5b;--ink:#182634;--muted:#657484;--line:#dce4ea;--paper:#f4f7f9;--white:#fff;--teal:#0e9f91;--teal-soft:#dff5f1;--orange:#db7b28;--orange-soft:#fff0df;--blue:#2d72c7;--blue-soft:#e7f0fb;--purple:#7357c7;--purple-soft:#eee9fb;--red:#c74646;--shadow:0 16px 38px rgba(17,42,67,.09)}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:16px}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--navy);color:white;padding:30px 22px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;margin:0 8px 42px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid #66dac8;border-radius:12px;color:#78ecd9;font-weight:700}.brand strong{display:block;font-size:1.2rem;letter-spacing:.08em}.brand small{font-size:.65rem;letter-spacing:.14em;color:#8fa9bf}nav{display:grid;gap:8px}.nav-item{border:0;background:transparent;color:#adc0d0;padding:13px 14px;border-radius:10px;text-align:left;font:inherit;cursor:pointer;display:flex;gap:12px;align-items:center}.nav-item span{font-size:1.25rem}.nav-item:hover,.nav-item.active{background:rgba(113,229,210,.12);color:#fff}.nav-item.active{box-shadow:inset 3px 0 #63dfcb}.team-card{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:22px 6px 0}.team-card p{font-size:.8rem;color:#8fa9bf}.avatars{display:flex;margin:12px 0}.avatars span{width:34px;height:34px;border:2px solid var(--navy);border-radius:50%;display:grid;place-items:center;background:#2f6386;font-size:.75rem;margin-left:-6px}.avatars span:first-child{margin-left:0}.avatars .mentor{background:#d9853f}.team-card small{color:#8fa9bf}main{margin-left:250px;min-height:100vh;padding:36px 42px 60px}.topbar{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.eyebrow{margin:0 0 7px;color:var(--teal);letter-spacing:.14em;font-size:.72rem;font-weight:800}.topbar h1{font-size:2rem;margin:0}.header-actions{display:flex;gap:10px}button,select,input,textarea{font:inherit}.primary,.ghost{border-radius:9px;padding:11px 17px;font-weight:700;cursor:pointer}.primary{background:var(--teal);color:#fff;border:1px solid var(--teal);box-shadow:0 7px 18px rgba(14,159,145,.18)}.primary:hover{background:#087f75}.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.view{display:none}.view.active{display:block}.project-strip{background:linear-gradient(110deg,#173a5b,#112a43);border-radius:18px;padding:25px 28px;color:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow)}.status-chip{display:inline-block;color:#89f1de;background:rgba(102,229,207,.13);border:1px solid rgba(102,229,207,.35);padding:4px 9px;border-radius:99px;font-size:.75rem}.project-strip h2{margin:10px 0 7px;font-size:1.25rem}.project-strip p{margin:0;color:#a9bdcc;font-size:.82rem}.progress-block{width:280px}.progress-block>div:first-child{display:flex;justify-content:space-between;margin-bottom:9px;color:#c8d6e0}.progress-block strong{color:#fff}.progress-track{height:8px;background:rgba(255,255,255,.13);border-radius:99px;overflow:hidden}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#5fdcc8,#ffb45f);border-radius:99px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.stats article{background:#fff;border:1px solid #e6ebef;border-radius:14px;padding:18px;display:flex;align-items:center;gap:13px;box-shadow:0 4px 18px rgba(17,42,67,.04)}.stat-icon{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-weight:900}.teal{background:var(--teal-soft);color:var(--teal)}.orange{background:var(--orange-soft);color:var(--orange)}.blue{background:var(--blue-soft);color:var(--blue)}.purple{background:var(--purple-soft);color:var(--purple)}.stats strong{font-size:1.55rem}.stats p{font-size:.75rem;color:var(--muted);margin:1px 0 0}.stats small{margin-left:auto;align-self:flex-end;color:var(--muted);font-size:.68rem}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px}.panel{background:#fff;border:1px solid #e2e8ed;border-radius:16px;padding:23px;box-shadow:0 5px 23px rgba(17,42,67,.04)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.panel-head h3{margin:0;font-size:1.1rem}.text-btn{border:0;background:none;color:var(--teal);cursor:pointer;font-weight:700;font-size:.78rem}.experiment-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:16px;padding:15px 4px;border-top:1px solid #edf1f4}.experiment-row:first-child{border-top:0}.date-box{background:#eff4f6;border-radius:10px;padding:8px;text-align:center}.date-box strong{display:block;font-size:1.3rem;color:var(--navy)}.date-box small{color:var(--muted)}.row-main h4{margin:0 0 7px}.row-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.76rem}.badge{display:inline-flex;padding:4px 8px;border-radius:99px;font-size:.72rem;font-weight:700;background:#eef2f4;color:#587080}.badge.待确认,.badge.准备中{background:var(--orange-soft);color:var(--orange)}.badge.可以开始,.badge.已完成{background:var(--teal-soft);color:var(--teal)}.badge.进行中{background:var(--blue-soft);color:var(--blue)}.activity{display:grid;grid-template-columns:9px 1fr;gap:13px;margin:18px 0}.activity-dot{width:9px;height:9px;border-radius:50%;background:var(--teal);margin-top:6px;box-shadow:0 0 0 4px var(--teal-soft)}.activity p{margin:0;line-height:1.55;font-size:.82rem}.activity time{color:var(--muted);font-size:.7rem}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.filters{display:flex;gap:10px}.filters select{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 36px 9px 12px}.toolbar>span{font-size:.8rem;color:var(--muted)}.experiment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.experiment-card{background:#fff;border:1px solid #e1e8ec;border-radius:14px;padding:19px;box-shadow:0 4px 15px rgba(17,42,67,.04);position:relative}.card-top{display:flex;justify-content:space-between;align-items:center}.priority{font-size:.7rem;color:var(--muted)}.priority.紧急{color:var(--red)}.experiment-card h3{font-size:1rem;margin:15px 0 8px}.experiment-card .purpose{font-size:.78rem;color:var(--muted);line-height:1.6;height:42px;overflow:hidden}.detail-list{display:grid;gap:8px;border-top:1px solid #edf1f4;padding-top:13px;margin-top:14px;font-size:.76rem;color:#526270}.detail-list div{display:flex;justify-content:space-between;gap:10px}.people-mini{display:flex;gap:5px}.people-mini span{background:#edf3f6;border-radius:99px;padding:3px 7px}.card-actions{display:flex;gap:8px;margin-top:16px}.card-actions button{flex:1;border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px;cursor:pointer;color:var(--navy);font-weight:700;font-size:.75rem}.card-actions button:hover{border-color:var(--teal);color:var(--teal)}.timeline-wrap{max-width:900px}.timeline{position:relative;padding-left:28px}.timeline:before{content:"";position:absolute;left:6px;top:6px;bottom:12px;width:2px;background:#dbe7eb}.timeline-item{position:relative;padding:0 0 27px 20px}.timeline-item:before{content:"";position:absolute;left:-27px;top:4px;width:13px;height:13px;border-radius:50%;background:#fff;border:3px solid var(--teal)}.timeline-item time{font-size:.75rem;color:var(--teal);font-weight:800}.timeline-item h4{margin:5px 0}.timeline-item p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.6}.history-list{display:grid}.history-item{display:grid;grid-template-columns:150px 100px 1fr;gap:15px;padding:16px 5px;border-top:1px solid #edf1f4}.history-item:first-child{border-top:0}.history-item time,.history-item span{font-size:.77rem;color:var(--muted)}.history-item p{margin:0;font-size:.83rem;line-height:1.55}.history-item strong{color:var(--navy)}.hint{font-size:.76rem;color:var(--muted);margin:0}.modal-backdrop{position:fixed;inset:0;background:rgba(5,20,34,.62);z-index:20;display:grid;place-items:center;padding:25px;backdrop-filter:blur(3px)}.modal-backdrop[hidden]{display:none}.modal{background:#fff;width:min(850px,100%);max-height:92vh;overflow:auto;border-radius:18px;padding:26px;box-shadow:0 30px 80px rgba(0,0,0,.25)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:16px}.modal-head h2{margin:0}.close-btn{border:0;background:#eef2f4;width:34px;height:34px;border-radius:50%;font-size:1.5rem;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:20px}.form-grid label{display:grid;gap:7px;font-size:.78rem;font-weight:700;color:#3e5263}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #ced9df;border-radius:8px;padding:10px 11px;background:#fff;color:var(--ink)}.form-grid textarea{resize:vertical}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:3px solid rgba(14,159,145,.13);border-color:var(--teal)}.form-grid small{font-weight:400;color:var(--muted)}.reason-field{background:var(--orange-soft);padding:12px;border-radius:9px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.toast{position:fixed;right:28px;bottom:28px;background:var(--navy);color:#fff;padding:12px 18px;border-radius:9px;box-shadow:var(--shadow);z-index:40;opacity:0;transform:translateY(10px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:none}.empty{padding:35px;text-align:center;color:var(--muted)}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.experiment-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{position:static;width:100%;height:auto;padding:16px}.brand{margin:0 0 15px}.sidebar nav{display:flex;overflow:auto}.nav-item{white-space:nowrap}.team-card{display:none}main{margin:0;padding:22px 16px}.topbar{align-items:flex-start;gap:15px}.topbar h1{font-size:1.5rem}.header-actions .ghost{display:none}.project-strip{display:block}.progress-block{width:100%;margin-top:20px}.stats{grid-template-columns:1fr 1fr}.stats small{display:none}.experiment-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.history-item{grid-template-columns:1fr;gap:4px}.filters{flex-wrap:wrap}}
@media(max-width:440px){.stats{grid-template-columns:1fr}.header-actions .primary{padding:10px}.experiment-row{grid-template-columns:58px 1fr}.experiment-row>.badge{grid-column:2}.topbar{align-items:center}.topbar .eyebrow{display:none}}

.team-card-head{display:flex;justify-content:space-between;align-items:center}.team-card-head p{margin:0}.team-card-head button{border:0;background:none;color:#71dfcd;font-size:.75rem;cursor:pointer;padding:5px}.avatars .paused{filter:grayscale(1);opacity:.55}.compact{padding:8px 12px;font-size:.78rem}.timeline-item{padding-right:75px}.timeline-item.计划中:before{border-color:#94a3ad}.timeline-item.进行中:before{border-color:var(--orange)}.timeline-edit{position:absolute;right:0;top:0;border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:7px;padding:6px 9px;cursor:pointer;font-size:.72rem}.timeline-state{margin-left:8px;font-size:.7rem;padding:3px 7px;border-radius:99px;background:var(--teal-soft);color:var(--teal)}.timeline-state.进行中{background:var(--orange-soft);color:var(--orange)}.timeline-state.计划中{background:#eef2f4;color:#60717f}.small-modal{max-width:590px}.one-column{grid-template-columns:1fr}.form-note{color:var(--muted);font-size:.82rem;line-height:1.6}.member-row{display:grid;grid-template-columns:minmax(130px,1.2fr) 1fr 1fr auto;gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid #edf1f4}.member-row label{display:grid;gap:5px;color:#526270;font-size:.75rem;font-weight:700}.member-row input,.member-row select{width:100%;border:1px solid #ced9df;border-radius:8px;padding:9px;background:#fff}.remove-member{width:36px;height:38px;border:1px solid #efd0d0;background:#fff5f5;color:var(--red);border-radius:8px;cursor:pointer}.add-row-btn{margin-top:14px;border:1px dashed #9ccfc8;background:#f2fbf9;color:var(--teal);border-radius:8px;padding:9px 13px;cursor:pointer;font-weight:700}
@media(max-width:760px){.member-row{grid-template-columns:1fr 1fr}.member-row label:first-child{grid-column:1/-1}.remove-member{justify-self:end}.timeline-item{padding-right:0}.timeline-edit{position:static;margin-top:10px}.compact{white-space:nowrap}}

.choice-field{border:1px solid #ced9df;border-radius:10px;padding:13px;margin:0}.choice-field legend{font-size:.78rem;font-weight:700;color:#3e5263;padding:0 5px}.check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.check-grid label,.switch-line{display:flex;align-items:center;gap:7px;background:#f3f7f8;border:1px solid #e2e9ed;border-radius:8px;padding:9px;font-weight:500;cursor:pointer}.check-grid input,.switch-line input,.volunteer-box input{accent-color:var(--teal)}.check-grid small{color:var(--muted);margin-left:auto}.conditional-input{margin-top:10px}.field-help{margin:0 0 10px;color:var(--muted);font-weight:400;font-size:.75rem}.switch-line{margin-top:10px;width:max-content}.type-chips{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.type-chips span{font-size:.67rem;color:#476272;background:#edf3f6;border-radius:99px;padding:4px 7px}.volunteer-box{border-top:1px dashed #dce5e9;margin-top:13px;padding-top:11px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.72rem}.volunteer-box>span{font-weight:800;color:var(--teal);margin-right:2px}.volunteer-box label{display:flex;gap:4px;align-items:center;background:#f2fbf9;border-radius:6px;padding:4px 7px;cursor:pointer}.volunteer-box small{color:var(--muted)}
.timeline-mode-note{background:#eef9f7;color:#37665f;border:1px solid #cde8e3;border-radius:9px;padding:10px 13px;font-size:.78rem;margin:-5px 0 22px}.insert-node{display:flex;align-items:center;gap:8px;width:100%;border:0;border-top:1px dashed #a9cec9;background:transparent;color:#6e8b88;padding:7px 0;margin:0 0 10px;cursor:pointer;font-size:.72rem;text-align:left}.insert-node span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e2f5f2;color:var(--teal);font-weight:800}.insert-node:hover{color:var(--teal)}.insert-node.end{border:1px dashed #9ccfc8;border-radius:10px;padding:11px;margin-left:-8px;width:calc(100% + 8px)}.timeline-actions{position:absolute;right:0;top:0;display:flex;gap:6px}.timeline-actions button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:7px;padding:6px 9px;cursor:pointer;font-size:.72rem}.timeline-actions .danger{color:var(--red);border-color:#efd0d0}.member-row.fixed{grid-template-columns:1fr 1fr}.member-row.fixed label:first-child{grid-column:auto}
.process-modal{max-width:900px}.mode-tabs{display:flex;gap:7px;margin:18px 0;border-bottom:1px solid var(--line);padding-bottom:10px}.mode-tabs button{border:0;background:#eef3f5;color:#566a78;border-radius:8px;padding:9px 13px;cursor:pointer;font-weight:700}.mode-tabs button.active{background:var(--navy);color:#fff}.editor-toolbar{display:flex;gap:6px;flex-wrap:wrap;background:#f3f6f7;border:1px solid #d7e0e5;border-bottom:0;border-radius:10px 10px 0 0;padding:8px}.editor-toolbar button{border:1px solid #d3dde2;background:#fff;border-radius:6px;padding:6px 10px;cursor:pointer}.rich-editor{min-height:320px;border:1px solid #d7e0e5;border-radius:0 0 10px 10px;padding:18px;line-height:1.75;outline:none;overflow:auto}.rich-editor:empty:before{content:attr(data-placeholder);color:#9aa8b2}.rich-editor img{max-width:100%;max-height:420px;border-radius:8px;display:block;margin:auto}.rich-editor figure{margin:18px 0;text-align:center}.rich-editor figcaption{color:var(--muted);font-size:.78rem;margin-top:7px}.local-note{font-size:.72rem;color:var(--orange);margin:8px 0 0}.upload-zone{display:grid;place-items:center;gap:12px;border:2px dashed #bad4d0;border-radius:14px;padding:50px 25px;background:#f5fbfa;color:var(--navy);cursor:pointer;text-align:center}.upload-zone input{max-width:280px}.upload-zone span{font-weight:800}.upload-zone small{color:var(--muted)}
@media(max-width:760px){.check-grid{grid-template-columns:1fr 1fr}.timeline-actions{position:static;margin-top:10px}.member-row.fixed{grid-template-columns:1fr}.process-modal{padding:18px}.rich-editor{min-height:260px}}

.project-heading{min-width:0;flex:1}.project-heading h2{display:inline-block;max-width:100%;padding:4px 7px;margin-left:-7px;border-radius:7px;outline:none;border:1px dashed transparent}.project-heading h2:hover{border-color:rgba(137,241,222,.45);background:rgba(255,255,255,.05)}.project-heading h2:focus{border-color:#89f1de;background:rgba(255,255,255,.1)}.project-links{display:flex;gap:10px;margin-left:25px}.project-links button{min-width:145px;background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:11px;padding:13px 15px;cursor:pointer;font-weight:700;text-align:left}.project-links button:hover{background:rgba(102,229,207,.14);border-color:rgba(102,229,207,.45)}.project-links span{float:right;color:#72e2d0}.check-grid{grid-template-columns:repeat(auto-fit,minmax(138px,max-content));align-items:center}.check-grid label{white-space:nowrap;min-width:max-content;justify-content:flex-start}.people-checks{grid-template-columns:repeat(auto-fit,minmax(150px,max-content))}
@media(max-width:760px){.project-strip{gap:18px}.project-links{margin-left:0;flex-wrap:wrap}.project-links button{flex:1;min-width:140px}.check-grid,.people-checks{grid-template-columns:repeat(2,minmax(140px,1fr))}.check-grid label{min-width:0}}

/* Expanded collaboration modules */
.sidebar{overflow-y:auto}.fixed-team-list{display:grid;gap:7px;margin-top:12px}.fixed-member{display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.055);border-radius:8px;padding:7px 9px}.fixed-member span{font-size:.75rem;font-weight:700}.fixed-member small{font-size:.66rem;color:#8fa9bf}.panel-actions{display:flex;gap:8px}.timeline-wrap{max-width:none}.timeline-lane{border-top:1px solid var(--line);padding:22px 0 5px}.timeline-lane:first-of-type{border-top:0;padding-top:0}.timeline-lane-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.timeline-lane-head>h4{margin:0;color:var(--navy);font-size:1.02rem}.danger-link{border:0;background:none;color:var(--red);cursor:pointer;font-size:.75rem}.volunteer-box.locked{opacity:.66}.volunteer-box input:disabled{cursor:not-allowed}.reference-choice{display:flex;gap:8px}.reference-choice label{display:flex;align-items:center;gap:6px;background:#f3f7f8;border:1px solid #e2e9ed;border-radius:8px;padding:8px 13px}.reference-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.reference-picker label{display:flex;align-items:center;gap:7px;background:#f7f9fa;border:1px solid var(--line);border-radius:8px;padding:9px;font-weight:500}.reference-picker small{margin-left:auto}

.outline-panel{max-width:1100px}.outline-note{color:var(--muted);font-size:.8rem;margin:-7px 0 20px}.outline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.outline-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fbfcfd}.outline-card-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:#f0f5f6;border-bottom:1px solid var(--line)}.outline-card-head>div{display:flex;align-items:center;gap:10px}.outline-card-head span{color:var(--teal);font-size:.72rem;font-weight:900}.outline-card-head h4{margin:0;font-size:1.04rem}.outline-card-head time{font-size:.7rem;color:var(--muted)}.outline-editor{min-height:190px;padding:18px;line-height:1.75;outline:none;background:#fff}.outline-editor[contenteditable=true]{box-shadow:inset 0 0 0 2px rgba(14,159,145,.13)}.outline-editor:empty:before{content:attr(data-placeholder);color:#9aa8b2}.outline-editor img{display:block;max-width:100%;max-height:360px;margin:auto;border-radius:9px}.outline-editor figure{text-align:center;margin:15px 0}.outline-editor figcaption{font-size:.75rem;color:var(--muted)}.outline-toolbar{border:0;border-bottom:1px solid var(--line);border-radius:0}.outline-toolbar select{border:1px solid #d3dde2;background:#fff;border-radius:6px;padding:6px 8px}

.calendar-panel{max-width:1050px}.calendar-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.76rem;color:var(--muted)}.calendar-legend span{display:flex;align-items:center;gap:6px}.dot,.calendar-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.water{background:#f2cf72}.chore{background:#929ba3}.done{background:#36a66f}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-week{border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;overflow:hidden;background:#edf3f5}.calendar-week span{text-align:center;padding:10px;font-size:.75rem;font-weight:800;color:#60717f}.calendar-grid{border-left:1px solid var(--line);border-top:1px solid var(--line)}.calendar-cell{min-height:112px;position:relative;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:10px;text-align:left;cursor:pointer;color:var(--ink)}.calendar-cell:not(.blank):hover{background:#f3fbf9}.calendar-cell.blank{background:#f5f7f8;cursor:default}.calendar-cell.today{box-shadow:inset 0 0 0 2px var(--teal)}.calendar-cell b{font-size:.82rem}.calendar-task-title{display:block;font-size:.7rem;color:#687783;margin:11px 0 20px;line-height:1.4;overflow:hidden}.calendar-dot{position:absolute;bottom:9px}.calendar-dot.left{left:10px}.calendar-dot.right{right:10px}.empty-dot{display:none}.existing-tasks{display:grid;gap:8px;margin:16px 0}.existing-tasks>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px;background:#f4f7f8;border-radius:9px}.existing-tasks p{margin:0;font-size:.8rem}.existing-tasks button{border:1px solid var(--teal);background:#fff;color:var(--teal);border-radius:7px;padding:6px 9px;cursor:pointer}.existing-tasks button:disabled{border-color:var(--line);color:#7a898f}.task-kind{font-size:.68rem;font-weight:800;border-radius:99px;padding:4px 7px}.task-kind.water{color:#856111}.task-kind.chore{color:#fff}

.literature-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.literature-panel{min-width:0}.literature-list{display:grid;gap:10px}.literature-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:11px;border:1px solid var(--line);border-radius:11px;padding:12px}.file-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;background:var(--teal-soft);color:var(--teal);font-size:.68rem;font-weight:900}.literature-list h4{margin:0 0 3px;font-size:.84rem}.literature-list p{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.72rem}.literature-list time{font-size:.66rem;color:#89969f}.literature-list a{color:var(--teal);font-size:.75rem;font-weight:700;text-decoration:none}.delete-literature{border:0;background:#fff0f0;color:var(--red);border-radius:50%;width:28px;height:28px;cursor:pointer}

@media(max-width:1050px){.outline-grid,.literature-columns{grid-template-columns:1fr}}
@media(max-width:760px){.panel-actions{flex-wrap:wrap;justify-content:flex-end}.reference-picker{grid-template-columns:1fr}.calendar-legend{justify-content:flex-start}.calendar-cell{min-height:76px;padding:7px}.calendar-task-title{font-size:.62rem;margin-top:6px}.calendar-dot.left{left:7px}.calendar-dot.right{right:7px}.outline-card-head{align-items:flex-start;gap:8px}.outline-card-head time{text-align:right}.literature-list article{grid-template-columns:auto minmax(0,1fr) auto}.literature-list a{grid-column:2}.delete-literature{grid-column:3;grid-row:1}.team-card{display:none}}

.timeline-lane-head>div>h4{margin:0;color:var(--navy);font-size:1.02rem}.timeline-lane-head>div>small{display:block;color:var(--muted);font-size:.7rem;margin-top:4px}.timeline-switcher{display:flex;align-items:center;justify-content:center;gap:13px;margin:2px 0 22px}.timeline-switcher>span{min-width:52px;text-align:center;color:var(--muted);font-size:.76rem;font-weight:800}.circle-arrow{width:38px;height:38px;border-radius:50%;border:1px solid #b8d8d3;background:#fff;color:var(--teal);font-size:1.15rem;font-weight:900;cursor:pointer;box-shadow:0 5px 13px rgba(17,42,67,.07)}.circle-arrow:hover{background:var(--teal);color:#fff;border-color:var(--teal)}.task-type-hint{margin:-6px 0 0;padding:10px 12px;border-radius:8px;background:#fff8df;color:#7a611d;font-size:.75rem;line-height:1.55}
.calendar-heading{display:flex;align-items:center;gap:10px}.calendar-heading h3{min-width:220px;text-align:center}.calendar-heading .circle-arrow{width:32px;height:32px;font-size:1rem;box-shadow:none}.month-today{border:0;background:transparent;color:var(--teal);font-size:.72rem;font-weight:800;cursor:pointer;padding:6px}.month-today:hover{text-decoration:underline}@media(max-width:760px){.calendar-heading{flex-wrap:wrap}.calendar-heading h3{min-width:170px}.month-today{width:100%;text-align:left;padding-left:42px}}
.task-reminder{background:linear-gradient(90deg,#fffdf6,#fff)}.reminder-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:1px}.reminder-dot.water{background:#f2cf72}.reminder-dot.chore{background:#929ba3}.badge.已逾期{background:#fff0f0;color:var(--red)}.badge.今天{background:var(--orange-soft);color:var(--orange)}.badge.待完成{background:#eef2f4;color:#60717f}

body.cloud-booting .sidebar,body.cloud-booting main,body.cloud-locked .sidebar,body.cloud-locked main{display:none}.auth-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 15%,#215276 0,#112a43 38%,#091b2d 100%)}.auth-card{width:min(430px,100%);background:#fff;border-radius:20px;padding:30px;box-shadow:0 28px 80px rgba(0,0,0,.28)}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:25px}.auth-brand .brand-mark{background:var(--navy)}.auth-brand strong{display:block;font-size:1.2rem}.auth-brand small{display:block;color:var(--muted);margin-top:3px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#eef3f5;padding:5px;border-radius:10px;margin-bottom:20px}.auth-tabs button{border:0;background:transparent;border-radius:7px;padding:10px;cursor:pointer;font-weight:800;color:#60717f}.auth-tabs button.active{background:#fff;color:var(--navy);box-shadow:0 3px 10px rgba(17,42,67,.08)}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:6px;font-size:.8rem;font-weight:800;color:#3e5263}.auth-form input{border:1px solid #ced9df;border-radius:9px;padding:11px}.auth-form .primary{margin-top:5px}.auth-message{min-height:22px;color:var(--red);font-size:.78rem;line-height:1.5}.auth-help{display:block;color:var(--muted);line-height:1.55}.signed-user{align-self:center;color:var(--muted);font-size:.76rem}.accounts-panel{max-width:900px}.account-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:14px 4px;border-top:1px solid var(--line)}.account-row:first-child{border-top:0}.account-row strong{display:block}.account-row div span{display:block;color:var(--muted);font-size:.74rem;margin-top:3px}.account-state{font-size:.7rem;font-weight:800;border-radius:99px;padding:5px 9px}.account-state.active{background:var(--teal-soft);color:var(--teal)}.account-state.pending{background:var(--orange-soft);color:var(--orange)}@media(max-width:760px){.account-row{grid-template-columns:1fr auto}.account-row .ghost{grid-column:1/-1}.signed-user{display:none}}
.card-meta{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.experiment-delete{border:1px solid #f0caca;background:#fff7f7;color:var(--red);border-radius:7px;padding:6px 9px;font-size:.72rem;font-weight:700;cursor:pointer;flex:0 0 auto}.experiment-delete:hover,.experiment-delete:focus-visible{background:#fff0f0;border-color:var(--red);outline:none}.experiment-delete:focus-visible{box-shadow:0 0 0 3px rgba(201,78,78,.14)}
