:root{--paper:#f6f7f3;--white:#fff;--ink:#23372f;--muted:#778078;--line:#e1e6df;--green:#215846;--light:#edf3ed;--orange:#b66c2f}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}button,input,textarea,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:6px;padding:9px 15px;background:white;color:var(--ink)}button:hover{background:var(--light)}button:disabled{opacity:.5;cursor:wait}input,textarea,select{display:block;width:100%;padding:11px 12px;border:1px solid #d8dfd6;border-radius:5px;background:#fff;color:var(--ink)}input:focus,textarea:focus,select:focus{outline:2px solid #83a897;outline-offset:1px}textarea{resize:vertical;min-height:105px}label{display:block;font-size:13px;font-weight:500;margin:17px 0 7px}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px;font-weight:650}h2{font-size:19px}h3{font-size:15px}a{color:var(--green)}[hidden]{display:none!important}.muted,.subtle{color:var(--muted)}.small,small{font-size:12px}.eyebrow{color:var(--green);font-size:12px;letter-spacing:2px;margin-bottom:10px}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#173e31}.wide{width:100%;margin-top:18px}.text-btn{border:0;background:none;color:var(--green)}.logo{display:inline-grid;place-items:center;background:var(--green);color:white;font-size:25px;width:39px;height:39px;border-radius:10px;flex-shrink:0}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:23px;font-weight:650}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:1px;font-weight:400}.space-label{font-size:11px;color:var(--muted);letter-spacing:2px;margin:43px 14px 14px}aside{width:221px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:30px 23px}nav{display:grid;gap:7px}nav button{text-align:left;border:0;background:none;padding:12px 15px;color:#68766c}nav button span{display:inline-block;width:30px;font-size:21px;vertical-align:middle}nav button.active{background:var(--light);color:var(--green);font-weight:650}.sidebar-foot{position:absolute;bottom:27px;font-size:11px;color:var(--muted)}.sidebar-foot small{display:block;margin:18px 0 0 12px;font-size:10px}.dot{display:inline-block;background:#5b866b;width:6px;height:6px;border-radius:50%;margin-right:5px}.workspace{margin-left:221px}header{height:77px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 45px;background:#fff;font-size:12px}.header-right{display:flex;align-items:center;gap:16px}.icon-btn{border:0;background:none;font-size:23px;padding:3px 9px}.avatar{border:0;border-radius:50%;background:#e4ece0;width:34px;height:34px;padding:0;font-size:12px;color:var(--green)}main{max-width:1160px;margin:auto;padding:38px 45px 50px;min-height:calc(100vh - 130px)}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.page-head p{margin-top:5px;font-size:13px}.date-label{font-size:12px;color:var(--muted);margin-bottom:7px}.stats{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);border-radius:8px;margin-bottom:30px;padding:23px 0}.stat{padding:0 28px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat-value{font-size:31px;font-weight:600;line-height:1.3;margin:5px 0}.stat-value small{font-weight:400;color:var(--muted);font-size:13px;margin-left:5px}.stat-label{font-size:12px;color:var(--muted)}.stat-note{font-size:11px;color:var(--muted)}.progress{height:4px;background:var(--light);margin-top:12px;width:100%;border:0;display:block}.progress::-webkit-progress-bar{background:var(--light)}.progress::-webkit-progress-value{background:#52785c}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:24px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:5px 0 17px}.filters{display:flex;gap:4px}.filters button{font-size:12px;background:none;border-color:transparent;padding:6px 10px}.filters button.active{background:#e5ece2;color:var(--green)}.section-title{font-size:12px;color:var(--muted);margin:18px 0 9px;display:flex;align-items:center;gap:7px}.count{background:#e9ece7;padding:0 6px;font-size:10px;border-radius:3px}.task-list{background:#fff;border:1px solid var(--line);border-radius:7px;overflow:hidden}.task{display:flex;gap:13px;padding:18px 17px;border-bottom:1px solid #edf0e9;align-items:flex-start}.task:last-child{border:0}.check{width:21px;height:21px;flex-shrink:0;border-radius:50%;padding:0;color:#fff;margin-top:2px;background:white;border:1.5px solid #c4cebf;font-size:12px}.task.done .check{background:#648371;border-color:#648371}.task.done .task-title{text-decoration:line-through;color:#8b948b}.task-body{flex:1;min-width:0}.task-title{font-size:14px;font-weight:500;overflow-wrap:anywhere}.task-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin-top:6px}.badge{border-radius:3px;font-size:10px;padding:1px 6px;background:#edf1ec;color:#728171}.p0{background:#fae7e4;color:#b54337}.p1{background:#fff0dc;color:#b7762c}.p2{background:#e9f0f8;color:#52779e}.p3{background:#edf0eb;color:#81897c}.roll{color:#ac773c}.remove{padding:0 4px;border:0;background:none;color:#a4aca2}.side-card{border:1px solid var(--line);border-radius:7px;padding:19px;margin-bottom:17px;background:#f0f3eb}.side-card h3{margin-bottom:10px}.side-card p{font-size:12px;color:#71806f;line-height:1.9}.side-card .big-num{font-size:34px;font-weight:600;margin:12px 0 0}.side-card.white{background:#fff}.mini-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.empty{padding:38px 22px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #d9e1d4;border-radius:6px}.empty strong{display:block;font-size:15px;color:var(--green);margin-bottom:6px}.empty p{font-size:12px}footer{border-top:1px solid var(--line);padding:15px 45px;font-size:10px;color:#929b90;display:flex;justify-content:space-between}#notice{background:#fff1d7;color:#966225;font-size:12px;padding:10px 45px}.form-panel{background:#fff;border:1px solid var(--line);border-radius:7px;padding:25px;max-width:760px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:13px 0}.chips label{display:flex;align-items:center;gap:6px;font-weight:400;margin:0;border:1px solid var(--line);padding:7px 11px;border-radius:5px}.chips input{width:auto;accent-color:var(--green)}.calendar{background:#fff;border:1px solid var(--line);border-radius:7px;padding:20px}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekday{font-size:11px;color:var(--muted);text-align:center;padding:8px}.day{min-height:72px;border:1px solid transparent;text-align:left;padding:8px;font-size:12px;background:#fafbf8}.day small{display:block;font-size:9px;color:var(--muted);margin-top:6px}.day.today{border-color:#75947c}.day.selected{background:#e5eee2}.day .cal-dot{color:#6b8762}.template{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid var(--line)}.template:last-child{border:0}.template small{display:block;color:var(--muted);margin-top:3px}.board-row{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.board-row .grow{flex:1}.login-brand{margin:35px 7%;display:flex;gap:12px;align-items:center;font-size:24px;font-weight:600}.login-brand .subtle{font-size:10px;letter-spacing:2px;font-weight:400;margin-left:8px}.login-wrap{max-width:1050px;margin:80px auto;display:grid;grid-template-columns:1fr 400px;align-items:center;gap:75px;padding:0 30px}.login-wrap h1{font-size:51px;line-height:1.5}.lead{color:#788271;line-height:2;margin:22px 0;font-size:16px}.login-note{font-size:12px;line-height:2.8;color:#69816c;margin-top:40px}.login-form{background:#fff;border:1px solid var(--line);border-radius:9px;padding:31px}.login-form h2{margin-bottom:8px}.login-form .small{margin-top:16px}.error{color:#b74834;font-size:12px;min-height:18px;margin-top:10px}dialog{border:1px solid var(--line);border-radius:10px;width:min(540px,calc(100% - 28px));padding:25px;color:var(--ink);max-height:85vh}dialog::backdrop{background:#182f2370;backdrop-filter:blur(2px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}#toast{position:fixed;bottom:35px;left:50%;transform:translateX(-50%);background:#243d30;color:#fff;padding:12px 22px;border-radius:6px;max-width:90vw;z-index:10;font-size:13px}.draft{display:grid;grid-template-columns:1fr 80px 80px 25px;gap:8px;margin-top:12px}.danger{color:#ab4b39}.inline-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.notes{white-space:pre-wrap;color:#7c8878;font-size:12px;margin-top:6px}.pending{color:#a16f25}
@media(min-width:1500px){main{padding-top:50px}.task{padding-top:22px;padding-bottom:22px}}@media(max-width:1100px){.content-grid{grid-template-columns:1fr}.right-rail{display:grid;grid-template-columns:1fr 1fr;gap:16px}aside{width:190px;padding:25px 15px}.workspace{margin-left:190px}main{padding:28px}header{padding:0 28px}.login-wrap{gap:30px}}@media(max-width:700px){aside{inset:auto 0 0 0;width:100%;height:calc(65px + env(safe-area-inset-bottom));padding:4px 4px env(safe-area-inset-bottom);border-right:0;border-top:1px solid var(--line);z-index:4}aside .brand,.space-label,.sidebar-foot{display:none}nav{display:grid;grid-template-columns:repeat(5,1fr);gap:0}nav button{font-size:10px;text-align:center;padding:4px 0;border-radius:5px}nav button span{display:block;width:auto;font-size:22px;line-height:1.2;margin-bottom:3px}.workspace{margin-left:0;padding-bottom:70px}header{height:58px;padding:0 18px}.header-right{gap:8px}#syncStatus{font-size:10px}main{padding:25px 16px;min-height:calc(100vh - 150px)}h1{font-size:26px}.page-head{gap:10px}.page-head .primary{font-size:12px;padding:9px 11px}.stats{padding:17px 0;margin-bottom:23px}.stat{padding:0 12px}.stat-value{font-size:26px}.stat-note{font-size:9px}.stat-label{font-size:11px}.content-grid{gap:18px}.right-rail{gap:10px}.side-card{padding:15px}.task{padding:16px 13px;gap:11px}.toolbar{flex-wrap:wrap}footer{padding:14px 16px}footer span{display:none}#notice{padding:9px 17px}.form-panel{padding:18px}.calendar{padding:10px}.day{min-height:57px;padding:5px;font-size:11px}.day small{font-size:8px}.login-brand{margin:22px}.login-wrap{display:block;margin:25px auto;padding:0 22px}.login-wrap h1{font-size:29px}.login-wrap h1 br{display:none}.login-note,.lead{display:none}.login-form{margin-top:25px;padding:24px}.login-wrap .eyebrow{font-size:11px}.draft{grid-template-columns:1fr 65px 65px 22px;gap:4px}.draft input,.draft select{padding:8px 5px}#toast{bottom:85px}.form-row{gap:10px}}

/* 日事 1.1 — forest navigation, warm paper, consistent line icons */
:root{--paper:#f7f8f4;--ink:#263e34;--muted:#7c8875;--line:#e5e9df;--green:#295d49;--light:#edf3e9;--forest:#224b3d;--shadow:0 3px 16px #243c2b04}
body{-webkit-font-smoothing:antialiased}
button{border-radius:8px;transition:background .16s,border-color .16s,transform .16s}
button:hover{border-color:#cbd8c5}
button:active{transform:translateY(1px)}
button:focus-visible,a:focus-visible{outline:2px solid #6f946b;outline-offset:3px}
input,textarea,select{border-color:#dce3d7;border-radius:7px;background:#fcfdfb;padding:12px 13px}
input::placeholder,textarea::placeholder{color:#99a294;font-size:13px}
input:focus,textarea:focus,select:focus{outline:0;border-color:#7e9e72;box-shadow:0 0 0 3px #eaf1e4;background:#fff}
label{font-size:12px;margin-top:20px}
label input,label select,label textarea{margin-top:7px}
h1{font-size:31px;font-weight:650;letter-spacing:-.8px;line-height:1.45}
h2{font-size:20px}h3{font-size:14px}
.icon{width:20px;height:20px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;color:#6b8560}
.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;box-shadow:0 3px 6px #244b3a0a}
.primary .icon{width:17px;height:17px}
.wide{min-height:43px;margin-top:20px}
.text-btn{font-size:12px;padding:7px 9px}
.logo{width:39px;height:42px;border-radius:11px}
.logo .icon{width:28px;height:28px;stroke-width:2}
.brand-dot{color:#bbd392}
.brand{font-size:27px;letter-spacing:1px;color:#fff;gap:11px}
.brand small{font-size:10px;color:#a7bbaa;letter-spacing:1px;margin-top:3px}
.brand .logo{background:#dceab7;color:#2d523d}
aside{width:220px;background:var(--forest);padding:31px 20px;color:#e0e8dd;border:0;z-index:5}
.space-label{font-size:9px;color:#8ca68f;letter-spacing:1.7px;margin:42px 12px 17px}
.space-label span{display:block;font-size:11px;letter-spacing:1px;margin-top:4px;color:#adc0ac}
nav{gap:7px}
nav button{display:flex;align-items:center;gap:12px;padding:12px 14px;color:#c3d1c0;border-radius:7px;font-size:13px}
nav button span{width:auto;font-size:inherit}
nav button:hover{background:#315e4b;color:white}
nav button.active{background:#dce9b8;color:#264937}
nav button .icon{width:19px;height:19px}
nav button .nav-active-dot{margin-left:auto;width:5px;height:5px;background:currentColor;border-radius:50%;visibility:hidden}
nav button.active .nav-active-dot{visibility:visible}
.sidebar-foot{bottom:27px;left:32px;right:32px;border-top:1px solid #426450;padding-top:20px;color:#b2c8aa}
.sidebar-foot .icon{width:28px;height:28px;color:#b7cd9a;margin-bottom:9px}
.sidebar-foot p{font-size:12px;line-height:1.9}
.sidebar-foot small{margin:18px 0 0;font-size:9px;color:#87a38e;letter-spacing:1px}
.workspace{margin-left:220px}
header{height:76px;padding:0 40px;background:#ffffffcc;font-size:11px}
.header-place,.header-right{display:flex;align-items:center;gap:13px}
.header-place{color:#81907f}
.header-place .icon{width:15px;height:15px;color:#809176}
.header-right{gap:12px}
.sync-pill{display:inline-flex;align-items:center;gap:6px;color:#71836b;background:#f1f5ed;padding:4px 9px;border-radius:5px;font-size:10px;white-space:nowrap}
.sync-pill::before{content:'';width:5px;height:5px;border-radius:50%;background:#7b9b66}
.sync-pill.offline{color:#a87435;background:#fcf0df}
.sync-pill.offline::before{background:#c39859}
.header-divider{width:1px;height:20px;background:var(--line)}
.icon-btn{display:inline-grid;place-items:center;padding:6px;min-width:32px;min-height:32px}
.icon-btn .icon{width:18px;height:18px}
.avatar{border:1px solid #d8e2c9;background:#e7edd9;display:inline-grid;place-items:center;color:#5e7750;flex-shrink:0}
main{max-width:1270px;padding:35px 40px 48px}
.page-head{margin-bottom:27px}
.page-head p{font-size:12px;color:#84907e}
.page-head .primary{min-height:41px;padding-inline:17px;white-space:nowrap}
.date-label{display:flex;align-items:center;gap:7px;color:#839075;font-size:10px;margin-bottom:8px;letter-spacing:.3px}
.date-label .icon{width:13px;height:13px}
.stats{gap:16px;margin-bottom:29px;background:none;border:0;border-radius:0;padding:0}
.stat{background:#fff;border:1px solid var(--line)!important;border-radius:10px;padding:20px 23px 18px;position:relative;box-shadow:var(--shadow);min-width:0}
.stat:first-child{background:#eef3e5;border-color:#e0e8d5!important}
.stat-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.stat-label{font-size:11px;color:#7c8872}
.stat-icon{background:#f3f6ef;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:7px;color:#8c9e79}
.stat:first-child .stat-icon{background:#dfe9d1;color:#73905d}
.stat-icon .icon{width:15px;height:15px}
.stat-value{font-size:32px;font-weight:650;letter-spacing:-1px;line-height:1.4;margin:7px 0 8px;font-variant-numeric:tabular-nums}
.stat-value small{color:#8d9982;font-size:12px;letter-spacing:0}
.stat-note{font-size:10px;color:#89937e}
.progress{height:5px;background:#edf1e7;border-radius:3px;overflow:hidden;margin-top:12px}
.progress::-webkit-progress-bar{background:#edf1e7;border-radius:3px}
.progress::-webkit-progress-value{background:#8cae69;border-radius:3px}
.progress::-moz-progress-bar{background:#8cae69;border-radius:3px}
.content-grid{grid-template-columns:minmax(0,1fr) 242px;gap:23px;align-items:start}
.toolbar{gap:12px;margin:0 0 16px;min-height:36px}
.toolbar h3{display:flex;align-items:center;gap:7px}
.filters{gap:3px;background:#eff2e9;border:1px solid #e9ede2;border-radius:6px;padding:3px}
.filters button{font-size:10px;border:0;padding:4px 10px;color:#7d8a73;border-radius:4px}
.filters button.active{background:#fff;color:#466239;box-shadow:0 1px 4px #3550250c}
.section-title{font-size:11px;font-weight:500;color:#819074;margin:23px 0 10px;gap:8px}
.section-title .icon{width:13px;height:13px;color:#8c9e7c}
.count{background:#edf1e7;border-radius:4px;font-weight:500;color:#81906f}
.task-list{border-radius:9px;box-shadow:var(--shadow)}
.task{gap:13px;padding:18px 16px;border-color:#eff2e9;position:relative;transition:background .15s}
.task:hover{background:#fcfdf9}
.check{width:25px;height:25px;border-radius:7px;margin-top:1px;border-color:#d6ddcc;display:inline-grid;place-items:center}
.check .icon{width:15px;height:15px;stroke-width:2.4}
.check:hover{background:#eef3e5;border-color:#89a46e}
.task.done{background:#fafbf7}
.task.done .check{background:#a4b68d;border-color:#a4b68d}
.task.done .task-title{color:#939d86}
.task.done .task-meta{opacity:.85}
.task-title{font-size:13px;overflow-wrap:anywhere;line-height:1.8}
.task-meta{font-size:10px;color:#89977c;margin-top:6px}
.task-meta .icon{width:11px;height:11px;margin-right:3px}
.badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:4px;line-height:1.7;padding:1px 7px}
.p0{background:#fceae6;color:#ae5847}.p1{background:#fbefdc;color:#a47536}.p2{background:#ecf1f8;color:#647f9b}.p3{background:#f0f2e9;color:#7c876d}
.roll{color:#a17b47}
.remove{padding:3px;min-width:26px;min-height:26px;color:#a0ad91;display:inline-grid;place-items:center}
.remove .icon{width:14px;height:14px}
.remove:hover{color:#b26850;background:#fbf0e8}
.side-card{border-color:#e3e9d6;border-radius:10px;padding:22px;margin-bottom:18px;background:#eef3e2;position:relative;overflow:hidden}
.side-card h3{font-size:15px;color:#4d683d}
.side-card p{font-size:11px;color:#82926e}
.focus-mark{position:absolute;top:20px;right:17px;color:#bdcca2}
.focus-mark .icon{width:29px;height:29px;stroke-width:1.2}
.side-card .eyebrow{color:#819568;font-size:8px;margin-bottom:24px;padding-right:20px}
.focus-bottom{border-top:1px solid #dce5cc;margin-top:20px;padding-top:12px}
.side-card .big-num{font-size:39px;line-height:1.3;color:#6e8a4c;letter-spacing:-1px;margin:16px 0 2px}
.big-num small{font-size:11px;font-weight:400;letter-spacing:0}
.side-card.white{border-color:var(--line);box-shadow:var(--shadow)}
.side-card.white h3{color:var(--ink);font-size:13px}
.side-card .text-btn{margin:8px 0 -8px;padding-left:0;font-size:11px}
.side-card .text-btn .icon{width:13px;height:13px}
.mini-row{padding:11px 0;border-color:#f0f2ea;font-size:11px;color:#819173}
.mini-row strong{color:#60764c;font-weight:500}
.side-card.white .small{margin-top:13px;font-size:10px}
.empty{padding:48px 22px;color:#8a987d;border:1px solid var(--line);border-radius:10px}
.empty-icon{margin:0 auto 18px;display:grid;place-items:center;width:58px;height:58px;border-radius:16px;background:#eff4e6;color:#8ba66d}
.empty-icon .icon{width:28px;height:28px;stroke-width:1.4}
.empty strong{color:#5b7347;margin-bottom:7px;font-weight:550}
.empty p{font-size:11px;line-height:1.9}
.empty-action{margin-top:19px}
footer{padding:17px 40px;color:#929d83}
#notice{padding-inline:40px;border-bottom:1px solid #f0debd}
.form-panel{border-radius:10px;padding:27px;max-width:780px;box-shadow:var(--shadow);margin-bottom:23px}
.form-panel>h3{margin-bottom:7px}
.form-panel>textarea{margin-top:18px}
.form-panel form>label:first-child{margin-top:0}
.chips label{gap:7px;padding:8px 12px;border-radius:7px;cursor:pointer}
.chips label:has(input:checked){background:#edf4e5;border-color:#9eb58c}
.chips input{width:14px;height:14px;margin:0}
.calendar{border-radius:10px;padding:21px;box-shadow:var(--shadow)}
.calendar-head{margin-bottom:20px}
.calendar-head button{width:32px;height:32px;padding:0;font-size:18px;border:0;background:#f3f6ee;color:#83996b}
.calendar-grid{gap:5px}
.weekday{font-size:10px;color:#8c977f}
.day{min-width:0;border-radius:6px;color:#6e7e5d;background:#f8faf4;font-variant-numeric:tabular-nums}
.day.today{border-color:#afc58d}
.day.selected{background:#e1eccd;border-color:#b8cd99;color:#50683a;font-weight:600}
.day .cal-dot{color:#7c965d}
.calendar>p{margin-top:16px;font-size:10px;color:#8b997b}
.template{gap:12px;padding:16px;font-size:12px;overflow-wrap:anywhere}
.template small{font-size:10px;color:#839274;margin-top:5px}
.board-row{gap:13px;padding:16px 0}
.board-row:last-child{border:0}
.board-row .grow{min-width:0}
.board-row strong{font-size:13px;font-weight:550}
.board-row button{font-size:11px}
.board-row .avatar{background:#edf2e2;width:40px;height:40px}
.login-brand{margin:36px 6.5%;gap:11px;font-size:28px;letter-spacing:1px}
.login-brand .subtle{font-size:9px;letter-spacing:2px;margin-left:12px;color:#8b9a7a}
.login-wrap{max-width:1070px;margin:53px auto 65px;grid-template-columns:1fr 390px;gap:92px}
.login-story h1{font-size:49px;line-height:1.55;font-weight:600;letter-spacing:-1.3px}
.login-story h1>span{color:#7a9855}
.login-story .eyebrow{font-size:10px;display:flex;align-items:center;gap:10px}
.tiny-line{width:20px;height:1px;background:#8aa471}
.lead{color:#81926f;line-height:2.1;margin:18px 0 28px;font-size:13px}
.login-art{background:#edf2e2;border:1px solid #e3eacb;border-radius:13px;padding:20px;max-width:370px;transform:rotate(-2deg);box-shadow:6px 7px 0 #e8eddc;margin:34px 0 0 5px}
.art-heading{display:flex;gap:12px;align-items:center;font-size:13px;color:#708754;margin-bottom:17px}
.art-heading small{display:block;font-size:7px;color:#8c9e71;letter-spacing:1.6px;margin-top:3px}
.art-heading .icon{width:25px;height:25px;color:#9db576}
.art-item{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #dce5c9;font-size:11px;color:#7b8f63}
.art-check{width:18px;height:18px;background:#a4ba86;border-radius:5px;display:grid;place-items:center;color:#fff}
.art-check .icon{width:12px;height:12px}
.art-check.open{border:1.5px solid #b9c9a2;background:none}
.art-tag{margin-left:auto;background:#e2eacc;color:#7b925e;font-size:8px;padding:2px 6px;border-radius:3px}
.art-caption{display:block;font-size:9px;color:#85976d;margin-top:14px}
.login-form{border-radius:13px;padding:31px;box-shadow:0 12px 40px #3b512b05}
.form-overline{font-size:10px;letter-spacing:1px;color:#8b9c72;margin-bottom:10px}
.login-form h2{font-size:23px}
.login-form .muted{font-size:11px}
.login-form .wide{margin-top:15px}
.login-form .primary{min-height:45px}
.login-form .text-btn{font-size:11px}
.form-security{border-top:1px solid #edf1e7;margin-top:18px;padding-top:18px;display:flex;justify-content:center;align-items:center;gap:6px;font-size:9px;color:#8c9a7c}
.form-security .icon{width:12px;height:12px}
.login-footer{display:flex;justify-content:space-between;margin:25px 6.5%;font-size:10px;color:#929f82}
.error{color:#b96a50;font-size:11px}
dialog{border-radius:13px;width:min(520px,calc(100% - 28px));padding:26px;box-shadow:0 24px 80px #19312333}
dialog::backdrop{background:#182f2366;backdrop-filter:blur(3px)}
#dialogBody>p{color:#758869;font-size:12px}
#toast{background:#2f513e;color:#edf3e4;border-radius:8px;z-index:20;font-size:12px;box-shadow:0 7px 24px #20382820}
.danger{color:#b36d55}
.inline-actions{margin-top:20px}
.inline-actions button{font-size:12px}
.notes{overflow-wrap:anywhere;color:#849676;font-size:11px;margin-top:7px}
.pending{color:#9d7b33}
@media(min-width:1500px){main{padding-top:44px}.task{padding-block:21px}.stats{margin-bottom:33px}}
@media(max-width:1120px){aside{width:195px;padding:28px 16px}.workspace{margin-left:195px}main{padding:29px 27px}header{padding-inline:27px}.content-grid{grid-template-columns:minmax(0,1fr) 210px;gap:17px}.side-card{padding:18px}.stat{padding:17px}.stats{gap:12px}.login-wrap{gap:45px}.login-story h1{font-size:43px}}
@media(min-width:941px){.right-rail{display:block}}
@media(max-width:940px){.content-grid{grid-template-columns:1fr}.right-rail{display:grid;grid-template-columns:1fr 1fr;gap:17px}.side-card .eyebrow{margin-bottom:16px}.login-wrap{grid-template-columns:1fr 355px;gap:30px}}
@media(max-width:700px){
 aside{inset:auto 0 0;width:100%;height:calc(67px + env(safe-area-inset-bottom));padding:5px 5px env(safe-area-inset-bottom);background:#fff;border-top:1px solid #e4e9dc;box-shadow:0 -4px 20px #364b2905}
 aside .brand,.space-label,.sidebar-foot{display:none}
 nav{grid-template-columns:repeat(5,1fr);gap:0}nav button{display:flex;flex-direction:column;gap:4px;font-size:10px;text-align:center;padding:7px 0;border-radius:7px;color:#809168;line-height:1.4}
 nav button span{margin:0;font-size:10px;line-height:1.4}nav button>span[data-icon]{height:20px;display:grid;place-items:center}
 nav button .icon{width:20px;height:20px}nav button.active{background:#eef4e5;color:#658047}
 nav button:hover{background:#f3f6ec;color:#658047}nav button .nav-active-dot{display:none}
 nav button.nav-add>span[data-icon]{background:#315c46;color:#e9efde;width:37px;height:32px;border-radius:9px;margin-top:-5px;margin-bottom:-6px;box-shadow:0 3px 6px #315c4620}
 .workspace{margin-left:0;padding-bottom:calc(67px + env(safe-area-inset-bottom))}
 header{height:59px;padding-inline:19px}.header-place{gap:7px;font-size:10px}.header-place>span[data-icon]{display:none}
 .header-right{gap:6px}.header-divider{margin:0 3px}.sync-pill,#syncStatus{font-size:9px;padding:4px 7px}.avatar{width:31px;height:31px}
 main{padding:24px 18px 28px;min-height:calc(100dvh - 165px)}
 h1{font-size:27px}.page-head{gap:10px;margin-bottom:22px}.page-head p{font-size:11px;max-width:28em}
 .page-head .primary{font-size:11px;padding-inline:11px;min-height:39px}.page-head .primary .icon{width:14px;height:14px}
 .date-label{font-size:9px;margin-bottom:8px}.stats{gap:9px;margin-bottom:24px;padding:0}
 .stat{padding:13px 11px;border-radius:8px}.stat-icon{width:22px;height:22px}.stat-icon .icon{width:12px;height:12px}
 .stat-label{font-size:10px}.stat-value{font-size:27px;margin:7px 0 8px;white-space:nowrap}.stat-value small{font-size:10px;margin-left:3px}
 .stat-note{font-size:9px;line-height:1.7}.progress{margin-top:12px;height:4px}
 .toolbar{gap:8px;margin-bottom:14px}.toolbar h3{font-size:13px}.filters{gap:1px}.filters button{font-size:10px;padding:5px 9px}
 .task{padding:16px 12px;gap:10px}.check{width:28px;height:28px}.check::before{content:'';position:absolute;width:40px;height:43px}
 .task-title{font-size:13px}.task-meta{gap:7px;font-size:9px}.badge{font-size:9px}.remove{min-width:28px;min-height:28px}
 .section-title{margin-top:20px;font-size:10px}.content-grid{gap:22px}.right-rail{gap:12px}.side-card{padding:18px;margin-bottom:0}
 .side-card h3{font-size:14px}.side-card p{font-size:10px}.side-card .big-num{font-size:33px}.focus-bottom{margin-top:14px;padding-top:9px}
 .focus-mark .icon{width:24px;height:24px}.empty{padding:33px 20px}.empty-icon{width:48px;height:48px;border-radius:13px}
 .empty strong{font-size:14px}.empty-action{margin-top:16px;font-size:11px}
 footer{padding:15px 18px;font-size:9px}footer>span:first-child{display:block}footer>span:last-child{display:none}#notice{padding:9px 18px;font-size:11px}
 .form-panel{padding:20px;margin-bottom:20px}.form-row{gap:12px}.form-panel .wide{min-height:45px}
 input,textarea,select{font-size:16px}label{font-size:12px}.chips{gap:7px}.chips label{padding:9px 11px}
 .calendar{padding:14px}.calendar-grid{gap:4px}.day{min-height:58px;padding:6px;font-size:11px}.day small{font-size:8px}
 .board-row{flex-wrap:wrap;gap:9px}.board-row .grow{min-width:calc(100% - 60px)}.board-row>button{margin-left:0}
 .login-brand{margin:24px;font-size:26px}.login-brand .subtle{font-size:8px;margin-left:auto}.login-brand .logo{width:34px;height:37px}
 .login-wrap{display:block;margin:35px auto;padding:0 24px;max-width:475px}.login-story h1{font-size:33px;line-height:1.5;letter-spacing:-.8px}
 .login-story h1 br{display:none}.login-story .eyebrow{font-size:9px;letter-spacing:1px}.lead,.login-art{display:none}
 .login-form{margin-top:25px;padding:25px}.login-form h2{font-size:23px}.login-footer{margin-inline:25px;font-size:9px}.login-footer>span{display:none}
 .draft{grid-template-columns:1fr 65px 65px 25px;gap:5px}.draft input,.draft select{padding:8px 5px;font-size:12px}
 #toast{bottom:calc(82px + env(safe-area-inset-bottom))}dialog{padding:22px}.icon-btn{min-height:36px;min-width:36px}
}
@media(max-width:390px){main{padding-inline:13px}.stat{padding:12px 9px}.stat-icon{display:none}.stat-value{font-size:25px}.stat-value small{font-size:9px}.stat-note{font-size:8px}.page-head h1{font-size:25px}.page-head p{font-size:10px}.filters button{padding-inline:7px}.side-card{padding:14px}.side-card h3{font-size:12px}.side-card .eyebrow{letter-spacing:1px}.focus-mark{top:15px;right:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}


#memberWindow{width:min(920px,calc(100% - 28px));max-height:90dvh;overflow:auto;background:var(--paper)}
#memberWindow .dialog-head{align-items:flex-start;gap:16px}#memberWindow .eyebrow{margin-bottom:5px}#memberWindowTitle{font-size:24px;margin-bottom:6px}#memberWindow .check:disabled{cursor:default;opacity:1} .member-window-controls{display:flex;align-items:flex-end;gap:16px;justify-content:space-between;margin-bottom:18px}.member-window-controls label{margin:0;min-width:150px}.member-window-controls select{margin-top:6px}.member-window-summary{padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fff}#memberWindow .task-list{margin-bottom:20px}@media(max-width:560px){#memberWindow{padding:18px}#memberWindowTitle{font-size:21px}.member-window-controls{gap:10px}.member-window-controls label{min-width:120px}}

.avatar{overflow:hidden;flex-shrink:0}.avatar img{display:block;width:100%;height:100%;object-fit:cover}#profile:has(img){padding:0}.profile-avatar{width:72px;height:72px;font-size:26px;border-radius:50%}.profile-summary,.profile-avatar-editor{display:flex;gap:18px;align-items:center;margin-bottom:24px}.profile-summary .text-btn{padding-left:0}.avatar-upload-label{margin:0;cursor:pointer;color:var(--green)}.avatar-upload-label input{margin-top:6px;max-width:260px;font-size:12px;padding:6px}#profileForm .error{min-height:20px}
