:root{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #eef1f7;--border: #dde2ec;--text: #172033;--muted: #5f6b85;--primary: #2952cc;--primary-ink: #fff;--danger: #c62f3b;--success: #1d8a55;--warning: #b26b00;--focus: #7aa2ff;--radius: 10px;--shadow: 0 6px 24px rgba(16, 24, 48, .08);--mono: ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #0f1420;--surface: #161d2c;--surface-2: #1d2638;--border: #2a3550;--text: #e6eaf3;--muted: #93a0bd;--primary: #6d8dff;--primary-ink: #0b1020;--shadow: 0 6px 24px rgba(0,0,0,.35)}}*{box-sizing:border-box}html,body,#app{margin:0;height:100%}body{font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary)}h1,h2,h3{line-height:1.2;margin:0 0 .6em}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1rem}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:var(--mono)}.hidden{display:none!important}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.stack>*+*{margin-top:.75rem}.grow{flex:1;min-width:0}button,.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.5rem .9rem;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;text-decoration:none}button:hover,.btn:hover{border-color:var(--primary)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);font-weight:600}button.danger{color:var(--danger)}button.danger.solid{background:var(--danger);color:#fff;border-color:var(--danger)}button.icon{padding:.4rem;border-color:transparent;background:transparent}button.icon:hover{background:var(--surface-2)}button.block{width:100%;justify-content:center}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}label{display:block;font-weight:600;font-size:.85rem;margin-bottom:.25rem}input,select,textarea{font:inherit;width:100%;padding:.55rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}textarea{min-height:90px;resize:vertical}input[type=checkbox]{width:auto}.field{margin-bottom:.8rem}.field .row input{flex:1}.check{display:flex;align-items:center;gap:.5rem;font-weight:400}.input-group{display:flex;gap:.3rem}.input-group input{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.badge{display:inline-block;font-size:.72rem;padding:.1rem .45rem;border-radius:99px;background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.badge.ok{color:var(--success)}.badge.bad{color:var(--danger)}.badge.warn{color:var(--warning)}.banner{padding:.7rem 1rem;border-radius:8px;background:var(--surface-2);border-left:4px solid var(--warning);margin-bottom:1rem}.banner.error{border-left-color:var(--danger)}.banner.ok{border-left-color:var(--success)}.auth-page{min-height:100%;display:grid;place-items:center;padding:1.5rem}.auth-card{width:min(420px,100%)}.auth-card .brand{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.brand-mark{width:36px;height:36px;border-radius:9px;background:var(--primary);color:var(--primary-ink);display:grid;place-items:center;font-weight:800}.shell{display:grid;grid-template-columns:230px 1fr;grid-template-rows:56px 1fr;height:100%}.shell>header{grid-column:1 / -1;display:flex;align-items:center;gap:.75rem;padding:0 1rem;background:var(--surface);border-bottom:1px solid var(--border)}.shell>nav{background:var(--surface);border-right:1px solid var(--border);padding:.75rem .5rem;overflow-y:auto}.shell>nav a{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;border-radius:8px;color:var(--text);text-decoration:none}.shell>nav a.active,.shell>nav a:hover{background:var(--surface-2);color:var(--primary)}.shell>main{overflow-y:auto;padding:1.25rem;min-width:0}.shell .title{font-weight:700}.sync-dot{width:9px;height:9px;border-radius:50%;background:var(--success);display:inline-block}.sync-dot.busy{background:var(--warning)}.sync-dot.error{background:var(--danger)}svg.i{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}@media (max-width: 760px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:52px minmax(0,1fr) 60px}.shell>header{min-width:0;gap:.4rem;padding:0 .6rem}.shell>nav{grid-row:3;display:flex;justify-content:flex-start;padding:.25rem;border-right:0;border-top:1px solid var(--border);overflow-x:auto;min-width:0}.shell>nav a{flex:1 0 auto;justify-content:center;text-align:center;flex-direction:column;gap:.1rem;font-size:.68rem;padding:.35rem .4rem;white-space:nowrap}.shell>nav a span.label-long{display:none}.shell>main{padding:.85rem}.hide-mobile{display:none!important}}.split{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:1rem;height:100%}.list{display:flex;flex-direction:column;gap:.25rem}.list-item{display:flex;gap:.7rem;align-items:center;padding:.6rem .7rem;border-radius:8px;cursor:pointer;border:1px solid transparent}.list-item:hover{background:var(--surface-2)}.list-item.selected{background:var(--surface-2);border-color:var(--border)}.avatar{width:34px;height:34px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;font-weight:700;color:var(--primary);flex:none;text-transform:uppercase}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-field{padding:.6rem 0;border-bottom:1px solid var(--border)}.detail-field .value{display:flex;align-items:center;gap:.3rem;word-break:break-all}.chips{display:flex;gap:.35rem;flex-wrap:wrap}.chip{padding:.25rem .65rem;border-radius:99px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:.85rem}.chip.active{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}@media (max-width: 760px){.split{grid-template-columns:1fr}.split .detail-pane{display:none}.split.show-detail .detail-pane{display:block}.split.show-detail .list-pane{display:none}}.back-mobile{display:none}@media (max-width: 760px){.back-mobile{display:inline-flex}}.token-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem}.token{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none}.token .code{font:700 1.9rem/1.1 var(--mono);letter-spacing:.06em;color:var(--primary);margin:.35rem 0}.token .ring{position:absolute;right:1rem;bottom:1rem}.token .ring circle{transition:stroke-dashoffset .9s linear}.token.expiring .code{color:var(--danger)}.token .menu{position:absolute;top:.5rem;right:.5rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:1rem}.stat .num{font-size:1.7rem;font-weight:700}.stat .num.warn{color:var(--warning)}.stat .num.bad{color:var(--danger)}.modal-backdrop{position:fixed;inset:0;background:#080c188c;display:grid;place-items:center;padding:1rem;z-index:50}.modal{width:min(560px,100%);max-height:calc(100vh - 2rem);overflow-y:auto}.modal header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.toasts{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:.5rem;z-index:60;width:min(420px,calc(100% - 2rem))}.toast{background:var(--text);color:var(--bg);padding:.65rem .9rem;border-radius:8px;box-shadow:var(--shadow);animation:pop .15s ease-out}.toast.error{background:var(--danger);color:#fff}.toast.success{background:var(--success);color:#fff}@keyframes pop{0%{transform:translateY(6px);opacity:0}}.meter{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.meter>div{height:100%;transition:width .2s}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1rem;overflow-x:auto}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none}.tabs button.active{border-bottom-color:var(--primary);color:var(--primary);font-weight:600}video.scanner{width:100%;max-height:340px;border-radius:8px;background:#000;object-fit:cover}.qr{background:#fff;padding:12px;border-radius:8px;display:inline-block}.qr svg{display:block;width:220px;height:220px}.codes{font-family:var(--mono);display:grid;grid-template-columns:repeat(2,1fr);gap:.3rem 1rem}.empty{text-align:center;padding:3rem 1rem;color:var(--muted)}.repo-layout{display:grid;grid-template-columns:240px 1fr;gap:1rem}@media (max-width: 860px){.repo-layout{grid-template-columns:1fr}}.tree{display:flex;flex-direction:column;gap:2px;font-size:.92rem}.tree button{text-align:left;background:none;border:0;padding:.3rem .5rem;border-radius:6px;color:var(--text);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree button.active,.tree button:hover{background:var(--surface-2)}.file-table{width:100%;border-collapse:collapse}.file-table td,.file-table th{padding:.45rem .5rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.file-table tr.clickable{cursor:pointer}.file-table tr.clickable:hover{background:var(--surface-2)}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:1rem;text-align:center;color:var(--muted)}.dropzone.over{border-color:var(--primary);color:var(--primary)}.preview{border:1px solid var(--border);border-radius:8px;overflow:auto;max-height:70vh;background:var(--surface)}.preview pre,pre.code{margin:0;padding:.8rem;font:.85rem/1.5 var(--mono);white-space:pre;tab-size:4}.preview img{max-width:100%;display:block;margin:auto}.preview iframe{width:100%;height:70vh;border:0}.code-lines{counter-reset:line}.code-lines span.ln{display:inline-block;width:3.2em;color:var(--muted);-webkit-user-select:none;user-select:none;text-align:right;margin-right:1em}.diff{font:.82rem/1.45 var(--mono);width:100%;border-collapse:collapse;table-layout:fixed}.diff td{padding:0 .4rem;white-space:pre-wrap;word-break:break-all;vertical-align:top}.diff td.ln{width:3.5em;color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none}.diff .del{background:#dc323c24}.diff .ins{background:#1ea05a29}.diff .hunk td{background:var(--surface-2);color:var(--muted)}.diff-file{border:1px solid var(--border);border-radius:8px;margin-bottom:1rem;overflow:hidden}.diff-file>header{padding:.45rem .7rem;background:var(--surface-2);font-family:var(--mono);font-size:.85rem;display:flex;gap:.5rem}.status-pending{color:var(--warning)}.status-approved{color:var(--success)}.status-rejected{color:var(--danger)}.pill-ok{background:#1ea05a26;color:var(--success);border-color:transparent}.pill-warn{background:#c8780026;color:var(--warning);border-color:transparent}.pill-bad{background:#dc323c26;color:var(--danger);border-color:transparent}.progress{height:4px;background:var(--surface-2);border-radius:2px;overflow:hidden}.progress>div{height:100%;background:var(--primary);width:0;transition:width .2s}.brand-mark{color:#fff;flex:none}.brand-mark svg.i{width:20px;height:20px}.brand-mark.small{width:30px;height:30px;border-radius:8px}.brand-mark.small svg.i{width:17px;height:17px}.popover{position:fixed;z-index:70;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:.35rem;max-width:min(360px,calc(100vw - 16px));max-height:calc(100vh - 16px);overflow:auto}.menu{min-width:200px;display:flex;flex-direction:column}.menu button{border:0;background:none;justify-content:flex-start;text-align:left;padding:.45rem .6rem;border-radius:6px;width:100%;font-weight:400}.menu button:hover:not(:disabled),.menu button:focus-visible{background:var(--surface-2)}.menu kbd{font:.72rem var(--mono);color:var(--muted);margin-left:1rem}.menu-sep{height:1px;background:var(--border);margin:.3rem .2rem}.menu-heading{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.35rem .6rem .2rem;font-weight:600}.menu-check{width:18px;display:inline-flex;flex:none}.suite-pop{width:290px;display:flex;flex-direction:column;gap:2px}.suite-link{display:flex;align-items:center;gap:.65rem;padding:.45rem .5rem;border-radius:8px;color:var(--text);text-decoration:none}.suite-link:hover,.suite-link:focus-visible,.suite-link.current{background:var(--surface-2)}.suite-link .grow{display:flex;flex-direction:column;line-height:1.25}.swatches{display:grid;grid-template-columns:repeat(6,26px);gap:4px}.swatch{width:26px;height:26px;padding:0;border-radius:6px;border:1px solid var(--border)}.swatch.active{outline:2px solid var(--primary);outline-offset:1px}input[type=color]{width:34px;height:28px;padding:2px;flex:none}.page-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.page-head h1{margin:0;flex:1;min-width:0}.toolbar{display:flex;align-items:center;gap:.2rem;overflow-x:auto;padding:.3rem .5rem;background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:thin;flex:none}.toolbar>*{flex:none}.toolbar .sep{width:1px;align-self:stretch;background:var(--border);margin:.2rem .25rem}.toolbar .spacer{flex:1 1 auto}.toolbar select,.toolbar input:not([type=checkbox]):not([type=color]){width:auto;padding:.35rem .5rem}button.tool{padding:.38rem .45rem;border-color:transparent;background:transparent}button.tool:hover:not(:disabled){background:var(--surface-2);border-color:transparent}button.tool.active{background:var(--surface-2);color:var(--primary);border-color:var(--border)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;flex:none}.seg button{border:0;border-radius:0;padding:.35rem .7rem;background:var(--surface)}.seg button+button{border-left:1px solid var(--border)}.seg button.active{background:var(--primary);color:var(--primary-ink)}.shell>main.fill{padding:0;overflow:hidden}section.fill{height:100%;display:flex;flex-direction:column;min-height:0;min-width:0}.avatar.round{border-radius:50%;width:26px;height:26px;font-size:.66rem}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9rem}.tile{display:flex;flex-direction:column;gap:.4rem;cursor:pointer;padding:.7rem;text-align:left}.tile:hover{border-color:var(--primary)}.tile .thumb{aspect-ratio:16 / 10;background:var(--surface-2);border-radius:8px;display:grid;place-items:center;overflow:hidden;color:var(--muted)}.tile .thumb svg{width:100%;height:100%}@media print{.shell>header,.shell>nav,.toasts,.no-print{display:none!important}.shell{display:block;height:auto}.shell>main{overflow:visible;padding:0}html,body,#app{height:auto}}.pl-plan-view{display:flex;flex-direction:column;min-height:0;height:100%}.pl-head{flex:none;background:var(--surface);border-bottom:1px solid var(--border)}.pl-bar{padding:.35rem .6rem;flex-wrap:nowrap}.pl-title{font-size:1.05rem;min-width:3rem}.pl-summary{display:inline-flex;align-items:center;gap:.4rem;flex:none}.pl-tabs{margin:0;padding:0 .5rem;border-bottom:0}.pl-tabs button{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .7rem;flex:none}.pl-filter{padding:.45rem .6rem;border-top:1px solid var(--border);gap:.4rem}.pl-filter select{width:auto;max-width:11rem;padding:.35rem .5rem}.pl-filter select.active{border-color:var(--primary);color:var(--primary)}.pl-count{font-size:.7rem;background:var(--primary);color:var(--primary-ink);border-radius:99px;padding:0 .35rem;margin-left:.15rem}.pl-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.pl-scroll{flex:1;min-height:0;overflow:auto}.pl-pad{padding:.8rem}.pl-tools{padding:.4rem .6rem;gap:.4rem;flex:none;align-items:center}.pl-tools select{width:auto;padding:.3rem .5rem}.pl-tools .sep{width:1px;align-self:stretch;background:var(--border);margin:0 .2rem}.pl-foot{padding:.3rem .7rem;margin:0;border-top:1px solid var(--border);flex:none}.pl-late{color:var(--danger)}.pl-done{text-decoration:line-through;color:var(--muted)}.pl-dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;flex:none;margin-right:.3rem}.pl-dot.big{width:.8rem;height:.8rem;margin:0 .1rem}.num{text-align:right;font-variant-numeric:tabular-nums}.pl-avatar{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;border-radius:50%;color:#fff;font-size:.72rem;font-weight:600;flex:none}.pl-avatar.small{width:1.45rem;height:1.45rem;font-size:.6rem}.pl-avatar.more{background:var(--surface-2);color:var(--muted)}.pl-avatars{display:inline-flex}.pl-avatars .pl-avatar+.pl-avatar{margin-left:-.35rem;box-shadow:0 0 0 2px var(--surface)}.pl-label{display:inline-block;color:#fff;font-size:.7rem;font-weight:600;padding:.05rem .45rem;border-radius:99px;max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pl-labels{display:flex;flex-wrap:wrap;gap:.2rem;margin-bottom:.3rem}.pl-label-pick{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .35rem;border-radius:99px}.pl-label-pick.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.pl-person{display:inline-flex;align-items:center;gap:.35rem}.pl-prio{display:inline-flex}.pl-prio.p3{color:var(--danger)}.pl-prio.p2{color:var(--warning)}.pl-prio.p0{color:var(--muted)}.pl-due{display:inline-flex;align-items:center;gap:.2rem}.pl-due.late{color:var(--danger);font-weight:600}.pl-ring{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex:none}.pl-ring>span{display:flex;align-items:center;justify-content:center;width:72%;height:72%;border-radius:50%;background:var(--surface);font-size:.62rem;font-weight:600}.pl-plan{cursor:pointer;display:flex;flex-direction:column;gap:.35rem}.pl-templates{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:.5rem}.pl-template{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;padding:.6rem;height:100%}.pl-template.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.pl-my input[type=checkbox]{flex:none}.pl-board{display:flex;align-items:flex-start;gap:.7rem;padding:.2rem .7rem .8rem}.pl-col{flex:0 0 280px;max-width:86vw;background:var(--surface-2);border-radius:var(--radius);padding:.5rem;display:flex;flex-direction:column;gap:.45rem;border:2px solid transparent}.pl-col.over[data-drop="1"]{border-color:var(--primary)}.pl-col>header{display:flex;align-items:center;gap:.35rem;padding:0 .2rem;min-height:1.9rem}.pl-add{display:flex;gap:.25rem}.pl-add input{padding:.4rem .55rem}.pl-cards{display:flex;flex-direction:column;gap:.45rem;min-height:2.2rem}.pl-empty{text-align:center;margin:.4rem 0}.pl-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid transparent;border-radius:8px;padding:.5rem .55rem;cursor:pointer;box-shadow:0 1px 2px #1018300f;user-select:none;-webkit-user-select:none}.pl-card:hover,.pl-card:focus-visible{border-color:var(--primary)}.pl-card.late{border-left-color:var(--danger)}.pl-card.dragging{opacity:.35}.pl-card-title{display:flex;gap:.45rem;align-items:flex-start;overflow-wrap:anywhere}.pl-card-title input{margin-top:.2rem;flex:none}.pl-card-meta{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-top:.4rem;font-size:.78rem;color:var(--muted);min-height:1.45rem}.pl-card-meta>span{display:inline-flex;align-items:center;gap:.15rem}.pl-card-meta svg.i{width:.95rem;height:.95rem}.pl-bar-mini{height:4px;border-radius:2px;background:var(--surface-2);margin-top:.4rem;overflow:hidden}.pl-bar-mini>span{display:block;height:100%;background:var(--primary)}.pl-ghost{position:fixed;z-index:60;pointer-events:none;transform:rotate(2deg);box-shadow:var(--shadow);opacity:.95}.pl-drop-line{height:3px;border-radius:2px;background:var(--primary)}.pl-newcol{flex:0 0 auto;border-style:dashed;white-space:nowrap}.pl-grid-wrap{background:var(--surface)}.pl-grid{border-collapse:collapse;width:100%;font-size:.9rem}.pl-grid th{position:sticky;top:0;z-index:2;background:var(--surface-2);text-align:left;font-size:.76rem;font-weight:600;color:var(--muted);padding:.4rem .45rem;white-space:nowrap;border-bottom:1px solid var(--border)}.pl-grid td{border-bottom:1px solid var(--border);padding:.05rem .25rem;white-space:nowrap;height:2.15rem}.pl-grid tr.selected td{background:color-mix(in srgb,var(--primary) 9%,transparent)}.pl-grid tr.summary .pl-name input{font-weight:700}.pl-grid .pl-num{width:2.4rem;text-align:right;font-size:.78rem}.pl-grid .pl-check{width:1.8rem;text-align:center}.pl-grid .pl-name{min-width:19rem;width:40%}.pl-grid .c-duration{width:6rem}.pl-grid .c-preds{width:7rem}.pl-grid .c-progress{width:4.5rem}.pl-cell,input.pl-cell,select.pl-cell{border:1px solid transparent;background:transparent;padding:.28rem .35rem;border-radius:6px;width:100%;min-width:0;font:inherit;color:inherit}.pl-cell:hover:not(:disabled),.pl-cell:focus{border-color:var(--border);background:var(--surface)}input.pl-cell[type=date]{min-width:8.6rem}button.pl-pick{text-align:left;min-height:1.9rem}.pl-calc{padding:0 .4rem;color:var(--muted)}.pl-toggle{width:1.5rem;height:1.5rem;padding:0;flex:none;display:inline-flex;align-items:center;justify-content:center}.pl-ms{color:var(--primary);display:inline-flex;flex:none}.pl-new td{border-bottom:0}.pl-gantt{display:grid;grid-template-columns:minmax(150px,260px) max-content;grid-template-rows:44px max-content;background:var(--surface);align-content:start}.pl-g-corner{position:sticky;left:0;top:0;z-index:4;background:var(--surface-2);border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 .6rem;font-size:.8rem;color:var(--muted)}.pl-g-headwrap{position:sticky;top:0;z-index:3;background:var(--surface-2);border-bottom:1px solid var(--border);height:44px}.pl-g-names{position:sticky;left:0;z-index:2;background:var(--surface);border-right:1px solid var(--border)}.pl-g-name{display:flex;align-items:center;gap:.2rem;padding-right:.4rem;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);cursor:pointer;font-size:.88rem;box-sizing:border-box}.pl-g-name:hover{background:var(--surface-2)}.pl-g-name.summary{font-weight:700}.pl-g-chartwrap{position:relative}.pl-g-chart,.pl-g-head{display:block}.pl-g-line{stroke:var(--border);stroke-width:1}.pl-g-line.faint{opacity:.55}.pl-g-off{fill:var(--surface-2);opacity:.7}.pl-g-today{stroke:var(--danger);stroke-width:1.5;stroke-dasharray:4 3}.pl-g-todaylabel{fill:var(--danger);font-size:10px}.pl-g-month{fill:var(--text);font-size:12px;font-weight:600}.pl-g-day{fill:var(--muted);font-size:11px}.pl-g-day.off{opacity:.55}.pl-g-task{cursor:pointer;outline:none}.pl-g-task.movable .pl-g-bar{cursor:grab}.pl-g-task:focus-visible .pl-g-bar,.pl-g-task:focus-visible .pl-g-ms,.pl-g-task:focus-visible .pl-g-sum{stroke:var(--focus);stroke-width:3}.pl-g-task.critical .pl-g-bar,.pl-g-task.critical .pl-g-ms{stroke:var(--danger);stroke-width:2.5}.pl-g-sum{fill:var(--text);opacity:.8}.pl-g-task.critical .pl-g-sum{fill:var(--danger)}.pl-g-grip{fill:transparent;cursor:ew-resize}.pl-g-linkdot{fill:var(--surface);stroke:var(--muted);stroke-width:1.5;cursor:crosshair;opacity:0}.pl-g-task:hover .pl-g-linkdot,.pl-g-task:focus .pl-g-linkdot{opacity:1}.pl-g-label{fill:var(--muted);font-size:11px;pointer-events:none}.pl-g-label.strong{fill:var(--text);font-weight:600}.pl-g-warn{fill:var(--danger);font-weight:700;font-size:13px}.pl-g-link{fill:none;stroke:var(--muted);stroke-width:1.3}.pl-g-link.critical{stroke:var(--danger);stroke-width:1.8}.pl-g-arrow{fill:var(--muted)}.pl-g-arrow.critical{fill:var(--danger)}.pl-g-base{fill:var(--muted);opacity:.55}.pl-g-deadline{fill:none;stroke:var(--warning);stroke-width:2}.pl-g-ghost{fill:var(--primary);opacity:.3;stroke:var(--primary);stroke-dasharray:4 3}.pl-g-rubber{stroke:var(--primary);stroke-width:2;stroke-dasharray:5 4}.pl-cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:.8rem;align-items:start}.pl-cal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.pl-month{min-width:9.5rem;text-align:center}.pl-dow{display:grid;grid-template-columns:repeat(7,1fr);font-size:.75rem;color:var(--muted);background:var(--surface-2);border-top:1px solid var(--border)}.pl-dow span{padding:.25rem .4rem}.pl-week{position:relative;border-top:1px solid var(--border);min-height:6.6rem}.pl-days{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,1fr)}.pl-day{border-right:1px solid var(--border);padding:.15rem .35rem;font-size:.78rem;color:var(--muted)}.pl-day:last-child{border-right:0}.pl-day.off{background:color-mix(in srgb,var(--surface-2) 70%,transparent)}.pl-day.other .pl-daynum{opacity:.4}.pl-day.today .pl-daynum{background:var(--primary);color:var(--primary-ink);border-radius:99px;padding:0 .4rem;font-weight:600}.pl-week-bars{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:1.45rem;grid-auto-flow:dense;row-gap:2px;padding:1.5rem 2px .3rem}.pl-cal-bar{display:flex;align-items:center;gap:.2rem;min-width:0;margin:0 2px;padding:0 .35rem;font-size:.76rem;text-align:left;border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:5px;background:var(--surface);height:1.4rem}.pl-cal-bar.cont-l{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.pl-cal-bar.cont-r{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0;border-right-style:dashed}.pl-cal-bar.done span{text-decoration:line-through;color:var(--muted)}.pl-cal-bar svg.i{width:.8rem;height:.8rem;flex:none}.pl-more-row{grid-column:1 / -1;padding-left:.4rem}.pl-undated{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem}.pl-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.8rem;align-items:start}.pl-chart h3{margin:0 0 .4rem}.pl-chart.wide{grid-column:1 / -1}.pl-big{font-size:1.6rem;font-weight:700;line-height:1.2}.pl-legend{display:flex;flex-wrap:wrap;gap:.2rem .8rem;font-size:.76rem;color:var(--muted);margin-bottom:.5rem}.pl-legend i,.pl-status-list i{display:inline-block;width:.65rem;height:.65rem;border-radius:3px;margin-right:.3rem}.pl-rows{display:grid;grid-template-columns:minmax(4rem,9rem) minmax(0,1fr) 2rem;gap:.35rem .5rem;align-items:center;font-size:.86rem}.pl-track{height:14px}.pl-track.tall{height:22px;margin-bottom:.6rem}.pl-sbar{display:flex;gap:2px;height:100%;min-width:4px}.pl-sbar span{border-radius:4px;min-width:3px}.pl-status-list>div{display:flex;align-items:center;padding:.15rem 0;font-size:.9rem}.pl-burn-wrap{position:relative}.pl-burn{width:100%;height:auto;max-height:300px;display:block;touch-action:pan-y}.pl-axis{fill:var(--muted);font-size:11px}.pl-axis.strong{fill:var(--text);font-weight:600}.pl-tip{position:absolute;top:0;background:var(--text);color:var(--surface);font-size:.76rem;padding:.15rem .45rem;border-radius:6px;pointer-events:none;white-space:nowrap}.pl-chart details{margin-top:.5rem}.pl-chart table{width:100%;border-collapse:collapse}.pl-chart td,.pl-chart th{padding:.15rem .4rem;border-bottom:1px solid var(--border);font-weight:400}.pl-people,.pl-load{width:100%;border-collapse:collapse;background:var(--surface)}.pl-people th,.pl-people td,.pl-load th,.pl-load td{padding:.3rem .5rem;border-bottom:1px solid var(--border);white-space:nowrap}.pl-people th,.pl-load thead th{font-size:.76rem;color:var(--muted);font-weight:600;text-align:left}.pl-people th.num,.pl-load th.num{text-align:right}.pl-people input.num{max-width:6rem;margin-left:auto;display:block}.pl-load tbody th{text-align:left;font-weight:500}.pl-load-ok{background:color-mix(in srgb,#2a78d6 14%,transparent)}.pl-load-full{background:color-mix(in srgb,#2a78d6 32%,transparent)}.pl-load-over{background:color-mix(in srgb,var(--danger) 22%,transparent);color:var(--danger);font-weight:700}.modal:has(.pl-task-title),.modal:has(.pl-form),.modal:has(.pl-templates){width:min(760px,96vw)}.pl-task-title{font-size:1.15rem;font-weight:600}.pl-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.6rem .8rem}.pl-form .field select{min-width:0;flex:1}.pl-form .field{margin:0}.pl-more>summary{cursor:pointer;font-weight:600;padding:.3rem 0}.pl-more[open]>summary{margin-bottom:.5rem}.pl-dep select{width:auto}.pl-comment{background:var(--surface-2);border-radius:8px;padding:.4rem .6rem}.pl-comment .icon{padding:0 .2rem}@media (max-width: 760px){.pl-cal-layout{grid-template-columns:1fr}.pl-gantt{grid-template-columns:120px max-content}.pl-col{flex-basis:82vw}.pl-week{min-height:5.4rem}.pl-filter select{max-width:46%;flex:1}.pl-title{flex:1}}@media print{.pl-tools,.pl-filter,.pl-add,.pl-newcol,.pl-tabs{display:none!important}.pl-plan-view,.pl-body,.pl-scroll{height:auto!important;overflow:visible!important;display:block}}
