:root{--accent:#0c766e;--ink:#163249;--soft:#e8f6f3;--line:#d9e5ea;--muted:#617589}
body{background:#f3f7f8;color:var(--ink)}
.topbar{background:#fff}
.workspace{max-width:1600px;margin:auto;padding:28px 24px 60px}
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:10px 4px 20px}
.hero h1{font-size:clamp(28px,3.6vw,44px);margin:8px 0 8px;letter-spacing:-.03em}
.hero p{margin:0;color:var(--muted);line-height:1.7}
.privacy-note{border:1px solid #cfe2da;background:#f0faf5;border-radius:12px;padding:12px 16px;font-size:13px;line-height:1.6;margin-bottom:20px;color:#276756}
.layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}
.sidebar{position:sticky;top:16px;padding:16px}
.side-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.side-title h2{margin:0;font-size:17px}.side-title button{min-height:34px;width:34px;padding:0;font-size:20px}
.sidebar input[type=search]{width:100%;margin-bottom:12px}
.project-list{display:grid;gap:3px;max-height:48vh;overflow:auto}
.project-item{border:0;background:transparent;justify-content:flex-start;text-align:left;min-height:38px;padding:8px 10px;width:100%;font-size:13px;line-height:1.4}
.project-item.active{background:var(--soft);color:#075f58;font-weight:750}
.project-item.archived{opacity:.65}
.project-item small{display:block;color:var(--muted);font-weight:400}
.project-item.depth-1{padding-left:24px}.project-item.depth-2{padding-left:38px}
.side-bottom{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}
.side-bottom summary{display:none}.side-tools{display:grid;gap:8px}
.side-bottom p{color:var(--muted);font-size:12px;line-height:1.6;margin:4px 0 0}
.wide{width:100%}.ghost{background:#fff}.import-button{position:relative;cursor:pointer}.import-button input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}
.content{min-width:0}.project-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:20px 24px}
.project-heading h2{font-size:25px;margin:5px 0 4px}.project-heading p{color:var(--muted);font-size:14px;margin:0;line-height:1.6;white-space:pre-wrap}
.heading-actions{display:flex;flex-wrap:wrap;gap:8px}
.view-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.view-tabs button{font-size:13px;min-height:38px;padding:8px 13px;background:transparent;border-color:transparent}
.view-tabs button.active{background:#fff;color:var(--accent);border-color:var(--line);font-weight:750;box-shadow:0 4px 12px #1035490a}
.view{min-height:420px}.view .panel{margin-bottom:16px}.view h3{margin:0 0 12px}.view p{color:var(--muted)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.section-head h3{margin:0}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:28px;margin-top:7px}.stat small{color:var(--muted);font-size:12px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mini-list{display:grid;gap:8px}.mini-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e7edf1;border-radius:10px;padding:10px 12px;font-size:13px}
.mini-row strong{font-weight:650}.mini-row small{color:var(--muted);white-space:nowrap}.mini-row button{border:0;background:none;padding:0;min-height:0;text-align:left;color:var(--ink)}
.muted-empty{padding:36px 16px;text-align:center;border:1px dashed #cad9de;border-radius:12px;color:var(--muted);background:#fbfdfd}
.toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.toolbar label{font-size:12px;color:var(--muted)}.toolbar input,.toolbar select{min-height:40px}.toolbar .grow{flex:1;min-width:180px}
.table-scroll{overflow:auto}
.data-table{width:100%;border-collapse:collapse;font-size:13px;min-width:720px}
.data-table th{text-align:left;color:#496176;font-size:12px;background:#f4f8f9;padding:10px;white-space:nowrap}
.data-table td{padding:11px 10px;border-bottom:1px solid #e8eef1;vertical-align:top}
.data-table tr:hover td{background:#fbfdfd}.data-table button.link{border:0;background:none;padding:0;min-height:0;color:#08766c;text-align:left;font-weight:700}
.badge{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:11px;background:#edf3f7;color:#3f5b6f;white-space:nowrap}
.badge.new{background:#e9f2ff;color:#1764ac}.badge.doing{background:#e5f7f3;color:#0a7567}.badge.blocked{background:#fff0df;color:#aa6413}.badge.resolved{background:#ebf7e7;color:#3e8234}.badge.closed{background:#eef0f2;color:#647481}
.badge.urgent{background:#ffe7e7;color:#ba3434}.badge.high{background:#fff0df;color:#a96117}
.overdue{color:#c2413b;font-weight:700}.subtle{color:var(--muted);font-size:12px}
.pagination{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:14px;font-size:13px;color:var(--muted)}
.board{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:10px;overflow:auto;padding-bottom:6px}
.board-col{background:#edf3f5;border:1px solid #dbe7eb;border-radius:14px;padding:12px;min-height:260px}
.board-col h3{font-size:13px;margin:0 0 12px;display:flex;justify-content:space-between}
.board-card{background:#fff;border:1px solid #dbe6e8;border-radius:10px;padding:11px;margin-bottom:8px;box-shadow:0 5px 12px #1c34430a}
.board-card button.link{background:none;border:0;padding:0;min-height:0;text-align:left;color:var(--ink);font-size:13px;font-weight:700}
.board-card .meta{font-size:11px;color:var(--muted);margin:8px 0}.board-card select{font-size:11px;padding:5px;width:100%}
.progress{height:7px;background:#e3eef0;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:#1cb4a3}
.timeline-scroll{overflow:auto}.timeline{min-width:850px}.timeline-head,.timeline-row{display:grid;grid-template-columns:240px repeat(12,minmax(50px,1fr));border-bottom:1px solid #e9eff1;align-items:center;min-height:42px}
.timeline-head{background:#f4f8f9;font-size:12px;color:var(--muted);font-weight:700}
.timeline-head span,.timeline-row>span{padding:7px;border-right:1px solid #eef2f4}
.timeline-row>span:first-child{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.timeline-cell{height:24px;position:relative}
.timeline-bar{display:block;position:absolute;top:5px;bottom:5px;left:2px;right:2px;border-radius:4px;background:#24aa9b}.timeline-bar.done{background:#7aa7c3}.timeline-bar.over{background:#e58b68}
.calendar-controls{display:flex;gap:8px;align-items:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#dfe8ed;border:1px solid #dfe8ed;border-radius:12px;overflow:hidden}
.calendar-day-name{background:#f3f8fa;padding:10px;text-align:center;font-size:12px;font-weight:700}.calendar-cell{background:#fff;min-height:95px;padding:8px;min-width:0}
.calendar-cell.other{background:#f9fbfc;color:#9ba9b4}.calendar-cell.today{box-shadow:inset 0 0 0 2px #28ad9d}.calendar-cell>strong{font-size:12px}
.calendar-event{display:block;border:0;background:#e7f6f2;color:#096a60;padding:4px 6px;min-height:0;border-radius:5px;margin-top:4px;font-size:11px;text-align:left;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.version-card{border:1px solid var(--line);border-radius:14px;padding:18px;background:#fff;margin-bottom:12px}.version-card h3{margin:0}.version-card .version-top{display:flex;justify-content:space-between;gap:10px}.version-card .progress{margin:12px 0}
.wiki-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px}.wiki-list{display:grid;align-content:start;gap:6px}.wiki-list button{text-align:left;justify-content:flex-start;background:#f8fbfc}.wiki-list button.active{border-color:#7ccdc1;color:#086b62}.wiki-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75;font-size:14px;min-height:220px}
dialog{width:min(700px,calc(100vw - 28px));max-height:min(90vh,900px);overflow:auto;padding:26px}dialog#detail-dialog{width:min(820px,calc(100vw - 28px))}
dialog h2{margin:0 0 6px}.dialog-hint{font-size:12px;color:var(--muted);margin:0 0 18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}
.form-grid label{min-width:0}.form-grid input,.form-grid select,.form-grid textarea{width:100%}.span2{grid-column:span 2}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:20px}
.detail-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.detail-meta div{background:#f4f8f9;border-radius:9px;padding:10px}.detail-meta span{display:block;font-size:11px;color:var(--muted)}.detail-meta strong{font-size:13px}
.detail-block{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.detail-block h3{margin-bottom:8px}.detail-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:14px}.comment{padding:10px 0;border-bottom:1px solid #edf1f3;font-size:13px}.comment small{color:var(--muted)}
.comment-form{display:grid;gap:8px}.comment-form textarea,.comment-form input{width:100%}
.footer a{color:inherit}
@media(max-width:1050px){.layout{grid-template-columns:205px minmax(0,1fr)}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}.calendar-cell{min-height:76px}}
@media(max-width:720px){.workspace{padding:18px 12px 40px}.hero{align-items:flex-start;flex-direction:column}.hero>button{width:100%}.layout{display:block}.sidebar{position:static;margin-bottom:14px}.project-list{max-height:110px}.side-bottom{margin-top:12px;padding-top:10px}.side-bottom summary{display:list-item;color:var(--accent);font-size:13px;cursor:pointer;font-weight:700}.side-tools{grid-template-columns:repeat(2,1fr);padding-top:12px}.side-tools p{grid-column:span 2}.project-heading{align-items:flex-start;flex-direction:column;padding:16px}.view-tabs{overflow:auto;flex-wrap:nowrap;white-space:nowrap}.view-tabs button{flex:none}.stats{gap:8px}.stat{padding:13px}.stat strong{font-size:24px}.calendar-cell{min-height:58px;padding:4px}.calendar-event{font-size:10px}.wiki-layout{grid-template-columns:1fr}.wiki-list{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.detail-meta{grid-template-columns:repeat(2,1fr)}dialog{padding:18px}}
