:root{--ground:#f6f5f1;--card:#fff;--line:#e4e2dc;--line-soft:#efede8;--ink:#1c1b19;--ink-2:#3d3b37;--muted:#5e5c57;--accent:#0e6b66;--accent-ink:#0a4f4b;--accent-soft:#e3f1ef;--warn:#8a4b08;--warn-soft:#fbefd9;--bad:#a11d1d;--bad-soft:#fbe7e5;--good:#1f6b35;--good-soft:#e5f2e8}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ground);color:var(--ink);font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-size:15px;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-ink)}h1{margin:0;font-size:26px;font-weight:700}h2{margin:0;font-size:17px;font-weight:700}h3{margin:0;font-size:15px;font-weight:700}.topbar{background:var(--card);border-bottom:1px solid var(--line)}.topbar.dark{background:var(--ink);color:#fff;border-bottom:none}.topbar-inner{flex-wrap:wrap;align-items:center;gap:16px;max-width:1360px;min-height:60px;margin:0 auto;padding:0 24px;display:flex}.brand{align-items:center;gap:10px;font-weight:700;display:flex}.brand-mark{white-space:nowrap;background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:auto;min-width:30px;height:30px;padding:0 5px;font-size:14px;display:flex}.nav{flex-wrap:wrap;flex:auto;gap:4px;display:flex}.nav a{color:var(--muted);border-radius:8px;padding:9px 13px}.nav a.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:500}.topbar.dark .nav a{color:#d8d5ce}.topbar.dark .nav a.active{color:#fff;background:#3a3934}.who{color:var(--muted);align-items:center;gap:12px;font-size:14px;display:flex}.nav-menu{display:none}.nav-menu>summary{cursor:pointer;list-style:none}.nav-menu>summary::-webkit-details-marker{display:none}@media (max-width:760px){.topbar-inner{flex-wrap:wrap;gap:8px;min-height:0;padding:8px 12px}.brand span,.nav-wide{display:none}.who{order:2;margin-left:auto}.nav-menu{order:3;display:block;position:relative}.nav-menu>.nav{z-index:30;background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;min-width:200px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001f}.nav-menu>.nav a{min-height:44px;padding:12px}.who{gap:8px}.who .btn{min-height:40px}}.topbar.dark .who{color:#d8d5ce}.page{flex-direction:column;gap:20px;max-width:1360px;margin:0 auto;padding:24px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.sub{color:var(--muted);margin:4px 0 0;font-size:14px}.row{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.grow{flex:999 560px;min-width:0}.side{flex:320px;min-width:0}.card{background:var(--card);border:1px solid var(--line);border-radius:12px}.card-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.card-body{padding:16px 18px}table.data{border-collapse:collapse;width:100%;font-size:14px}table.data th{text-align:left;color:var(--muted);padding:10px 12px;font-size:13px;font-weight:500}table.data td{border-top:1px solid var(--line-soft);vertical-align:top;padding:11px 12px}.scroll{overflow-x:auto}.tag{background:var(--line-soft);color:var(--ink-2);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-block}.tag.good{background:var(--good-soft);color:var(--good)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.bad{background:var(--bad-soft);color:var(--bad)}.tag.accent{background:var(--accent-soft);color:var(--accent-ink)}form.stack{flex-direction:column;gap:12px;display:flex}.fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}label.f{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid #d8d5ce;border-radius:8px;min-height:40px;padding:9px 10px}textarea{min-height:80px}label.check{color:var(--ink);align-items:center;gap:8px;font-size:14px;display:flex}label.check input{width:18px;height:18px;min-height:0}.btn{font:inherit;min-height:42px;color:var(--accent-ink);cursor:pointer;background:#fff;border:1px solid #c9dcd9;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--bad);border-color:#e8b4ae}.btn.small{min-height:34px;padding:0 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.notice{border-radius:8px;padding:10px 14px;font-size:14px}.notice.bad{background:var(--bad-soft);color:var(--bad)}.notice.good{background:var(--good-soft);color:var(--good)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.muted{color:var(--muted)}.small{font-size:13px}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{width:100%;max-width:380px;padding:28px}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.stat{padding:14px 16px}.stat .label{color:var(--muted);font-size:13px}.stat .value{font-size:26px;font-weight:700}.powers{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 16px;display:grid}.m-shell{background:var(--ground);flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}.m-head{background:var(--accent);color:#fff;padding:18px}.m-body{flex-direction:column;flex:1;gap:12px;padding:14px;display:flex}.m-card{background:#fff;border-radius:12px;padding:14px}.customer-shell{max-width:800px;min-height:100vh;margin:0 auto}.customer-head{background:var(--accent);color:#fff;border-radius:0 0 24px 24px;padding:32px 24px}.customer-head a{color:#fff}.customer-head h1{margin-top:12px;font-size:clamp(22px,5vw,30px)}.customer-body{flex-direction:column;gap:16px;padding:20px 16px 40px;display:flex}.customer-project{color:var(--ink);display:block}.customer-project h2{margin-top:12px}.customer-shell progress{width:100%;height:12px;accent-color:var(--accent);display:block}.customer-list{margin:12px 0 0;padding:0;list-style:none}.customer-list li{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:start;gap:12px;padding:12px 0;display:flex}.customer-milestone{border-top:1px solid var(--line-soft);padding:16px 0}.customer-shell summary{cursor:pointer;min-height:44px;padding:12px 0}.customer-shell .fields{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.delivery-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.delivery-project{color:var(--ink)}.delivery-project h2{margin-top:12px}.delivery-project progress{width:100%;accent-color:var(--accent)}.delivery-actions{flex-wrap:wrap;gap:8px;display:flex}.task-shell{flex-direction:column;gap:16px;max-width:960px;margin:auto;padding:24px 16px 48px;display:flex}.task-header{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:12px;display:flex}.task-header h1{font-size:clamp(22px,5vw,28px)}.task-section{border-top:1px solid var(--line-soft);margin-top:12px;padding:14px 0}.task-shell summary{cursor:pointer;min-height:44px;color:var(--accent-ink);padding:10px 0}.task-prose{white-space:pre-wrap;overflow-wrap:anywhere}.task-shell input,.task-shell select,.task-shell textarea{min-width:0;max-width:100%}.task-shell label.check{align-items:flex-start}.blocker-list{color:var(--warn);padding-left:22px}@media (max-width:600px){.task-shell .fields{grid-template-columns:1fr}.task-shell .btn{min-height:44px}}.gantt{font-size:12px;overflow-x:auto}.g-row{border-top:1px solid var(--line-soft);min-height:28px;display:flex}.g-row.sel,.g-row.sel .g-label{background:var(--accent-soft)}.g-label{z-index:2;background:var(--card);border-right:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;width:280px;color:var(--ink);flex:0 0 280px;padding:5px 10px;position:sticky;left:0;overflow:hidden}.g-label a{color:var(--ink)}.g-label .mono{color:var(--muted);margin-right:6px}.g-track{background-image:linear-gradient(to right, var(--line-soft) 1px, transparent 1px);background-size:var(--dw) 100%;flex:none;min-height:28px;position:relative}.g-head{z-index:3;background:var(--card);position:sticky;top:0}.g-head .g-track{background:0 0}.g-day{height:100%;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;font-size:11px;line-height:1.2;display:flex;position:absolute;top:0}.g-day.start{color:var(--accent-ink);font-weight:700}.g-stage{background:var(--ground);font-weight:700}.g-stage .g-label{background:var(--ground)}.g-bar{background:var(--accent);border-radius:4px;min-width:6px;height:14px;position:absolute;top:7px}.g-bar.crit{background:var(--bad)}.g-bar.short{border-radius:50%;height:10px;top:9px;width:10px!important}.g-bar.done{background:var(--good)}.g-bar.cancelled{background:repeating-linear-gradient(45deg,#cfcbc3,#cfcbc3 3px,#efede8 3px 6px)}.g-bar.opt{opacity:.55}.g-base{background:#8f8b83;border-radius:2px;height:3px;position:absolute;top:23px}.g-ms{background:var(--warn);width:13px;height:13px;position:absolute;top:7px;transform:rotate(45deg)}.g-ms.late{background:var(--bad)}.g-line{background:var(--accent);opacity:.35;z-index:1;width:2px;position:absolute;top:0;bottom:0}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:14px;height:10px;margin-right:5px;display:inline-block}.hub-shell{gap:20px;min-width:0;max-width:1480px;margin:auto;padding:24px 20px 60px;display:grid}.hub-header{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:24px;display:flex}.hub-header h1{overflow-wrap:anywhere;margin:8px 0;font-size:clamp(24px,4vw,36px)}.hub-hero{grid-template-columns:1fr 1.2fr 1fr;align-items:center;gap:32px;padding:28px;display:grid}.hub-progress-number{letter-spacing:-3px;color:var(--accent-ink);font-size:64px;line-height:1.2}.hub-progress-number small{letter-spacing:0;font-size:24px}.hub-hero progress{width:100%;accent-color:var(--accent);height:8px}.hub-progress-breakdown{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.hub-progress-breakdown>div{gap:4px;display:grid}.hub-progress-breakdown strong{font-size:26px}.hub-progress-breakdown span{color:var(--muted);font-size:12px}.hub-progress-breakdown p{grid-column:1/-1}.hub-dates p{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.hub-dates .muted{display:block}.hub-estimate-note{color:var(--muted);margin:0;font-size:12px;line-height:1.8}.hub-milestones{gap:12px;min-width:0;padding-bottom:4px;display:flex;overflow-x:auto}.hub-milestone{color:var(--ink);border-top:3px solid var(--line);flex:1 0 175px;padding:18px;position:relative}.hub-milestone h2{margin:10px 0;font-size:16px}.hub-milestone p{margin:6px 0}.hub-milestone-dot{border:2px solid var(--warn);border-radius:50%;width:12px;height:12px;display:block}.hub-milestone-dot.done{background:var(--accent);border-color:var(--accent)}.hub-workspace{grid-template-columns:minmax(0,1fr) 370px;align-items:start;gap:20px;min-width:0;display:grid}.hub-plan{min-width:0;overflow:hidden}.hub-plan .card-head{flex-wrap:wrap;gap:12px}.hub-tools{border-top:1px solid var(--line-soft);flex-wrap:wrap;align-items:end;gap:12px;padding:16px;display:flex}.hub-tools .f{flex:130px;margin:0}.hub-tools .f:first-child{flex:3 210px}.hub-tools input,.hub-tools select{width:100%;min-width:0}.hub-legend{color:var(--muted);flex-wrap:wrap;gap:14px;padding:0 16px 16px;font-size:11px;display:flex}.hub-legend i{border-radius:3px;width:18px;height:7px;margin-right:5px;display:inline-block}.hub-baseline-key,.hub-baseline{background:#b8b1a5}.hub-forecast-key,.hub-forecast{background:#93c6c3}.hub-actual-key,.hub-actual{background:var(--accent)}.hub-timeline-scroll{min-width:0;max-height:650px;overflow:auto}.hub-timeline-row,.hub-timeline-head{border-top:1px solid var(--line-soft);width:max-content;min-width:100%;display:flex}.hub-timeline-head{z-index:4;background:var(--card);height:36px;position:sticky;top:0}.hub-task-label{z-index:2;background:var(--card);border-right:1px solid var(--line);width:210px;color:var(--ink);overflow-wrap:anywhere;flex-direction:column;flex:0 0 210px;gap:4px;padding:10px 12px;display:flex;position:sticky;left:0}.hub-timeline-head .hub-task-label{justify-content:center;font-size:12px}.hub-task-label strong{font-size:13px}.hub-task-label .small{font-size:11px}.hub-date-track{flex:none;position:relative}.hub-date-track>span{white-space:nowrap;color:var(--muted);padding-left:3px;font-size:10px;position:absolute;top:10px}.hub-task-track{background-image:linear-gradient(to right,var(--line-soft) 1px,transparent 1px);min-height:100px}.hub-bar{border-radius:3px;min-width:6px;height:11px;position:absolute}.hub-bar:hover{outline:2px solid var(--accent-ink);outline-offset:2px}.hub-baseline{height:5px;top:22px}.hub-forecast{top:39px}.hub-forecast.uncertain{border:1px dashed var(--accent-ink)}.hub-actual{top:65px}.hub-actual.is-accepted{background:var(--good)}.is-selected{outline:2px solid var(--accent);outline-offset:-2px}.hub-timeline-row.is-selected .hub-task-label{background:var(--accent-soft)}.hub-task-cards{display:grid}.hub-task-card{border-top:1px solid var(--line-soft);color:var(--ink);justify-content:space-between;gap:20px;padding:18px;display:flex}.hub-task-card h3{margin:6px 0}.hub-task-card p{margin:4px 0}.hub-detail{overflow-wrap:anywhere;min-width:0;max-height:calc(100vh - 32px);scroll-margin-top:16px;position:sticky;top:16px;overflow:auto}.hub-detail-symbol{color:var(--accent);font-size:42px}.hub-detail-title{margin-top:16px;font-size:22px}.hub-detail-section{border-top:1px solid var(--line-soft);margin-top:18px;padding-top:16px}.hub-detail h3{margin:0 0 12px;font-size:14px}.hub-detail-dates{grid-template-columns:100px 1fr;gap:8px;font-size:12px;display:grid}.hub-detail-dates dt{color:var(--muted)}.hub-detail-dates dd{margin:0}.hub-evidence-grid{gap:14px;display:grid}.hub-evidence{border:1px solid var(--line-soft);border-radius:8px;margin:0;overflow:hidden}.hub-evidence img,.hub-evidence video{object-fit:contain;background:#f0f2f1;width:100%;max-height:230px;display:block}.hub-evidence figcaption{padding:12px}.hub-evidence figcaption p{margin:6px 0}.hub-reading{background:var(--accent-soft);align-items:baseline;gap:8px;padding:20px;display:flex}.hub-reading strong{font-size:32px}.hub-project-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;display:grid}.hub-project-grid a{color:var(--ink)}.hub-project-grid progress{width:100%;accent-color:var(--accent)}@media (max-width:1050px){.hub-workspace{grid-template-columns:minmax(0,1fr)}.hub-detail{max-height:none;position:static}.hub-hero{grid-template-columns:1fr 1fr}.hub-dates{grid-column:1/-1}.hub-evidence-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr))}}@media (max-width:600px){.hub-shell{gap:16px;padding:16px 12px 40px}.hub-hero{grid-template-columns:1fr;gap:20px;padding:20px}.hub-task-label{flex-basis:155px;width:155px;padding:10px 8px}.hub-task-card{flex-wrap:wrap}.hub-header .btn{min-height:44px}.hub-detail-dates{grid-template-columns:90px 1fr}}.welcome-shell{flex-direction:column;max-width:1200px;min-height:100svh;margin:auto;padding:32px 40px;display:flex}.welcome-brand{align-items:center;gap:12px;font-size:18px;display:flex}.welcome-brand strong{overflow-wrap:anywhere;min-width:0}.welcome-mark{color:#fff;border-radius:14px;place-items:center;min-width:44px;height:44px;padding:0 10px;font-size:18px;display:grid}.welcome-content{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;padding:70px 0 90px;display:flex}.welcome-eyebrow{color:var(--accent);letter-spacing:3px;font-size:14px}.welcome-content h1{letter-spacing:-2px;font-size:clamp(36px,7vw,72px);line-height:1.25}.welcome-description{color:var(--muted);margin:28px 0 34px;font-size:clamp(16px,2vw,21px);line-height:1.9}.welcome-actions{flex-wrap:wrap;gap:14px;display:flex}.welcome-actions .btn{justify-content:center;min-width:150px;min-height:52px;font-size:16px}.welcome-caption,.welcome-footer{color:var(--muted);font-size:12px}.welcome-caption{margin-top:24px}.welcome-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:20px;display:flex}.welcome-footer a{color:var(--muted)}.welcome-footer a:hover{color:var(--accent);text-decoration:underline}.login-links{justify-content:space-between;gap:16px;margin-top:24px;font-size:13px;display:flex}.join-shell{gap:20px;max-width:620px;margin:auto;padding:28px 20px;display:grid}.join-shell .card-body{padding:28px}.join-options{gap:12px;margin:26px 0;display:flex}.join-requirements{padding-left:24px;line-height:2.2}@media (max-width:600px){.welcome-shell{padding:24px}.welcome-content{padding:70px 0}.welcome-actions{width:100%}.welcome-actions .btn{flex:1;min-width:120px}.join-shell .card-body{padding:20px}}.standard-methods{border:0;flex-wrap:wrap;gap:12px;margin:16px 0;padding:0;display:flex}.standard-methods legend{margin-bottom:10px}.standard-methods label{cursor:pointer;flex:200px;align-items:center;gap:10px;padding:16px;display:flex}.standard-methods input{width:auto}.standard-form-space,.standard-review{border-top:1px solid var(--line-soft);margin-top:20px;padding-top:16px}.standard-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px;margin:20px 0;display:grid}.standard-source{background:var(--ground);border-radius:8px;margin-bottom:16px;padding:12px}.standard-source pre,.standard-prose{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}.standard-source pre{max-height:300px;overflow:auto}.standard-fields textarea{width:100%;min-width:0}.standard-review .check{align-items:start}.owner-project-entries{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px;display:grid}.owner-project-entry{color:var(--ink);flex-direction:column;align-items:start;gap:16px;min-height:180px;display:flex}.owner-project-entry:hover{border-color:var(--accent)}.owner-project-table td{vertical-align:middle}.owner-project-table progress{width:120px;max-width:100%;accent-color:var(--accent);height:6px;margin:6px 0;display:block}.owner-subnav{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.owner-subnav .btn{gap:8px}.owner-pending{opacity:.65;font-size:10px}.owner-section{gap:16px;scroll-margin-top:20px;display:grid}.owner-project-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:16px;display:grid}.owner-project{color:var(--ink);overflow-wrap:anywhere;min-width:0}.owner-project:hover{border-color:var(--accent)}.owner-project .page-head{align-items:start}.owner-project h3{font-size:18px}.owner-project progress{width:100%;height:8px;accent-color:var(--accent)}.owner-project-progress{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.owner-project-progress strong{color:var(--accent-ink);font-size:30px}.owner-todo-list{gap:0;max-height:440px;display:grid;overflow:auto}.owner-todo-item{border-bottom:1px solid var(--line-soft);color:var(--ink);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.owner-todo-item>span:first-child{overflow-wrap:anywhere;gap:5px;min-width:0;display:grid}.owner-todo-item>.tag{flex:none}.owner-todo-item:last-child{border-bottom:0}.owner-empty{flex-direction:column;justify-content:center;align-items:start;gap:12px;min-height:180px;display:flex}.owner-empty p{margin:0}.owner-tools summary{cursor:pointer;min-height:36px}.owner-tools[open] summary{margin-bottom:12px}.owner-resource-count{font-size:30px!important}.stats a.stat{color:var(--ink)}.stats a.stat:hover{border-color:var(--accent)}@media (max-width:600px){.owner-subnav .btn{min-height:44px}.owner-todo-item{flex-wrap:wrap;align-items:start;gap:8px}.owner-project-grid{grid-template-columns:minmax(0,1fr)}.owner-project-table,.owner-project-table tbody{width:100%;display:block}.owner-project-table thead{display:none}.owner-project-table tr{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;padding:10px 6px;display:grid}.owner-project-table tr:first-child{border-top:0}.owner-project-table td{overflow-wrap:anywhere;border:0;min-width:0;padding:8px 12px}.owner-project-table td:first-child{grid-column:1/-1}.owner-project-table td:first-child>a{font-size:16px;font-weight:600}.owner-project-table td:first-child .small{margin-top:6px}.owner-project-table td:nth-child(2){grid-area:2/1}.owner-project-table td:nth-child(3){grid-area:3/1/auto/-1}.owner-project-table td:nth-child(4){grid-area:2/2}.owner-project-table td[data-label]:before{content:attr(data-label);color:var(--muted);margin-bottom:5px;font-size:12px;display:block}.owner-project-table progress{width:100%}}.plan-layout{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.plan-main{flex:999 640px;min-width:0}.plan-side{flex:340px;min-width:0;max-height:calc(100vh - 24px);position:sticky;top:12px;overflow-y:auto}@media (max-width:640px){.g-label{flex-basis:150px;width:150px;padding:5px 6px}.plan-side{max-height:none;position:static}}.template-toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.template-toolbar>.owner-subnav{flex:1;min-width:0;margin:0}.template-toolbar-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:8px;margin-left:auto;display:flex}@media (max-width:700px){.template-toolbar{flex-direction:column;align-items:stretch}.template-toolbar-actions{align-self:flex-end}}.template-library{grid-template-columns:minmax(0,1fr);gap:20px;min-width:0;display:grid}.template-library>*{min-width:0}.project-overview{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}.project-overview-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.project-search{align-items:center;gap:8px;margin-left:auto;display:flex}.project-search input{width:220px}.project-overview-table progress{width:140px;height:8px;accent-color:var(--accent);margin:6px 0;display:block}.project-overview-table td:first-child a{font-weight:600}.project-overview-table td{overflow-wrap:anywhere}@media (max-width:700px){.project-search{width:100%}.project-search input{flex:1;width:0;min-width:0}.project-overview-table,.project-overview-table tbody{width:100%;display:block}.project-overview-table thead{display:none}.project-overview-table tr{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:10px 6px;display:grid}.project-overview-table td{border:0;min-width:0}.project-overview-table td:first-child,.project-overview-table td:nth-child(4),.project-overview-table td:nth-child(5){grid-column:1/-1}.project-overview-table td[data-label]:before{content:attr(data-label);color:var(--muted);margin-bottom:5px;font-size:12px;display:block}.project-overview-table progress{width:100%}}.pm-dashboard-content{gap:20px;min-width:0;margin-top:24px;display:grid}.pb-gantt{flex-direction:column;gap:6px;display:flex;overflow-x:auto}.pb-row{align-items:center;gap:10px;min-width:640px;display:flex}.pb-label{text-align:left;font:inherit;cursor:pointer;color:var(--ink,#1f2a28);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:0 0 110px;min-height:32px;padding:0;font-size:14px;overflow:hidden}.pb-track{cursor:pointer;background:#f3f1ec;border:0;border-radius:6px;flex:1;height:26px;padding:0;position:relative}.pb-axis{border-bottom:1px solid var(--line,#e6e3dc);cursor:default;background:0 0;height:34px}.pb-bar{border-radius:6px;min-width:3px;position:absolute;top:0;bottom:0}.pb-wait{background:repeating-linear-gradient(45deg,#c98a1b 0 3px,#fcefd9 3px 6px)}.pb-mark{text-align:center;font-size:11px;line-height:1.2;position:absolute;top:0;transform:translate(-50%)}.pb-dates{text-overflow:ellipsis;white-space:nowrap;flex:0 0 150px;font-size:13px;overflow:hidden}.pb-sub .pb-track{background:#f8f7f4;height:16px}.pb-sub .pb-label{color:var(--muted);padding-left:18px}.pb-key{vertical-align:middle;border-radius:3px;width:14px;height:10px;display:inline-block}.ps-wrap{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.ps-top{align-items:stretch;gap:8px;padding:8px;display:flex}.ps{flex:1;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;min-width:0;display:grid}.ps-step{color:var(--muted);border-radius:8px;align-items:center;gap:8px;min-width:0;padding:8px 10px;text-decoration:none;display:flex}.ps-step:hover{background:var(--line-soft)}.ps-step.shown{background:var(--accent-soft)}.ps-step.current .ps-text b{color:var(--accent-ink)}.ps-dot{border:1.5px solid var(--line);height:22px;color:var(--muted);background:var(--card);border-radius:50%;flex:0 0 22px;place-items:center;font-size:12px;font-weight:600;display:grid}.ps-step.done .ps-dot{background:var(--good);border-color:var(--good);color:#fff}.ps-step.current .ps-dot{background:var(--accent);border-color:var(--accent);color:#fff}.ps-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.ps-text b{color:var(--ink-2);font-size:14px;font-weight:600}.ps-step.later .ps-text b{color:var(--muted);font-weight:500}.ps-status{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ps-tools{align-self:center;position:relative}.ps-tools summary{cursor:pointer;list-style:none}.ps-tools summary::-webkit-details-marker{display:none}.ps-menu{z-index:20;background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-width:170px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #00000014}.ps-menu a{color:var(--ink-2);border-radius:6px;padding:8px 10px;font-size:14px;text-decoration:none}.ps-menu a:hover{background:var(--line-soft)}.ps-subs{border-top:1px solid var(--line-soft);flex-wrap:wrap;gap:4px 18px;padding:10px 16px;display:flex}.ps-sub{color:var(--muted);white-space:nowrap;align-items:baseline;gap:6px;font-size:13px;text-decoration:none;display:inline-flex}.ps-sub.done{color:var(--ink-2)}.ps-sub.done .ps-mark{color:var(--good)}.ps-sub.current{color:var(--accent-ink);font-weight:600}.ps-mark{font-size:11px}.ps-detail{color:var(--muted);font-size:12px;font-weight:400}.ps-next{border-top:1px solid var(--line-soft);background:#fbf7ee;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex}.ps-next-label{color:var(--warn);font-size:12px;font-weight:600}.ps-next-text{flex:220px;font-size:14px}@media (max-width:700px){.ps-top{flex-direction:column}.ps-step{text-align:center;flex-direction:column;gap:4px;padding:6px 2px}.ps-text b{font-size:12px}.ps-status{display:none}.ps-tools{align-self:flex-end}.ps-subs{flex-wrap:nowrap;overflow-x:auto}}.ps-alert{background:var(--bad,#c0392b);color:#fff;text-align:center;border-radius:9px;min-width:18px;margin-left:6px;padding:0 5px;font-size:11px;line-height:18px;display:inline-block}.regen{position:relative}.regen-box{z-index:20;background:var(--card,#fff);border:1px solid var(--line,#ddd);text-align:left;width:320px;color:var(--ink,#222);border-radius:10px;padding:12px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 6px 20px #00000014}.mini-steps{align-items:center;gap:4px;display:inline-flex}.mini-steps i{background:var(--line,#e3e3e3);border-radius:3px;width:18px;height:6px}.mini-steps i.done{background:var(--accent,#1f6f5c);opacity:.55}.mini-steps i.current{background:var(--accent,#1f6f5c)}.ai-fab{z-index:40;background:var(--accent,#1f6f5c);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:10px 16px;font-weight:600;position:fixed;bottom:20px;right:20px;box-shadow:0 6px 20px #0000002e}.ai-panel{z-index:50;background:var(--card,#fff);border-left:1px solid var(--line,#ddd);flex-direction:column;width:min(420px,100vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 24px #00000014}.ai-head{border-bottom:1px solid var(--line,#eee);align-items:center;gap:10px;padding:12px 14px;display:flex}.ai-head b{flex:1}.ai-body{flex-direction:column;flex:1;gap:10px;padding:12px 14px;display:flex;overflow-y:auto}.ai-msg{border-radius:10px;padding:8px 10px;font-size:14px;line-height:1.55}.ai-msg.user{background:var(--accent-soft,#e3f0ec);align-self:flex-end;max-width:85%}.ai-msg.assistant{background:var(--bg,#f6f5f1)}.ai-tag{margin-bottom:4px;display:inline-block}.ai-card{border:1px solid var(--line,#ddd);background:var(--card,#fff);border-radius:10px;flex-direction:column;gap:8px;margin-top:8px;padding:10px;display:flex}.ai-card.done{color:var(--muted,#666)}.ai-input{border-top:1px solid var(--line,#eee);align-items:flex-end;gap:8px;padding:10px 14px;display:flex}.ai-input textarea{resize:none;flex:1}.briefing{white-space:pre-line;line-height:1.7}.bad-text{color:var(--bad,#b42318)}.m-task{border:1px solid var(--line,#e5e5e5);color:inherit;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;text-decoration:none;display:flex}.m-section{color:var(--muted,#555);margin:4px 2px -4px;font-size:14px;font-weight:600}.m-card summary{cursor:pointer}.c-steps{gap:4px;display:flex}.c-steps span{text-align:center;background:var(--line,#eee);color:var(--muted,#666);border-radius:6px;flex:1;padding:6px 2px;font-size:12px}.c-steps span.done{background:var(--accent-soft,#e3f0ec);color:var(--accent,#1f6f5c)}.c-steps span.current{background:var(--accent,#1f6f5c);color:#fff;font-weight:600}.c-photos{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.c-photos img{object-fit:cover;border-radius:8px;width:92px;height:92px}.c-more details{border-bottom:1px solid var(--line,#eee);padding:8px 0}.c-more details:last-child{border-bottom:0}.c-more summary{cursor:pointer;font-weight:600}.template-groups details{border-bottom:1px solid var(--line,#eee);padding:8px 0}.template-groups details:last-child{border-bottom:0}.template-groups summary{cursor:pointer;padding:4px 0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.new-way{border:1px solid var(--line,#e5e5e5);border-radius:10px;margin-top:10px;padding:10px 12px}.new-way summary{cursor:pointer}.new-way[open] summary{margin-bottom:10px}.tpl-flow{gap:4px;margin:0 0 4px;display:flex}.tpl-flow span{text-align:center;background:var(--line,#eee);color:var(--muted,#666);border-radius:8px;flex:1;padding:8px 4px;font-size:13px}.tpl-flow span.done{background:var(--accent-soft,#e3f0ec);color:var(--accent,#1f6f5c)}.tpl-flow span.current{background:var(--accent,#1f6f5c);color:#fff;font-weight:600}.start-choice{border:1px solid var(--line,#e5e5e5);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.start-choice.on{border-color:var(--accent,#1f6f5c);background:var(--accent-soft,#eef6f3)}.start-choice input[type=radio]{margin-top:4px}.tpl-steps{gap:4px;margin-bottom:4px;display:flex}.tpl-steps a,.tpl-steps span{text-align:center;background:var(--line,#eee);color:var(--muted,#666);border-radius:8px;flex:1;padding:8px 4px;font-size:13px;text-decoration:none}.tpl-steps .done{background:var(--accent-soft,#e3f0ec);color:var(--accent,#1f6f5c)}.tpl-steps .current{background:var(--accent,#1f6f5c);color:#fff;font-weight:600}.stage-bar{background:var(--line,#eee);border-radius:5px;flex:1;min-width:120px;height:10px;position:relative}.stage-bar i{background:var(--accent,#1f6f5c);border-radius:5px;position:absolute;top:0;bottom:0}.stage-row{border-bottom:1px solid var(--line,#eee);padding:8px 0}.stage-row:last-child{border-bottom:0}.stage-row summary{cursor:pointer;list-style:none}.tech-fold>.card-body>.card{box-shadow:none}.page:has(>.m-shell){max-width:none;padding:0}.page>.m-shell{width:100%;min-height:0}.fold>summary{cursor:pointer;color:var(--accent-ink);padding:4px 0;font-size:14px}
