:root{color-scheme:light;--bg: #f4f6fb;--surface: #ffffff;--surface-soft: #fafbfd;--line: #e6e9ef;--line-strong: #d4d9e3;--ink: #1a2233;--ink-soft: #4a5267;--muted: #6a7385;--muted-soft: #9097a6;--primary: #2563eb;--primary-soft: #dbe7ff;--teal: #0f9b8e;--teal-soft: #d6f3ef;--amber: #d97706;--amber-soft: #fef0d8;--green: #15803d;--green-soft: #d4f0dc;--red: #dc2626;--red-soft: #fde0e0;--shadow-1: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(15, 23, 42, .06);--shadow-2: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);--radius: 12px;--radius-lg: 16px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,PingFang SC,Microsoft YaHei,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}button,input,select,textarea{font:inherit;color:var(--ink)}button{cursor:pointer}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:.55rem .7rem;outline:none;font-size:.9rem;transition:border-color .12s ease,box-shadow .12s ease}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}select{background:var(--surface);color:var(--ink);appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:1.6rem}select option{background:var(--surface);color:var(--ink)}textarea{min-height:4rem;resize:vertical;line-height:1.5}label{display:grid;gap:.3rem;color:var(--muted);font-size:.78rem;font-weight:600}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{letter-spacing:-.01em;color:var(--ink);font-weight:700}code{font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:.86em;padding:.05rem .35rem;border-radius:5px;background:var(--bg);color:var(--primary)}.loading-screen{min-height:100vh;display:grid;place-items:center;gap:.8rem;color:var(--muted)}.loader{width:36px;height:36px;border-radius:50%;border:3px solid var(--primary-soft);border-top-color:var(--primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{min-height:100vh;display:grid;place-items:center;padding:clamp(1rem,4vw,3rem);background:radial-gradient(800px 600px at 10% -10%,#e7eefc,transparent 60%),radial-gradient(800px 600px at 110% 110%,#d6f3ef,transparent 60%),var(--bg)}.login-card{width:100%;max-width:420px;display:grid;gap:.85rem;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.6rem;box-shadow:var(--shadow-2)}.login-brand{display:flex;align-items:center;gap:.7rem}.login-brand h1{font-size:1.35rem}.login-card .subline{color:var(--muted);font-size:.88rem;margin-bottom:.3rem}.eyebrow,.kicker{color:var(--muted);text-transform:uppercase;font-size:.66rem;font-weight:700;letter-spacing:.16em;margin:0}.kicker{text-transform:none;letter-spacing:0;font-size:.78rem;font-weight:600;color:var(--muted)}.primary-action,.secondary-action,.compact-action,.text-button{border:1px solid transparent;border-radius:10px;min-height:38px;padding:.5rem .85rem;font-weight:600;font-size:.88rem;transition:background .12s ease,color .12s ease,border-color .12s ease,transform .12s ease}.primary-action{color:#fff;background:var(--primary);border-color:var(--primary)}.primary-action:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.primary-action:disabled{opacity:.55;cursor:not-allowed}.primary-action.small{min-height:32px;padding:.35rem .7rem;font-size:.82rem}.secondary-action{color:var(--primary);border:1px solid var(--primary-soft);background:var(--primary-soft)}.secondary-action:hover{background:#c8dafe}.secondary-action.small{min-height:32px;padding:.32rem .65rem;font-size:.82rem}.compact-action{min-height:30px;padding:.3rem .65rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);font-size:.82rem;border-radius:8px}.compact-action:hover{border-color:var(--primary);color:var(--primary)}.text-button{color:var(--muted);background:transparent;border:1px solid transparent;min-height:30px;padding:.3rem .55rem}.text-button:hover{color:var(--ink);background:var(--bg)}.text-button.mini{min-height:24px;padding:.2rem .45rem;font-size:.75rem;border-radius:6px}.icon-btn{width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:.86rem;transition:color .12s ease,border-color .12s ease,background .12s ease}.icon-btn:hover{color:var(--ink);border-color:var(--line-strong);background:var(--surface-soft)}.icon-btn.primary{color:var(--primary);border-color:var(--primary-soft);background:var(--primary-soft)}.icon-btn.primary:hover{background:#c8dafe}.icon-btn.danger:hover{color:var(--red);border-color:var(--red);background:var(--red-soft)}.segmented{display:inline-flex;gap:.18rem;padding:.2rem;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.segmented button{border:0;border-radius:999px;background:transparent;color:var(--muted);padding:.35rem .75rem;font-weight:600;font-size:.82rem;white-space:nowrap}.segmented button:hover{color:var(--ink)}.segmented button.active{color:#fff;background:var(--ink)}.hint,.form-error,.empty{color:var(--muted);line-height:1.5;font-size:.84rem}.form-error{color:var(--red);font-weight:600}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:.6rem 1.1rem;background:#ffffffeb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.top-brand{display:flex;align-items:center;gap:.55rem;min-width:0}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:#fff;font-weight:800;font-size:.95rem;background:linear-gradient(135deg,var(--primary),var(--teal));box-shadow:0 4px 12px #2563eb2e;flex-shrink:0}.brand-mark.small{width:30px;height:30px;border-radius:8px;font-size:.86rem}.top-brand-text{display:grid;line-height:1.1;min-width:0}.top-brand-text strong{font-size:.95rem;font-weight:700}.top-brand-text span{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.top-tabs{display:flex;justify-content:center;gap:.2rem;overflow-x:auto;scrollbar-width:none}.top-tabs::-webkit-scrollbar{display:none}.tab{position:relative;border:0;background:transparent;color:var(--muted);font-weight:600;font-size:.9rem;padding:.5rem .85rem;border-radius:8px;white-space:nowrap;display:inline-flex;align-items:center;gap:.35rem}.tab:hover{color:var(--ink);background:var(--bg)}.tab.active{color:var(--primary);background:var(--primary-soft)}.tab-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 .35rem;border-radius:999px;background:var(--red);color:#fff;font-size:.65rem;font-weight:700}.top-right{display:flex;align-items:center;gap:.5rem}.sync-pill{display:inline-flex;align-items:center;gap:.3rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:.25rem .6rem;font-size:.74rem;font-weight:600;color:var(--muted)}.sync-pill .status-dot{width:6px;height:6px;border-radius:999px;background:var(--green)}.sync-pill.saving{color:var(--amber);border-color:var(--amber-soft);background:var(--amber-soft)}.sync-pill.saving .status-dot{background:var(--amber);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.menu-host{position:relative}.menu{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;display:grid;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-2);overflow:hidden;z-index:40}.menu-section{display:grid;padding:.35rem}.menu-section+.menu-section{border-top:1px solid var(--line)}.menu-section button{border:0;background:transparent;text-align:left;padding:.5rem .65rem;border-radius:8px;color:var(--ink);font-size:.86rem}.menu-section button:hover{background:var(--bg)}.menu-user{display:flex;align-items:center;gap:.5rem;padding:.45rem .65rem;font-size:.84rem;color:var(--muted)}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;color:#fff;font-weight:700;font-size:.9rem}.avatar.small{width:26px;height:26px;border-radius:7px;font-size:.75rem}.user-tag{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;color:#fff;font-size:.66rem;font-weight:700;flex-shrink:0}.workspace{padding:1rem 1.1rem 2rem;min-width:0}.page-stack{display:grid;gap:.85rem}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;padding:.2rem .1rem .3rem}.page-header h2{font-size:1.35rem;font-weight:700}.week-picker{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.week-picker input[type=date]{width:160px;height:32px;padding:.25rem .5rem;font-size:.85rem;border-radius:8px;cursor:pointer}.week-picker input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;filter:opacity(.7)}.week-picker select{width:110px;height:30px;padding:.2rem .45rem;font-size:.82rem;border-radius:8px}.week-picker .week-label{font-size:.78rem;color:var(--muted);font-family:JetBrains Mono,monospace}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}.metric{display:grid;gap:.15rem;border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .8rem;background:var(--surface);box-shadow:var(--shadow-1)}.metric span{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.metric strong{font-size:1.5rem;font-weight:800;color:var(--ink)}.metric.warn strong{color:var(--amber)}.home-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.85fr);gap:.85rem;align-items:start}.right-rail{display:grid;gap:.85rem}.panel{border:1px solid var(--line);border-radius:var(--radius);padding:.85rem .95rem;display:grid;gap:.7rem;background:var(--surface);box-shadow:var(--shadow-1)}.panel-head{display:flex;justify-content:space-between;align-items:start;gap:.7rem;flex-wrap:wrap}.panel-titles{display:grid;gap:.1rem}.panel h3{font-size:1.05rem;font-weight:700}.panel-actions{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}.calendar-actions{flex-wrap:nowrap}.filter-input{width:140px;height:30px;padding:.25rem .55rem;font-size:.8rem;border-radius:8px}.tree{display:grid;gap:.3rem}.tree-row{display:grid;grid-template-columns:26px auto minmax(0,1fr) auto;align-items:start;gap:.55rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);padding:.5rem .6rem;transition:border-color .12s ease,background .12s ease}.tree-row:hover{border-color:var(--line-strong);background:#fff}.tree-row:hover .tree-actions{opacity:1}.tree-node.depth-1>.tree-row{background:var(--primary-soft);border-color:#2563eb47}.tree-node.depth-1>.tree-row .task-code{background:var(--primary);color:#fff}.tree-node.depth-2>.tree-row{background:var(--teal-soft);border-color:#0f9b8e38}.tree-node.depth-2>.tree-row .task-code{background:var(--teal);color:#fff}.tree-children{display:grid;gap:.25rem;margin:.3rem 0 0 .85rem;padding-left:.65rem;border-left:1px dashed var(--line-strong)}.tree-toggle-btn{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);font-size:.75rem}.tree-toggle-btn:hover{color:var(--ink)}.task-code{display:inline-flex;align-items:center;height:22px;padding:0 .5rem;border-radius:6px;background:var(--ink);color:#fff;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-weight:700;font-size:.7rem;letter-spacing:.02em;white-space:nowrap}.task-code.small{height:19px;font-size:.66rem;padding:0 .4rem}.task-code.placeholder{background:var(--bg);color:var(--muted);border:1px dashed var(--line-strong)}.tree-main{display:grid;gap:.1rem;min-width:0}.tree-main strong{font-size:.86rem;font-weight:600}.tree-main small,.tree-main em{color:var(--muted);font-style:normal;font-size:.74rem;line-height:1.4}.tree-actions{display:flex;gap:.2rem;opacity:.45;transition:opacity .12s ease}.tree-add-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.5rem;border:1px dashed var(--line-strong);border-radius:10px;padding:.45rem .55rem;background:var(--primary-soft)}.tree-add-row.level-1{background:var(--teal-soft)}.tree-add-fields{display:grid;gap:.3rem}.tree-add-fields input{height:30px;padding:.25rem .55rem;font-size:.82rem;border-radius:8px}.tree-add-actions{display:flex;gap:.2rem}.tree-node.editing>.tree-row{border-color:var(--primary);background:#fff}.tree-hint{color:var(--muted);font-size:.76rem}.memo-tables{display:grid;gap:.7rem}.memo-section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.3rem}.memo-section-head h4{font-size:.86rem;font-weight:700}.memo-section-head span{color:var(--muted);font-size:.72rem}.memo-rows{list-style:none;margin:0;padding:0;display:grid;gap:2px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);overflow:hidden}.memo-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:.32rem .45rem;background:var(--surface)}.memo-row.priority-low{border-left:3px solid var(--green)}.memo-row.priority-medium{border-left:3px solid var(--amber)}.memo-row.priority-high{border-left:3px solid var(--red)}.memo-main{display:grid;gap:.25rem;min-width:0}.memo-row input{border:0;background:transparent;padding:.2rem .3rem;font-size:.84rem;height:26px}.memo-row input:focus{background:var(--bg);box-shadow:none}.memo-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.memo-meta select{width:auto;min-width:88px;height:26px;padding:.1rem .45rem;border-radius:7px;font-size:.72rem}.memo-meta input[type=color]{width:28px;height:24px;padding:0;border:1px solid var(--line);border-radius:6px}.memo-all{display:inline-flex;align-items:center;gap:.22rem;color:var(--muted);font-size:.72rem;font-weight:700}.memo-all input{width:auto;height:auto}.memo-mentions{color:var(--primary);font-size:.72rem;font-weight:700}.memo-row.add{grid-template-rows:auto auto;background:var(--surface-soft);border-top:1px dashed var(--line)}.memo-row.add>input{grid-column:2}.memo-row.add>.memo-meta{grid-column:2}.memo-row.add>button{grid-column:3;grid-row:1 / span 2}.empty-row{padding:.45rem .55rem;color:var(--muted);font-size:.78rem;background:var(--surface)}.reminder-list{display:grid;gap:.5rem;max-height:320px;overflow-y:auto;padding-right:.2rem}.reminder{display:grid;gap:.3rem;border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;background:var(--surface-soft)}.reminder.info{background:var(--primary-soft);border-color:#2563eb38}.reminder.warning{background:var(--amber-soft);border-color:#d9770638}.reminder.critical{background:var(--red-soft);border-color:#dc262638}.reminder strong{font-size:.86rem}.reminder-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.reminder-head strong{flex:1}.reminder ul{margin:0;padding-left:1rem;color:var(--ink-soft);line-height:1.45;font-size:.8rem}.cockpit-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;padding:.55rem .7rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1)}.compact-label.inline{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.compact-label.inline select{width:auto;min-width:180px;height:32px;padding:.25rem 1.6rem .25rem .6rem;font-size:.86rem;border-radius:8px;text-transform:none;letter-spacing:0;font-weight:600;color:var(--ink)}.weekly-grid{display:grid;gap:.85rem}.person-board{border:1px solid var(--line);border-top-width:3px;border-radius:var(--radius);padding:.7rem .85rem .85rem;background:var(--surface);box-shadow:var(--shadow-1)}.person-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding-bottom:.55rem;border-bottom:1px solid var(--line);margin-bottom:.7rem}.person-head h3{font-size:1.15rem;font-weight:700;display:inline-flex;align-items:center;gap:.45rem}.me-tag{font-size:.65rem;padding:.1rem .4rem;border-radius:999px;background:var(--ink);color:#fff;letter-spacing:.04em;font-weight:700}.hour-badge{display:inline-grid;grid-auto-flow:column;align-items:baseline;gap:.25rem;border:1px solid var(--amber-soft);border-radius:8px;padding:.3rem .55rem;background:var(--amber-soft);color:var(--amber)}.hour-badge strong{font-size:.95rem;font-weight:800}.hour-badge span{color:var(--muted);font-size:.7rem}.hour-badge.ok{border-color:var(--green-soft);background:var(--green-soft);color:var(--green)}.person-sections{display:grid;grid-template-columns:1fr;gap:.7rem}.work-card{display:grid;gap:.55rem;border:1px solid var(--line);border-radius:10px;padding:.65rem .75rem;background:var(--surface-soft)}.work-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.work-card h4{font-size:.92rem;font-weight:700}.work-card-head span{color:var(--muted);font-size:.74rem}.plan-list{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.plan-row{display:grid;gap:.3rem;padding:.4rem .55rem;background:var(--surface);border-left:3px solid;font-size:.85rem}.plan-row.done{opacity:.6}.plan-row.done .plan-title{text-decoration:line-through;color:var(--muted)}.plan-row-main{display:grid;grid-template-columns:20px auto auto minmax(0,1fr) auto;align-items:center;gap:.45rem}.plan-row-meta{display:grid;grid-template-columns:minmax(0,1.2fr) 130px auto;gap:.4rem;align-items:center}.plan-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.plan-row .plan-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-row-main input[type=text],.plan-row-main>input:not([type]){border:0;background:transparent;padding:.25rem .3rem;font-size:.84rem;height:26px}.plan-row-main>input:focus{background:var(--bg);box-shadow:none}.plan-comment{height:28px;padding:.25rem .45rem;font-size:.8rem;border-radius:6px;border:1px dashed var(--line);background:var(--surface-soft)}.plan-comment:focus{border-style:solid;border-color:var(--primary);background:var(--surface)}.approver-select{height:28px;padding:.2rem 1.4rem .2rem .5rem;font-size:.78rem;border-radius:6px}.approval-check{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;color:var(--muted);font-weight:600;cursor:pointer;white-space:nowrap}.approval-check input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}.plan-add-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,1.6fr) auto;gap:.4rem;align-items:center}.inline-task-select{position:relative;width:100%}.inline-task-select-btn{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.4rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:.3rem .5rem;height:30px;font-size:.84rem;text-align:left}.inline-task-select-btn:hover{border-color:var(--line-strong)}.inline-task-select-btn .trim{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inline-task-select-btn .caret{color:var(--muted);font-size:.7rem}.inline-task-select-pop{z-index:9999;display:grid;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-2);padding:.4rem;min-width:280px;max-width:420px;gap:.35rem}.inline-task-select-pop input{height:30px;padding:.25rem .5rem;font-size:.84rem;border-radius:8px}.inline-task-select-pop ul{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto;display:grid;gap:1px}.inline-task-select-pop li{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.4rem;padding:.32rem .4rem;border-radius:6px;cursor:pointer;font-size:.84rem;color:var(--ink)}.inline-task-select-pop li.level-1{font-weight:700;background:var(--primary-soft)}.inline-task-select-pop li.level-2{font-weight:600;background:var(--teal-soft)}.inline-task-select-pop li.level-3{color:var(--ink-soft)}.inline-task-select-pop li:hover{background:var(--bg)}.inline-task-select-pop li.active{outline:2px solid var(--primary);outline-offset:-2px}.inline-task-select-pop li.empty{color:var(--muted);cursor:default}.inline-task-select-pop li .trim{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-table{display:grid;gap:1px;border:1px solid var(--line);border-radius:8px;background:var(--line)}.report-table-head,.report-table-row{display:grid;grid-template-columns:60px minmax(180px,1.2fr) minmax(0,2fr) 64px minmax(0,1.4fr) 28px;gap:0;background:var(--surface);align-items:center;font-size:.82rem}.report-table-head:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.report-table-row:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.report-table-head{background:var(--surface-soft);color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.report-table-head span{padding:.4rem .5rem}.report-table-row .cell{padding:.4rem .5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-table-row .cell.wrap{white-space:normal}.report-table-row .cell.mono{font-family:JetBrains Mono,monospace;font-size:.76rem;color:var(--muted)}.report-table-row.saved input{border:0;background:transparent;padding:.32rem .45rem;height:32px;font-size:.82rem;border-radius:0;color:var(--ink)}.report-table-row.saved input:focus{background:var(--surface);box-shadow:inset 0 0 0 2px var(--primary)}.report-table-row.saved .inline-task-select-btn{border:0;background:transparent;height:32px;border-radius:0;padding:.32rem .45rem}.report-table-row.saved input.issue.open{color:var(--amber)}.report-table-row.saved input.issue.done{color:var(--muted);text-decoration:line-through}.report-table-row.draft{background:#fffbeb}.report-table-row.draft input{border:0;background:transparent;padding:.32rem .45rem;height:32px;font-size:.82rem;border-radius:0}.report-table-row.draft input:focus{background:var(--surface);box-shadow:inset 0 0 0 2px var(--primary)}.report-table-row.draft .inline-task-select-btn{border:0;background:transparent;height:32px;border-radius:0;padding:.32rem .45rem}.report-table-row>.text-button{margin-right:.3rem}.report-table-foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding-top:.4rem}.summary-list{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--line)}.summary-item{display:grid;background:var(--surface);padding:.45rem .55rem;gap:.35rem}.summary-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.45rem;border:0;background:transparent;color:var(--ink);text-align:left;padding:0}.summary-row .summary-title{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hours-pill{color:var(--primary);font-weight:700;font-size:.86rem}.chev{color:var(--muted);font-size:.85rem}.report-list{border-top:1px dashed var(--line);padding-top:.4rem;display:grid;gap:.35rem}.report-line{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:.4rem;align-items:start;font-size:.8rem}.report-line p,.unfinished-item p,.root-task-grid p,.rule-grid p,.audit-list p{color:var(--ink-soft);line-height:1.5;font-size:.8rem}.report-line em{grid-column:1 / -1;color:var(--amber);font-style:normal;font-size:.78rem}.danger-zone{background:#fff8f7;border-color:#dc26262e}.unfinished-list{display:grid;gap:.35rem}.unfinished-item{display:grid;gap:.3rem;border:1px solid var(--red-soft);border-radius:8px;padding:.5rem .6rem;background:var(--red-soft)}.unfinished-item button{width:fit-content;border:0;border-radius:6px;color:#fff;background:var(--ink);padding:.25rem .55rem;font-weight:600;font-size:.74rem}.unfinished-item button:hover{background:var(--primary)}.issue-list{display:grid;gap:.6rem}.issue-card{display:grid;gap:.45rem;border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:10px;padding:.65rem .85rem;background:var(--surface);box-shadow:var(--shadow-1)}.issue-card.resolved{border-left-color:var(--green);background:var(--surface-soft);opacity:.85}.issue-head{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.issue-head strong{font-size:.9rem}.issue-meta{color:var(--muted);font-size:.76rem}.issue-status{margin-left:auto;font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:999px}.issue-status.open{color:var(--amber);background:var(--amber-soft)}.issue-status.done{color:var(--green);background:var(--green-soft)}.issue-body{font-size:.86rem;color:var(--ink-soft);line-height:1.5}.issue-solution{display:grid;gap:.4rem}.issue-solution textarea{font-size:.84rem;min-height:3.2rem}.issue-actions{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;font-size:.78rem;color:var(--muted)}.resolved-by{color:var(--muted)}.rule-grid,.root-task-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.rule-grid>div,.root-task-grid article,.audit-list>div{border:1px solid var(--line);border-radius:10px;padding:.65rem .75rem;background:var(--surface-soft)}.rule-grid>div strong{display:block;margin-bottom:.25rem;color:var(--primary);font-size:.86rem}.root-task-grid article{display:grid;gap:.35rem;background:var(--surface)}.root-task-grid h4{font-size:.92rem}.audit-list{display:grid;gap:4px}.audit-list>div{display:grid;grid-template-columns:130px 110px minmax(0,1fr);gap:.55rem;align-items:center;padding:.4rem .55rem;background:var(--surface)}.audit-list span{color:var(--muted);font-size:.74rem;font-family:JetBrains Mono,monospace}.audit-list strong{font-size:.82rem;color:var(--ink)}.audit-list p{font-size:.8rem}.mention-banner-host{position:relative}.mention-banner{display:flex;align-items:center;width:100%;gap:.6rem;padding:.55rem .85rem;border:1px solid rgba(37,99,235,.3);border-radius:12px;background:linear-gradient(90deg,#2563eb14,#0f9b8e0f);color:var(--ink);font-size:.86rem;cursor:pointer;text-align:left}.mention-banner .mention-icon{font-size:1rem}.mention-banner .mention-next{margin-left:auto;color:var(--muted);font-size:.8rem}.mention-open{color:var(--primary);font-size:.78rem;font-weight:700}.mention-pop{position:absolute;z-index:30;top:calc(100% + .35rem);right:0;width:min(420px,100%);display:grid;gap:.35rem;padding:.45rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-2)}.mention-pop-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.45rem .55rem;border-radius:9px;background:var(--surface-soft)}.mention-pop-row div{display:grid;gap:.15rem;min-width:0}.mention-pop-row strong,.mention-pop-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mention-pop-row span{color:var(--muted);font-size:.78rem}.mention-pop-row.dismissed{opacity:.58}.mention-pop-row.dismissed strong,.mention-pop-row.dismissed span{text-decoration:line-through}.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;border:1px solid var(--line);border-radius:10px;background:var(--line);overflow:hidden}.cal-week-col{background:var(--surface);display:flex;flex-direction:column;min-height:140px}.cal-week-col.is-today{background:linear-gradient(180deg,rgba(37,99,235,.06),var(--surface) 60%)}.cal-week-head{display:flex;flex-direction:column;gap:.1rem;padding:.45rem .55rem .35rem;border-bottom:1px solid var(--line)}.cal-week-head .dow{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.cal-week-head .dom{font-size:.95rem;font-weight:700;color:var(--ink)}.cal-week-col.is-today .cal-week-head .dom{color:var(--primary)}.cal-day-body{display:flex;flex-direction:column;gap:3px;padding:.4rem;flex:1}.cal-event-chip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.3rem;border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:6px;background:var(--surface-soft);padding:.25rem .45rem;font-size:.78rem;text-align:left;color:var(--ink);cursor:pointer;transition:background .12s ease,border-color .12s ease}.cal-event-chip:hover{background:#fff;border-color:var(--line-strong)}.cal-event-chip .time{color:var(--muted);font-size:.7rem;font-weight:700;font-family:JetBrains Mono,monospace}.cal-event-chip .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.cal-event-chip .rec{color:var(--muted);font-size:.74rem}.cal-add-btn{margin-top:auto;border:1px dashed var(--line-strong);border-radius:6px;padding:.2rem;background:transparent;color:var(--muted);font-size:.85rem;font-weight:700;transition:color .12s ease,border-color .12s ease}.cal-add-btn:hover{color:var(--primary);border-color:var(--primary)}.cal-month{display:grid;gap:4px}.cal-month-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-month-dow{text-align:center;font-size:.74rem;font-weight:700;color:var(--muted);letter-spacing:.06em;padding:.3rem 0}.cal-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;border:1px solid var(--line);border-radius:10px;background:var(--line);overflow:hidden}.cal-month-cell{display:flex;flex-direction:column;gap:3px;min-height:92px;padding:.3rem .35rem;background:var(--surface);border:0;border-radius:0;text-align:left;cursor:pointer;transition:background .12s ease}.cal-month-cell:hover{background:var(--surface-soft)}.cal-month-cell.out{background:var(--surface-soft);opacity:.55}.cal-month-cell.is-today .cell-date{color:var(--primary)}.cell-date{font-size:.84rem;font-weight:700;color:var(--ink)}.cell-events{display:flex;flex-direction:column;gap:2px}.cal-event-pill{display:inline-block;font-size:.7rem;color:#fff;background:var(--primary);padding:.12rem .4rem;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border:0;text-align:left}.cal-more{font-size:.7rem;color:var(--muted);padding:0 .2rem}.modal-overlay{position:fixed;inset:0;z-index:9000;background:#0f172a73;display:grid;place-items:center;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:min(640px,100%);max-height:90vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-2);overflow:hidden}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.1rem;border-bottom:1px solid var(--line)}.modal-head h3{font-size:1.05rem}.modal-body{padding:1rem 1.1rem;display:grid;gap:.7rem;overflow-y:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.modal-body .form-row:has(input[type=time]){grid-template-columns:1fr 1fr 1fr}.modal-foot{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.1rem;border-top:1px solid var(--line);background:var(--surface-soft)}.modal-foot-right{display:flex;gap:.5rem}.form-field{display:grid;gap:.3rem}.form-label{color:var(--muted);font-size:.78rem;font-weight:600}.participant-picker{position:relative;width:100%}.participant-trigger{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:.45rem .6rem;height:38px;text-align:left;font-size:.86rem;color:var(--ink);cursor:pointer}.participant-trigger:hover{border-color:var(--line-strong)}.participant-trigger.empty .summary{color:var(--muted)}.participant-trigger .summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.participant-trigger .count{color:var(--primary);font-weight:700;font-size:.78rem}.participant-trigger .caret{color:var(--muted);font-size:.7rem}.participant-pop{z-index:9999;display:grid;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-2);padding:.4rem;min-width:260px;max-width:360px;gap:.35rem}.participant-pop input{height:32px;padding:.25rem .55rem;font-size:.85rem;border-radius:8px}.participant-pop ul{list-style:none;margin:0;padding:0;max-height:280px;overflow-y:auto;display:grid;gap:1px}.participant-pop li{display:grid;grid-template-columns:18px auto minmax(0,1fr);align-items:center;gap:.45rem;padding:.4rem .5rem;border-radius:6px;cursor:pointer;font-size:.85rem;color:var(--ink)}.participant-pop li .dot{width:8px;height:8px;border-radius:999px}.participant-pop li .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.participant-pop li .tickbox{width:16px;height:16px;display:grid;place-items:center;border:1.5px solid var(--line-strong);border-radius:4px;font-size:.7rem;color:transparent;background:var(--surface)}.participant-pop li .tickbox.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:800}.participant-pop li:hover{background:var(--bg)}.participant-pop li.active{background:var(--primary-soft)}.participant-pop li.empty{color:var(--muted);cursor:default}.participant-pop-foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-top:1px solid var(--line);padding-top:.45rem;margin-top:.2rem}.participant-pop-foot .count{color:var(--muted);font-size:.78rem;margin-right:auto}.task-detail-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.stat-tile{display:grid;gap:.15rem;padding:.55rem .65rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.stat-tile span{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.stat-tile strong{font-size:1.2rem;font-weight:800;color:var(--ink)}.stat-tile.big strong{font-size:1.6rem;background:linear-gradient(135deg,var(--primary),var(--teal));-webkit-background-clip:text;background-clip:text;color:transparent}.detail-section{display:grid;gap:.45rem}.detail-section h4{font-size:.86rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.bar-list{display:grid;gap:.35rem}.bar-row{display:grid;grid-template-columns:minmax(110px,1.6fr) minmax(0,3fr) 56px 44px;align-items:center;gap:.5rem;font-size:.82rem}.bar-label{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-soft);font-weight:600}.bar-label .dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.bar-label .trim{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.bar-track{height:12px;background:var(--bg);border-radius:999px;overflow:hidden;position:relative}.bar-fill{height:100%;border-radius:999px;transition:width .28s ease}.bar-value{font-weight:700;color:var(--ink);text-align:right;font-size:.8rem}.bar-pct{color:var(--muted);text-align:right;font-size:.76rem}.task-detail-reports{display:grid;gap:.4rem;max-height:380px;overflow-y:auto}.detail-report-row{display:grid;grid-template-columns:24px auto auto minmax(0,1fr);gap:.4rem;align-items:start;padding:.4rem .5rem;background:var(--surface-soft);border-radius:8px;font-size:.82rem}.detail-report-row .user-tag{width:22px;height:22px;border-radius:6px}.detail-report-row .hours{color:var(--primary);font-weight:700;font-size:.78rem}.detail-report-row p{grid-column:2 / -1;color:var(--ink-soft);line-height:1.45;margin-top:.15rem}.detail-report-row em{grid-column:2 / -1;color:var(--amber);font-style:normal;font-size:.76rem}.tree-node.selected>.tree-row{outline:2px solid var(--primary);outline-offset:-1px}.stats-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.45rem}.stats-controls select{width:auto;min-width:170px;height:34px;padding:.25rem .65rem;border-radius:9px;font-size:.86rem;font-weight:650}.stats-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}.stats-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.stats-donut-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:center}.donut-wrap{display:grid;place-items:center}.donut-total{font-size:1.1rem;font-weight:800;fill:var(--ink)}.donut-total-label{font-size:.7rem;fill:var(--muted)}@media(max-width:1180px){.home-layout,.stats-layout{grid-template-columns:1fr}.stats-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-donut-row{grid-template-columns:1fr;justify-items:center}}@media(max-width:720px){.plan-row-main{grid-template-columns:20px auto minmax(0,1fr) auto}.plan-row-main .plan-title{display:none}.plan-row-meta{grid-template-columns:1fr}.task-detail-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.bar-row{grid-template-columns:minmax(80px,1fr) minmax(0,2fr) 48px}.bar-pct{display:none}.cal-week{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.cal-week-col{flex:0 0 min(78vw,150px);min-height:auto;scroll-snap-align:start}.cal-week-col.is-today{border:1px solid var(--primary)}.cal-month-cell{min-height:60px}.form-row,.modal-body .form-row:has(input[type=time]){grid-template-columns:1fr}.mention-banner{flex-wrap:wrap}.mention-banner .mention-next{margin-left:0;flex-basis:100%}}@media(max-width:920px){.metric-strip,.rule-grid,.root-task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-table-head{display:none}.report-table-row{grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:0;padding:.4rem .5rem;background:var(--surface)}.report-table-row.draft{background:#fffbeb}.report-table-row .cell,.report-table-row.draft input,.report-table-row.draft .inline-task-select-btn{padding:.3rem .4rem;height:auto}.report-table-row.draft input,.report-table-row.draft .inline-task-select-btn{border:1px solid var(--line);border-radius:6px;margin:2px 0}.report-table-row>.text-button{grid-column:1 / -1;margin-right:0;text-align:right}}@media(max-width:720px){.topbar{grid-template-columns:auto 1fr auto;padding:.5rem .7rem}.top-tabs{justify-content:flex-start}.top-brand-text{display:none}.workspace{padding:.7rem .7rem 1.5rem}.metric-strip{display:flex;gap:.35rem;overflow-x:auto;overflow-y:hidden;padding-bottom:.1rem;-webkit-overflow-scrolling:touch}.metric{flex:0 0 112px;padding:.55rem .6rem;border-radius:10px}.metric span{font-size:.62rem;letter-spacing:.03em}.metric strong{font-size:1.05rem}.audit-list>div{grid-template-columns:1fr}.week-picker{width:100%;justify-content:flex-start}.week-picker select{flex:1}.plan-add-row{grid-template-columns:1fr}}
