:root{font-family:'Microsoft YaHei','PingFang SC',sans-serif;color:#182338;background:#f3f5fa;font-size:16px;--blue:#2544d8}*{box-sizing:border-box}body{margin:0}header{height:90px;background:white;border-bottom:1px solid #e0e5ee;display:flex;align-items:center;justify-content:space-between;padding:0 4vw}.brand{display:flex;align-items:center;gap:13px}.logo{width:43px;height:43px;background:var(--blue);color:white;display:grid;place-items:center;border-radius:12px;font-weight:800;font-size:22px}.brand strong{font-size:19px}.brand small{display:block;color:#68748a;font-size:13px;margin-top:4px}.source{font-size:14px;color:#68748a}.source span{margin-left:20px;color:#2544d8}main{max-width:1600px;margin:auto;padding:35px 4vw}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:12px;letter-spacing:1.6px;color:var(--blue);font-weight:700;margin:0 0 10px}h1{font-size:29px;margin:0;font-weight:700;letter-spacing:-.5px}button,input,select{font:inherit}button{cursor:pointer;background:white;border:1px solid #dce2ed;color:#25334d;border-radius:8px;padding:10px 15px}button:hover{background:#edf1ff;border-color:#9caaf1}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8598ff;outline-offset:2px}button:disabled{opacity:.4;cursor:default}.control{display:flex;justify-content:space-between;gap:20px;align-items:center;background:white;padding:18px;border-radius:12px;border:1px solid #e0e5ee}.date-control{display:flex;align-items:center;gap:12px}.date-control label{font-size:14px;color:#68748a}.date-control button{font-size:22px;padding:2px 12px}.date-control input{border:0;max-width:180px;font-weight:700;color:#182338;padding:8px 0;background:white}#weekday{font-size:14px;color:#68748a}.filters{display:flex;gap:18px}.filters label{font-size:14px;color:#68748a}.filters select{margin-left:8px;border:1px solid #dce2ed;border-radius:6px;padding:8px;max-width:190px;background:white;color:#182338}.week{display:grid;grid-template-columns:repeat(7,1fr);margin-top:15px;gap:9px}.week button{display:flex;flex-direction:column;gap:9px;text-align:left;padding:14px 18px}.week .selected{background:#2544d8;color:white;border-color:#2544d8}.week small{font-size:13px;opacity:.8}.week strong{font-size:22px}.week em{font-style:normal;font-size:12px;opacity:.8}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}.stat{border-left:3px solid #cad2e9;padding:3px 17px}.stat strong{font-size:29px;display:block}.stat span{font-size:14px;color:#68748a}.stat:nth-child(2){border-color:#e8914b}.stat:nth-child(3){border-color:#eac35b}.stat:nth-child(4){border-color:#2544d8}.viewline{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dce2ed;margin:28px 0 22px}.tabs{display:flex;gap:25px}.tabs button{border:0;border-radius:0;background:none;padding:12px 0;color:#68748a}.tabs button.selected{color:var(--blue);border-bottom:3px solid var(--blue);font-weight:700}.tabs span{font-size:12px;background:#fceccd;color:#98641b;border-radius:5px;padding:2px 6px}.hint{font-size:13px;color:#68748a}.board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px;align-items:start}.column{min-width:0}.person{display:flex;align-items:center;gap:9px;margin:0 0 14px}.avatar{width:35px;height:35px;border-radius:10px;background:#e2e8ff;display:grid;place-items:center;color:#2544d8;font-weight:700}.person h2{font-size:17px;margin:0}.person small{font-size:12px;color:#68748a;margin-left:auto}.card{background:white;border:1px solid #e0e5ee;border-radius:11px;margin-bottom:12px;padding:17px;box-shadow:0 3px 7px #1d325005}.card h3{font-size:16px;line-height:1.55;margin:11px 0 7px}.card p{font-size:14px;color:#58657b;line-height:1.7;margin:0 0 15px;overflow-wrap:anywhere}.kind{font-size:12px;border-radius:5px;background:#edf1ff;color:#2544d8;padding:4px 7px}.kind.pack{background:#e9f5f1;color:#287a60}.kind.product{background:#f0eafa;color:#7446a6}.kind.page{background:#e8f2fd;color:#276b9b}.due{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;padding-top:12px;border-top:1px solid #eef0f5}.urgent{color:#bb5420;background:#fff4ec;border-color:#f2c9af}.due b{font-size:12px;color:#a46022;white-space:nowrap}.due .normal{color:#68748a}.card small{display:block;color:#9b691d;font-size:12px;margin-top:10px}.empty{padding:26px 15px;border:1px dashed #ccd5e5;border-radius:10px;color:#68748a;font-size:14px;text-align:center}.ops{margin-top:26px;background:#e9eef9;padding:18px 22px;border-radius:10px}.ops h2{font-size:16px;margin:0 0 10px}.ops p{font-size:14px;color:#58657b;margin:8px 0;line-height:1.6}.rules{margin-top:30px;border-top:1px solid #dce2ed;padding-top:20px;color:#58657b;font-size:14px;line-height:1.9}.rules summary{cursor:pointer;color:#25334d}.rulebody{max-width:1000px}.rulebody label{display:block;margin:10px 0}.rulebody select{padding:7px;border:1px solid #ccd5e5;border-radius:6px;margin-left:10px;max-width:100%}footer{color:#788398;font-size:12px;margin-top:26px}.tablewrap{overflow:auto;border:1px solid #e0e5ee;border-radius:10px;background:white}table{width:100%;border-collapse:collapse;min-width:720px;font-size:14px}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid #edf0f5;line-height:1.6}th{background:#edf1f9;color:#58657b;font-weight:500;white-space:nowrap}td small{display:block;color:#788398;font-size:12px}.notice{font-size:14px;background:#fff6e7;border:1px solid #efd8af;border-radius:9px;padding:15px 20px;line-height:1.8;margin-bottom:15px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project-card{background:white;border:1px solid #e0e5ee;border-radius:12px;padding:20px}.project-card h2{font-size:18px;margin:0 0 15px}.node{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid #edf0f5;font-size:14px}.node small{display:block;font-size:12px;color:#68748a}.node time{white-space:nowrap}.flag{color:#a46022;font-size:12px}.project-card p{font-size:13px;color:#68748a;margin:12px 0 0;line-height:1.7}@media(max-width:1200px){.board{grid-template-columns:repeat(3,minmax(0,1fr))}.control{align-items:flex-start;flex-direction:column}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){header{height:76px}.source{display:none}main{padding:24px 16px}h1{font-size:23px}.heading button{font-size:14px;padding:9px}.board,.project-grid{grid-template-columns:1fr}.summary{gap:4px}.stat{padding-left:9px}.stat strong{font-size:23px}.stat span{font-size:12px}.week{gap:4px}.week button{padding:10px 3px;text-align:center;align-items:center}.week strong{font-size:18px}.week em{font-size:10px}.week small{font-size:12px}.filters{flex-wrap:wrap;gap:10px}.date-control{gap:7px;width:100%;flex-wrap:wrap}.date-control input{font-size:15px}.hint{display:none}.tabs{gap:19px}.tabs button{font-size:14px}.column{margin-bottom:15px}.rulebody select{margin-left:0;display:block}.control{padding:12px}.person small{font-size:14px}}
.heading-actions{display:flex;gap:10px}button.primary{background:#2544d8;color:white;border-color:#2544d8}.project-title{display:flex;justify-content:space-between;align-items:start;gap:12px}.project-title h2{margin-top:5px}.edit-project{font-size:14px;padding:5px 12px}.sync-notice{font-size:13px;color:#62708a;margin:-8px 0 16px}.sync-notice.error{color:#b24d2b}.sync-notice button{margin-left:12px;padding:4px 9px;font-size:13px}dialog{border:1px solid #dce2ed;border-radius:15px;width:min(780px,calc(100% - 24px));padding:0;color:#182338;max-height:90vh;box-shadow:0 20px 90px #10214b40}dialog::backdrop{background:#15274466}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e0e5ee;background:white;position:sticky;top:0;z-index:1}.dialog-head h2{font-size:21px;margin:0}.dialog-head button{font-size:22px;border:0;padding:3px 10px}.manage-actions{padding:18px 24px;display:flex;align-items:center;justify-content:space-between}.manage-list{padding:0 24px 24px}.manage-row{display:flex;gap:15px;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #e5e9f2}.manage-row small{display:block;margin-top:6px;font-size:13px;color:#68748a}.manage-row button{font-size:14px;padding:7px 12px;margin-left:7px}.danger{color:#b54035}.editor-body{padding:22px 24px}.editor-body label{display:block;font-size:14px;color:#58657b;margin-bottom:14px}.editor-body input,.editor-body select{display:block;width:100%;padding:10px 12px;font:inherit;background:white;color:#182338;border:1px solid #ccd5e5;border-radius:7px;margin-top:7px;min-height:43px}.editor-body input:disabled{background:#eef0f5;color:#8793a4}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}fieldset{border:1px solid #e0e5ee;border-radius:10px;padding:18px;margin:20px 0}legend{font-size:16px;color:#2544d8;font-weight:700;padding:0 8px}.field-hint{font-size:13px;line-height:1.7;color:#68748a;margin:0 0 14px}.dialog-footer{display:flex;justify-content:flex-end;gap:12px;padding:18px 24px;background:white;border-top:1px solid #e0e5ee;position:sticky;bottom:0}.form-error{color:#b54035;font-size:14px;line-height:1.7}#manager>.notice,#manageError{margin:0 24px 12px}#manager>.notice a{color:#2544d8}@media(max-width:650px){.heading{align-items:start;gap:12px}.heading-actions{flex-direction:column;flex-shrink:0}.form-grid{grid-template-columns:1fr;gap:0}.editor-body,.dialog-head,.dialog-footer{padding:16px}.manage-row{align-items:start}.manage-row>div:last-child{display:flex;flex-direction:column;gap:8px}.manage-list{padding:0 16px 16px}.dialog-head h2{font-size:19px}}

.range-hint{font-size:14px;color:#68748a;line-height:1.8;margin:18px 0 0}.filters{flex-wrap:wrap}.control{flex-wrap:wrap}
.card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.card-actions button{font-size:13px;padding:7px 9px}.card.done{background:#eff8f3;border-color:#bfdfcc}.completed-label{display:block;font-size:13px;color:#287a60}.project-notes{font-size:13px;line-height:1.7;margin-top:12px}.project-notes summary{cursor:pointer;color:#2544d8}.project-notes time{font-size:12px;color:#68748a}.project-notes>div{border-top:1px solid #dce2ed;padding-top:10px;margin-top:10px}.project-notes p{white-space:pre-wrap;overflow-wrap:anywhere}.editor-body textarea{font:inherit;width:100%;padding:10px;border:1px solid #ccd5e5;border-radius:7px;margin-top:7px;resize:vertical}.confetti{position:fixed;inset:0;pointer-events:none;z-index:10000;overflow:hidden}.confetti i{position:absolute;top:-20px;width:9px;height:15px;animation:fall 2s ease-in forwards}.completion-toast{position:absolute;top:20%;left:50%;transform:translateX(-50%);background:#2544d8;color:white;padding:15px 25px;border-radius:12px;white-space:nowrap;box-shadow:0 10px 40px #10214b40}@keyframes fall{to{top:110%;transform:rotate(540deg)}}

