:root{--green-950:#052e16;--green-900:#14532d;--green-800:#166534;--green-600:#16a34a;--green-300:#86efac;--green-50:#f0fdf4;--gray-900:#111827;--gray-600:#4b5563;--gray-400:#9ca3af;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--bg:#f6f7f6;--red:#b91c1c;color:var(--gray-900);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}h1{margin:0 0 1rem;font-size:1.5rem}h2{margin:0 0 .75rem;font-size:1.1rem}code{background:var(--gray-100);border-radius:4px;padding:0 .25rem}.muted{color:var(--gray-600)}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.btn-primary,.btn-secondary{border:1px solid #0000;border-radius:8px;padding:.55rem 1rem;font-weight:600}.btn-primary{background:var(--green-800);color:#fff}.btn-primary:hover:not(:disabled){background:var(--green-900)}.btn-secondary{color:var(--gray-900);border-color:var(--gray-200);background:#fff}.btn-secondary:hover{background:var(--gray-100)}label{flex-direction:column;gap:.3rem;font-size:.875rem;font-weight:500;display:flex}input{font:inherit;border:1px solid var(--gray-200);background:#fff;border-radius:8px;padding:.5rem .65rem}input:focus{outline:2px solid var(--green-300);border-color:var(--green-600)}input:disabled{background:var(--gray-100);color:var(--gray-600)}.form-error{color:var(--red);margin:0;font-size:.875rem}.form-ok{color:var(--green-800);margin:0;font-size:.875rem}.form{flex-direction:column;gap:.9rem;max-width:480px;display:flex}.row{gap:.5rem;display:flex}.brand{letter-spacing:.04em;align-items:center;gap:.6rem;font-weight:800;display:flex}.brand-mark{background:var(--green-300);width:30px;height:30px;color:var(--green-950);border-radius:7px;place-items:center;font-weight:900;display:grid}.brand-dark{color:var(--green-900)}.login{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:#fff;border-radius:14px;flex-direction:column;gap:1rem;width:100%;max-width:380px;padding:2rem;display:flex;box-shadow:0 10px 30px #0000000f}.login-card h1{margin:.5rem 0 0}.splash{min-height:100vh;color:var(--gray-600);place-items:center;display:grid}.shell{min-height:100vh;display:flex}.sidebar{background:var(--green-950);color:#d1fae5;flex-direction:column;flex-shrink:0;gap:1.5rem;width:230px;padding:1.25rem .75rem;display:flex}.sidebar .brand{color:#fff;padding:0 .5rem}.sidebar nav{flex-direction:column;gap:2px;display:flex}.nav-item{color:#d1fae5;border-radius:8px;justify-content:space-between;align-items:center;padding:.55rem .75rem;font-weight:500;text-decoration:none;display:flex}.nav-item:hover:not(.disabled){background:#ffffff12}.nav-item.active{background:var(--green-800);color:#fff}.nav-item.disabled{color:#d1fae573;cursor:not-allowed}.soon{text-transform:uppercase;letter-spacing:.05em;border:1px solid #d1fae54d;border-radius:999px;padding:1px 6px;font-size:.65rem}.sidebar-footer{margin-top:auto;padding:0 .5rem;font-size:.8rem}.sidebar-user{color:#fff;text-overflow:ellipsis;font-weight:600;overflow:hidden}.sidebar-org{color:#d1fae599}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--gray-200);background:#fff;justify-content:flex-end;align-items:center;height:56px;padding:0 1.25rem;display:flex}.bell{border:1px solid var(--gray-200);width:38px;height:38px;color:var(--gray-600);background:#fff;border-radius:8px;place-items:center;display:grid}.content{padding:1.75rem}.card{border:1px solid var(--gray-200);background:#fff;border-radius:12px;padding:1.25rem 1.5rem}.card p{margin:.4rem 0}.logout{text-align:left;color:#d1fae5;background:0 0;border:1px solid #d1fae540;border-radius:8px;width:100%;margin-top:.75rem;padding:.45rem .6rem;font-size:.8rem}.logout:hover{background:#ffffff12}select,textarea{font:inherit;border:1px solid var(--gray-200);color:inherit;background:#fff;border-radius:8px;padding:.5rem .65rem}textarea{resize:vertical}select:focus,textarea:focus{outline:2px solid var(--green-300);border-color:var(--green-600)}.small{font-size:.8rem}.grow{flex:1;min-width:0}.row.end{justify-content:flex-end}.warn{color:#b45309;margin:0;font-size:.875rem}.btn-danger{background:var(--red);color:#fff;border:none;border-radius:8px;padding:.55rem 1rem;font-weight:600}.btn-danger-outline{color:var(--red);background:#fff;border:1px solid #fecaca;border-radius:8px;padding:.45rem .8rem}.btn-danger-outline:hover{background:#fef2f2}.icon-btn{color:var(--gray-600);background:0 0;border:none;border-radius:6px;flex-shrink:0;place-items:center;width:28px;height:28px;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--gray-100);color:var(--gray-900)}.link-btn{color:var(--green-800);background:0 0;border:none;padding:0;font-size:.8rem}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--red)}.checkbox{flex-direction:row;align-items:center;gap:.5rem;font-weight:400}.tag{background:var(--gray-100);color:var(--gray-600);border-radius:999px;padding:1px 7px;font-size:.7rem}.tag-warn{color:#92400e;background:#fef3c7}.modal-backdrop{z-index:50;background:#052e1659;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;flex-direction:column;gap:.75rem;width:100%;max-width:480px;padding:1.5rem;display:flex;box-shadow:0 20px 50px #0003}.modal .form{max-width:none}.toaster{z-index:60;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.toast{background:var(--gray-900);color:#fff;border-radius:8px;padding:.6rem 1rem;font-size:.875rem;box-shadow:0 6px 20px #0003}.toast-error{background:var(--red)}.page-head{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.page-head h1{margin:0}.empty{text-align:center;padding:2rem}.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.project-card{border:1px solid var(--gray-200);background:#fff;border-radius:12px;flex-direction:column;transition:box-shadow .15s;display:flex}.project-card:hover{box-shadow:0 6px 20px #0000000f}.project-open{text-align:left;color:inherit;background:0 0;border:none;flex-direction:column;gap:.4rem;padding:1rem 1.1rem .75rem;display:flex}.project-card-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.project-card-head h2{margin:0;font-size:1.05rem}.pill{white-space:nowrap;background:var(--gray-100);color:var(--gray-600);border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:600}.pill-active{color:#1d4ed8;background:#dbeafe}.pill-done{color:#166534;background:#dcfce7}.pill-paused{color:#92400e;background:#fef3c7}.pill-on_hold{color:#374151;background:#e5e7eb}.progress{background:var(--gray-100);border-radius:999px;height:6px;margin-top:.3rem;overflow:hidden}.progress-bar{background:var(--green-600);border-radius:999px;height:100%;transition:width .3s}.project-actions{border-top:1px solid var(--gray-100);display:flex}.project-actions button{color:var(--gray-600);background:0 0;border:none;flex:1;padding:.55rem;font-size:.8rem}.project-actions button:hover{background:var(--gray-100);color:var(--gray-900)}.project-actions button.danger:hover{color:var(--red);background:#fef2f2}.project-actions button+button{border-left:1px solid var(--gray-100)}.content{flex:1;position:relative}.canvas-page{flex-direction:column;display:flex;position:absolute;inset:0}.canvas-head{border-bottom:1px solid var(--gray-200);background:#fff;flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.back{color:var(--gray-600);font-size:.875rem;text-decoration:none}.back:hover{color:var(--gray-900)}.canvas-title{flex-direction:column;flex:1;min-width:0;display:flex}.canvas-title h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.1rem;overflow:hidden}.toolbar{flex-wrap:wrap;gap:.4rem;display:flex}.toolbar button{padding:.4rem .75rem;font-size:.85rem}.canvas-body{flex:1;min-height:0;display:flex}.canvas-wrapper{background:#f3f6f4;flex:1;position:relative}.canvas-empty{text-align:center;color:var(--gray-600);pointer-events:none;background:#ffffffd9;border-radius:12px;padding:1rem 1.5rem;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.canvas-empty p{margin:.25rem 0}.step-node{border:1px solid var(--gray-200);border-left:5px solid var(--cat);background:#fff;border-radius:10px;flex-direction:column;gap:.3rem;width:220px;padding:.55rem .7rem .6rem;font-size:.8rem;display:flex;box-shadow:0 1px 3px #0000000f}.step-node.selected{box-shadow:0 0 0 2px var(--green-600), 0 4px 14px #0000001a}.step-cat{color:var(--cat);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:700}.step-title{word-break:break-word;font-size:.92rem;font-weight:600;line-height:1.25}.step-meta{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.status-badge{color:var(--status);background:color-mix(in srgb, var(--status) 12%, white);border-radius:999px;padding:1px 7px;font-size:.68rem;font-weight:600}.due{background:var(--gray-100);color:var(--gray-600);border-radius:4px;padding:1px 6px;font-size:.7rem}.due-soon{color:#92400e;background:#fef3c7;font-weight:600}.due-overdue{color:#b91c1c;background:#fee2e2;font-weight:600}.owner{color:var(--gray-600);text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-size:.7rem;overflow:hidden}.step-node .react-flow__handle{border:2px solid var(--gray-400);opacity:0;background:#fff;width:10px;height:10px;transition:opacity .15s}.step-node:hover .react-flow__handle,.step-node.selected .react-flow__handle,.react-flow__handle.connectingto,.react-flow__handle.connectingfrom{opacity:1}.step-node .react-flow__handle:hover{border-color:var(--green-600);background:var(--green-50)}.react-flow__edge.edge-dependency .react-flow__edge-path{stroke:#64748b;stroke-width:2px}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--green-600);stroke-width:3px}.react-flow__edge:hover .react-flow__edge-path{stroke:var(--green-800)}.react-flow__edge.drop-target .react-flow__edge-path{stroke:var(--green-600);stroke-width:5px;stroke-dasharray:none}.react-flow__arrowhead polyline{stroke:#64748b;fill:#64748b}.sheet{border-left:1px solid var(--gray-200);background:#fff;flex-direction:column;flex-shrink:0;width:400px;max-width:45vw;min-height:0;display:flex}.sheet-head{align-items:center;gap:.5rem;padding:.9rem 1rem .5rem;display:flex}.sheet-head h2{white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:1.05rem;overflow:hidden}.tabs{border-bottom:1px solid var(--gray-200);padding:0 .5rem;display:flex;overflow-x:auto}.tabs button{color:var(--gray-600);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem;font-size:.82rem}.tabs button.active{color:var(--green-800);border-bottom-color:var(--green-600);font-weight:600}.sheet-body{flex:1;padding:1rem;overflow-y:auto}.sheet-body .form{max-width:none}.tab-body{flex-direction:column;gap:.75rem;display:flex}.form.compact{gap:.5rem}.checklist,.resource-list,.comment-list,.history{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.checklist li{align-items:center;gap:.35rem;padding:.15rem 0;display:flex}.inline-input{border-color:#0000;flex:1;min-width:0;padding:.3rem .4rem}.inline-input:hover{border-color:var(--gray-200)}.inline-input.done{color:var(--gray-400);text-decoration:line-through}.resource-list li{border-bottom:1px solid var(--gray-100);flex-wrap:wrap;align-items:center;gap:.25rem .5rem;padding:.45rem 0;display:flex}.resource-list a{color:var(--green-800);word-break:break-all;flex:1;font-weight:500}.resource-list .url{word-break:break-all;flex-basis:100%;order:3}.comment-list{gap:.75rem}.comment-list li{background:var(--gray-100);border-radius:10px;padding:.6rem .75rem}.comment-list li.resolved{opacity:.6}.comment-head{flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.comment-body{white-space:pre-wrap;margin:.3rem 0;font-size:.9rem}.comment-actions{gap:.75rem;display:flex}.history{gap:.6rem;font-size:.85rem}.history li{border-left:2px solid var(--gray-200);padding-left:.6rem}.canvas-wrapper .react-flow__pane.selection,.canvas-wrapper .react-flow__pane.draggable,.canvas-wrapper .react-flow__node.selectable,.canvas-wrapper .react-flow__node.draggable,.canvas-wrapper .react-flow__nodesselection-rect{cursor:default}.canvas-wrapper .react-flow__pane.dragging,.canvas-wrapper .react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__selection{border:1px solid var(--green-600);background:#16a34a14}.shift-banner{z-index:10;border:1px solid var(--gray-200);background:#fff;border-radius:10px;align-items:center;gap:.6rem;padding:.5rem .6rem .5rem 1rem;font-size:.875rem;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000001f}.shift-banner button{padding:.35rem .8rem;font-size:.85rem}.avatar{background:var(--green-900);width:40px;height:40px;color:var(--green-300);border-radius:50%;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:700;display:inline-grid}.small-avatar{width:28px;height:28px;font-size:.7rem}.has-photo{background:var(--gray-100);overflow:hidden}.has-photo img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.avatar-edit{align-items:center;gap:.75rem;display:flex}.avatar-edit .avatar{width:64px;height:64px;font-size:1.2rem}.filters{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:1rem;display:flex}.chip{border:1px solid var(--gray-200);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.82rem;font-weight:500;display:inline-flex}.chip.active{background:var(--green-50);border-color:var(--green-600);color:var(--green-800)}.chip input{display:none}.chip-count{color:var(--gray-400);font-size:.75rem}.search{min-width:240px;margin-left:auto}.actor-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem;display:grid}.actor-card{text-align:left;border:1px solid var(--gray-200);color:inherit;background:#fff;border-radius:12px;gap:.75rem;padding:.9rem;display:flex}.actor-card:hover{box-shadow:0 6px 20px #0000000f}.actor-card-body{flex-direction:column;gap:.25rem;min-width:0;display:flex}.fn-list{flex-wrap:wrap;gap:.25rem;display:flex}.fn{color:var(--cat);background:color-mix(in srgb, var(--cat) 12%, white);border-radius:999px;padding:1px 7px;font-size:.7rem;font-weight:600}.linked{color:var(--green-800)}.fn-picker{border:1px solid var(--gray-200);border-radius:8px;flex-wrap:wrap;gap:.35rem;padding:.5rem .6rem;display:flex}.fn-picker legend{padding:0 .25rem;font-size:.875rem;font-weight:500}.fn-admin{flex-direction:column;gap:.25rem;max-height:50vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.fn-admin li{align-items:center;gap:.4rem;display:flex}.modal{max-height:92vh;overflow-y:auto}.palette{border-right:1px solid var(--gray-200);background:#fff;flex-direction:column;flex-shrink:0;gap:.5rem;width:240px;min-height:0;padding:.75rem;display:flex}.palette-head{justify-content:space-between;align-items:center;display:flex}.palette p{margin:0}.palette ul{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.palette li{border:1px solid var(--gray-100);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:.5rem;padding:.4rem;display:flex}.palette li:hover{border-color:var(--green-600);background:var(--green-50)}.palette li .grow{flex-direction:column;min-width:0;display:flex}.palette-name{font-size:.85rem;font-weight:600}.btn-secondary.pressed{background:var(--green-50);border-color:var(--green-600);color:var(--green-800)}.people-node{background:#f0fdf4;border:1.5px solid #86efac;border-radius:999px;align-items:center;gap:.6rem;width:220px;padding:.45rem .9rem .45rem .45rem;font-size:.8rem;display:flex;box-shadow:0 1px 3px #0000000f}.people-node.selected{box-shadow:0 0 0 2px var(--green-600), 0 4px 14px #0000001a}.people-node.orphan{background:var(--gray-100);border-color:var(--gray-400);border-style:dashed}.people-body{flex-direction:column;gap:.1rem;min-width:0;display:flex}.people-name{font-size:.9rem;font-weight:700}.people-sub{color:var(--gray-600);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.people-meta{align-items:center;gap:.25rem;display:flex}.linked-dot{color:var(--green-600);font-size:.6rem}.people-node .react-flow__handle{border:2px solid var(--gray-400);opacity:0;background:#fff;width:10px;height:10px;transition:opacity .15s}.people-node:hover .react-flow__handle,.people-node.selected .react-flow__handle{opacity:1}.step-deliverable{background:#f8fafc;border-left-style:double;border-left-width:6px}.step-validation{background:#faf5ff}.react-flow__edge.edge-assignment .react-flow__edge-path{stroke:#16a34a;stroke-width:2px;stroke-dasharray:6 4}.react-flow__edge.edge-resource .react-flow__edge-path{stroke:#9ca3af;stroke-width:1.2px}.react-flow__edge.edge-validation .react-flow__edge-path{stroke:#7c3aed;stroke-width:2px}.mission-badge{pointer-events:all;color:var(--gray-900);cursor:pointer;white-space:nowrap;background:#fff;border:1.5px solid #86efac;border-radius:999px;align-items:center;gap:.3rem;padding:2px 8px;font-size:.68rem;font-weight:600;display:inline-flex;position:absolute;box-shadow:0 1px 4px #0000001a}.mission-badge:hover,.mission-badge.selected{border-color:var(--green-600);box-shadow:0 0 0 2px var(--green-300)}.mission-badge .dot{background:var(--status);border-radius:50%;width:7px;height:7px}.sheet-head{flex-wrap:wrap}.sheet-kicker{text-transform:uppercase;letter-spacing:.06em;color:var(--green-800);flex-basis:100%;font-size:.68rem;font-weight:700}.sheet-sub{color:var(--gray-600);margin:0 1rem .5rem;font-size:.85rem}.sheet h3{margin:.75rem 0 .25rem;font-size:.9rem}.mini-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.mini-list li{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.suggest-cat{border-radius:3px;flex-shrink:0;width:10px;height:10px}.small-btn{padding:.2rem .6rem;font-size:.78rem}.contact{background:var(--gray-100);border-radius:8px;padding:.5rem .65rem}.deliverable-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.deliverable-list li{border:1px solid var(--gray-200);border-radius:8px;flex-direction:column;gap:.3rem;padding:.5rem .65rem;display:flex}.deliverable-list li.submitted{background:var(--green-50);border-color:#86efac}.deliverable-list .grow{flex-direction:column;gap:.1rem;display:flex}.deliverable-list .url{color:var(--green-800);word-break:break-all}.deliverable-actions{flex-wrap:wrap;gap:.75rem;display:flex}.validation-state{background:var(--gray-100);border-radius:8px;padding:.6rem .75rem;font-size:.9rem;font-weight:600}.vs-pending{color:#5b21b6;background:#ede9fe}.vs-approved{color:#166534;background:#dcfce7}.vs-rejected{color:#b91c1c;background:#fee2e2}.section-title{color:var(--gray-600);margin:1.5rem 0 .75rem;font-size:.95rem}.template-desc{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.cat-strip{gap:3px;display:flex}.cat-strip span{border-radius:3px;flex:1;height:6px}.modal-wide{max-width:min(1100px,95vw)}.template-preview{border:1px solid var(--gray-200);border-radius:10px;height:60vh;overflow:hidden}.choice-list{flex-direction:column;gap:.4rem;max-height:60vh;display:flex;overflow-y:auto}.choice{text-align:left;border:1px solid var(--gray-200);color:inherit;background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.65rem .85rem;display:flex}.choice:hover{border-color:var(--green-600);background:var(--green-50)}.menu{position:relative}.menu-pop{z-index:20;border:1px solid var(--gray-200);background:#fff;border-radius:10px;flex-direction:column;min-width:230px;padding:.3rem;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 10px 30px #0000001f}.menu-pop button{text-align:left;background:0 0;border:none;border-radius:6px;padding:.5rem .7rem;font-size:.875rem}.menu-pop button:hover{background:var(--gray-100)}.file-input{border:2px dashed var(--gray-200);text-align:center;cursor:pointer;color:var(--gray-600);border-radius:10px;padding:1rem;font-weight:500;display:block}.file-input:hover{border-color:var(--green-600)}.file-input input{display:none}.import-errors{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:.6rem .8rem;font-size:.85rem}.import-errors ul{margin:.35rem 0 0;padding-left:1.1rem}.import-summary{background:var(--gray-100);border-radius:10px;flex-direction:column;gap:.15rem;padding:.6rem .8rem;display:flex}.import-mode{border:none;flex-direction:column;gap:.35rem;margin:0;padding:0;display:flex}.danger-box{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:.6rem .8rem;font-size:.875rem}.danger-box p{margin:0 0 .5rem}.notion-table{border:1px solid var(--gray-200);border-radius:10px;max-height:50vh;overflow:auto}.notion-table table{border-collapse:collapse;width:100%;font-size:.85rem}.notion-table th,.notion-table td{border-bottom:1px solid var(--gray-100);text-align:left;vertical-align:top;padding:.4rem .6rem}.notion-table th{background:var(--gray-100);font-weight:600;position:sticky;top:0}.notion-table tr.off td{color:var(--gray-400)}.notion-table .tag{margin-right:.25rem}.nowrap{white-space:nowrap}.page-head{gap:1rem}.page-head h1{margin-right:auto}.segmented{background:var(--gray-100);border-radius:9px;padding:3px;display:inline-flex}.segmented button{color:var(--gray-600);background:0 0;border:none;border-radius:7px;padding:.35rem .85rem;font-size:.85rem;font-weight:500}.segmented button.active{color:var(--gray-900);background:#fff;box-shadow:0 1px 3px #0000001a}.kanban{grid-template-columns:repeat(5,minmax(220px,1fr));align-items:start;gap:.85rem;display:grid;overflow-x:auto}.kanban-col{border-top:4px solid var(--gray-400);background:#eef1ef;border-radius:12px;min-height:200px;padding:.6rem;transition:background .15s}.kanban-col.over{background:var(--green-50);outline:2px dashed var(--green-600)}.kanban-draft{border-top-color:#9ca3af}.kanban-active{border-top-color:#2563eb}.kanban-paused{border-top-color:#d97706}.kanban-on_hold{border-top-color:#6b7280}.kanban-done{border-top-color:#16a34a}.kanban-col header{justify-content:space-between;align-items:center;padding:.15rem .25rem .6rem;font-size:.9rem;font-weight:700;display:flex}.kanban-cards{flex-direction:column;gap:.5rem;display:flex}.kanban-card{text-align:left;border:1px solid var(--gray-200);color:inherit;cursor:grab;background:#fff;border-radius:10px;flex-direction:column;gap:.35rem;padding:.65rem .75rem;display:flex;box-shadow:0 1px 2px #0000000a}.kanban-card:hover{border-color:var(--green-300);box-shadow:0 4px 14px #00000014}.kanban-card:active{cursor:grabbing}.kanban-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.kanban-meta{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.kanban-empty{text-align:center;padding:1rem 0}.kanban-card .progress,.kanban-card .progress-bar{display:block}.kanban-card .progress{width:100%;margin-top:0}.file-input.over{border-color:var(--green-600);background:var(--green-50);color:var(--green-800)}.canvas-empty button{pointer-events:all}.notion-table select{max-width:190px;padding:.2rem .35rem;font-size:.8rem}.apply-all{align-items:center;gap:.5rem;font-weight:500}.timeline-page{flex-direction:column;display:flex;position:absolute;inset:0}.tl-toolbar{border-bottom:1px solid var(--gray-200);background:#fff;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.6rem 1rem;display:flex}.tl-toolbar h1{margin:0;font-size:1.1rem}.tl-toolbar .btn-secondary{padding:.35rem .7rem}.tl-range{min-width:220px}.tl-filters{flex-wrap:wrap;gap:.4rem;margin-left:auto;display:flex}.tl-filters select{max-width:200px;padding:.35rem .5rem;font-size:.85rem}.tl-body{flex:1;min-height:0;display:flex}.tl-scroll{flex:1;min-width:0;overflow:auto}.tl-grid{min-width:900px}.tl-month{min-width:calc(260px + var(--days) * 34px)}.tl-row{border-bottom:1px solid var(--gray-100);grid-template-columns:260px 1fr;min-height:40px;display:grid}.tl-head{z-index:3;border-bottom:1px solid var(--gray-200);background:#fff;position:sticky;top:0}.tl-label{z-index:2;border-right:1px solid var(--gray-200);background:#fff;flex-direction:column;justify-content:center;min-width:0;padding:.35rem .75rem;display:flex;position:sticky;left:0}.tl-item-label{border:none;border-right:1px solid var(--gray-200);border-left:4px solid var(--cat);text-align:left;cursor:pointer;font:inherit;color:inherit}.tl-item-label:hover{background:var(--gray-100)}.tl-title{white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.tl-project{background:#f3f6f4;min-height:36px}.tl-project .tl-label{background:#f3f6f4}.tl-project .tl-label a{color:var(--green-900);font-weight:700;text-decoration:none}.tl-project .tl-label a:hover{text-decoration:underline}.tl-track{grid-template-columns:repeat(var(--days), 1fr);display:grid;position:relative}.tl-days .tl-day{color:var(--gray-600);text-align:center;border-left:1px solid var(--gray-100);text-transform:capitalize;flex-direction:column;align-items:center;padding:.45rem 0;font-size:.72rem;display:flex}.tl-day .dow{color:var(--gray-400);font-size:.62rem}.tl-day.weekend,.tl-cell.weekend{background:#fafafa}.tl-day.today{color:var(--green-800);background:var(--green-50);font-weight:700}.tl-cell{border-left:1px solid var(--gray-100)}.tl-cell.today{background:#16a34a12;box-shadow:inset 2px 0 #16a34a80}.tl-cell.drop{background:#16a34a40}.tl-bar{background:color-mix(in srgb, var(--status) 18%, white);border:1.5px solid var(--status);border-left:4px solid var(--cat);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;box-sizing:border-box;border-radius:6px;align-items:center;gap:.4rem;padding:0 .5rem;font-size:.75rem;display:flex;position:absolute;top:6px;bottom:6px;overflow:hidden}.tl-bar:before,.tl-bar:after{content:"";cursor:ew-resize;width:8px;position:absolute;top:0;bottom:0}.tl-bar:before{left:0}.tl-bar:after{right:0}.tl-bar:hover{box-shadow:0 2px 8px #0000001f}.tl-bar.dragging{cursor:grabbing;z-index:2;opacity:.95;box-shadow:0 6px 16px #0000002e}.tl-bar.tl-mission{border-style:dashed dashed dashed solid}.tl-bar.late{background:#fee2e2;border-color:#dc2626}.tl-bar.soon{box-shadow:inset 0 -3px #f59e0b}.tl-bar.cl{border-top-left-radius:0;border-bottom-left-radius:0}.tl-bar.cr{border-top-right-radius:0;border-bottom-right-radius:0}.tl-bar-label{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.tl-bar-dates{white-space:nowrap;color:var(--gray-600);font-size:.7rem}.tl-offscreen{color:var(--gray-400);padding:0 .4rem;font-size:.7rem;position:absolute;top:50%;transform:translateY(-50%)}.tl-offscreen.left{left:0}.tl-offscreen.right{right:0}.tl-drop-row{min-height:28px}.tl-drop-row .tl-label{font-style:italic}.tl-msg{padding:1rem}.tl-unplanned{border-left:1px solid var(--gray-200);background:#fff;flex-shrink:0;width:260px;padding:.75rem;overflow-y:auto}.tl-unplanned h2{align-items:center;gap:.4rem;margin:0 0 .25rem;font-size:.95rem;display:flex}.tl-unplanned h3{color:var(--gray-600);margin:.8rem 0 .3rem;font-size:.78rem}.tl-unplanned ul{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.tl-unplanned li{border:1px solid var(--gray-200);border-left:4px solid var(--cat);cursor:grab;background:#fff;border-radius:8px;flex-direction:column;padding:.35rem .5rem;display:flex}.tl-unplanned li:hover{border-color:var(--green-600)}.tl-hidden{padding-top:.5rem}.tl-long{min-width:860px}.tl-months .tl-month-head{border-left:1px solid var(--gray-200);color:var(--gray-600);padding:.35rem .4rem 1.2rem;font-size:.78rem;font-weight:600;position:relative}.tl-quarter .tl-months .tl-month-head{padding-bottom:1.35rem}.tl-week-tick{color:var(--gray-400);font-size:.62rem;font-weight:400;position:absolute;bottom:3px;transform:translate(-50%)}.tl-month-cell{border-left:1px solid var(--gray-200)}.tl-month-cell:nth-child(2n){background:#00000003}.tl-today-line{pointer-events:none;z-index:1;background:#16a34a8c;width:2px;position:absolute;top:0;bottom:0}.tl-drop-marker{pointer-events:none;background:#16a34a59;border-radius:3px;min-width:6px;position:absolute;top:2px;bottom:2px}.tl-long .tl-bar{padding:0 .35rem}.bell{text-decoration:none;position:relative}.bell.active{border-color:var(--green-600);color:var(--green-800)}.bell-badge{background:var(--red);color:#fff;border:2px solid #fff;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.68rem;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.notif-page{max-width:860px}.notif-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.notif{border:1px solid var(--gray-200);background:#fff;border-radius:12px;align-items:flex-start;gap:.5rem;padding:.3rem .75rem .3rem .3rem;display:flex}.notif.unread{border-left:4px solid var(--green-600);background:#fbfefc}.notif.read .notif-text strong{font-weight:500}.notif-main{text-align:left;color:inherit;background:0 0;border:none;border-radius:8px;flex:1;gap:.6rem;min-width:0;padding:.45rem;display:flex}.notif-main:hover{background:var(--gray-100)}.notif-icon{background:var(--gray-100);border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:.85rem;display:grid}.ev-blocked .notif-icon,.ev-validation_rejected .notif-icon{color:#b91c1c;background:#fee2e2}.ev-deadline_soon .notif-icon{background:#fef3c7}.ev-validation_approved .notif-icon{color:#166534;background:#dcfce7}.ev-validation_requested .notif-icon{color:#5b21b6;background:#ede9fe}.notif-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.notif-actions{white-space:nowrap;flex-direction:column;align-items:flex-end;gap:.3rem;padding-top:.55rem;display:flex}.pref-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}section>.card+.card,section>form+.card{margin-top:1rem}.file-drop{border:2px dashed var(--gray-200);text-align:center;cursor:pointer;color:var(--gray-600);border-radius:10px;flex-direction:column;align-items:center;gap:.15rem;padding:.8rem;font-size:.85rem;font-weight:500;display:flex}.file-drop:hover,.file-drop.over{border-color:var(--green-600);background:var(--green-50);color:var(--green-800)}.file-drop.compact{border-width:1.5px;padding:.35rem;font-size:.78rem}.attachment{flex:1;align-items:center;gap:.5rem;min-width:0;display:inline-flex}.attachment-open{color:var(--green-800);text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;min-width:0;padding:0;font-weight:500;display:inline-flex}.attachment-open:hover .attachment-name{text-decoration:underline}.attachment-thumb{object-fit:cover;border:1px solid var(--gray-200);border-radius:6px;flex-shrink:0;width:44px;height:44px}.attachment-icon{background:var(--gray-100);border-radius:6px;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:1.2rem;display:grid}.attachment-name{word-break:break-all;font-size:.85rem}.missing-project{max-width:560px;margin:2rem auto}.ghost-node{opacity:.8;background:repeating-linear-gradient(135deg,#f3f5f4,#f3f5f4 8px,#eceeed 8px 16px);border:1.5px dashed #c4c9c6;border-radius:10px;width:220px;height:64px}.ghost-node .react-flow__handle{opacity:0;pointer-events:none}.react-flow__node-ghost{cursor:default!important}.react-flow__edge.edge-ghost .react-flow__edge-path{stroke:#c4c9c6;stroke-width:1.5px;stroke-dasharray:5 5}.access-badge{color:#92400e;white-space:nowrap;background:#fef3c7;border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:600}.access-badge.contrib{color:#1d4ed8;background:#dbeafe}fieldset.plain{border:none;min-width:0;margin:0;padding:0;display:contents}.readonly-note{background:var(--gray-100);color:var(--gray-600);border-radius:8px;padding:.45rem .65rem;font-size:.8rem}select:disabled,textarea:disabled{background:var(--gray-100);color:var(--gray-600);cursor:not-allowed}.step-meeting{background:#f0fdfa;border-left-color:#0f766e}.due-none{font-style:italic}.assignee-chips{margin-left:auto;display:inline-flex}.assignee-chip{background:var(--green-900);width:22px;height:22px;color:var(--green-300);border:2px solid #fff;border-radius:50%;place-items:center;margin-left:-6px;font-size:.6rem;font-weight:700;display:inline-grid}.assignee-chip:first-child{margin-left:0}.assignee-chip.more{background:var(--gray-200);color:var(--gray-600)}.followups{background:var(--green-50);border:1px solid #bbf7d0;border-radius:10px;flex-direction:column;gap:.3rem;padding:.65rem .75rem;display:flex}.switch-list{flex-direction:column;gap:.25rem;margin:.2rem 0 .3rem;padding:0;list-style:none;display:flex}.switch-row{cursor:pointer;flex-direction:row;align-items:center;gap:.55rem;font-weight:400}.switch-row input{opacity:0;width:0;height:0;position:absolute}.switch{background:var(--gray-200);border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.switch-row input:checked+.switch{background:var(--green-600)}.switch-row input:checked+.switch:after{transform:translate(14px)}.switch-row input:focus-visible+.switch{outline:2px solid var(--green-300)}.participants{border:1px solid var(--gray-200);border-radius:10px;flex-direction:column;gap:.35rem;padding:.6rem .75rem;display:flex}.switch-label{flex-direction:column;line-height:1.25;display:flex}.switch-meta{color:var(--gray-600);flex-wrap:wrap;gap:.5rem;font-size:.75rem;display:flex}.switch-list li{border-radius:8px;padding:.15rem .3rem}.switch-list li:hover{background:#dcfce7}.react-flow__node.is-pointed{outline:3px solid var(--green-600);outline-offset:4px;border-radius:10px}.edge-delete{pointer-events:all;width:22px;height:22px;color:var(--red);cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:50%;place-items:center;padding:0;font-size:11px;line-height:1;display:grid;position:absolute;box-shadow:0 1px 3px #00000026}.edge-delete:hover{background:#fee2e2}.form label.file-btn{cursor:pointer;flex-direction:row;align-items:center;display:inline-flex}.link-btn.strong{font-weight:700;font-size:inherit;color:var(--gray-900)}.react-flow__node-frame{pointer-events:none!important}.frame-node{background:#94a3b812;border:2px dashed #94a3b8;border-radius:14px;width:100%;height:100%;position:relative}.frame-node.selected{border-color:var(--green-600);background:#16a34a0d}.frame-node .react-flow__handle,.frame-head,.frame-node .react-flow__resize-control{pointer-events:all}.frame-head{border:1px solid var(--gray-200);max-width:calc(100% - 16px);color:var(--gray-900);cursor:grab;white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:8px;margin:8px;padding:.25rem .6rem;font-size:.85rem;font-weight:700;position:absolute;top:0;left:0;overflow:hidden}.frame-head:active{cursor:grabbing}.frame-resize-handle{border-radius:3px;background:var(--green-600)!important;border:2px solid #fff!important;width:10px!important;height:10px!important}.frame-resize-line{border-color:#0000!important}.junction-node{background:#64748b;border:3px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 1px #64748b}.junction-node.selected{background:var(--green-600);box-shadow:0 0 0 2px var(--green-600)}.junction-node .react-flow__handle{opacity:0;width:6px;min-width:0;height:6px;min-height:0}.junction-node:hover .react-flow__handle{opacity:1}.milestone-node{background:var(--green-800);color:#fff;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;display:flex;box-shadow:0 2px 6px #00000026}.milestone-node.end{background:#1f2937}.milestone-node.selected{box-shadow:0 0 0 3px var(--green-600)}.milestone-node strong{text-transform:uppercase;letter-spacing:.04em}.milestone-node .milestone-date{opacity:.85;font-size:13px}.milestone-node .react-flow__handle{opacity:0}.milestone-node:hover .react-flow__handle{opacity:1}.assignee-chips{position:relative}.assignee-pop{z-index:20;border:1px solid var(--gray-200);cursor:default;background:#fff;border-radius:10px;flex-direction:column;gap:.35rem;width:270px;padding:.55rem;display:none;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%);box-shadow:0 8px 24px #00000024}.assignee-pop:before{content:"";width:12px;position:absolute;top:0;bottom:0;right:100%}.assignee-chips:hover .assignee-pop{display:flex}.react-flow__node:has(.assignee-chips:hover){z-index:1000!important}.assignee-pop ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.assignee-pop button{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.3rem;display:flex}.assignee-pop button:hover{background:var(--green-50)}.assignee-pop .grow{flex-direction:column;min-width:0;display:flex}.pop-name{font-size:.8rem;font-weight:600}.pop-sub{color:var(--gray-600);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.pop-status{white-space:nowrap;color:var(--gray-600);font-size:.65rem}.pop-status:before{content:"●";color:var(--status);margin-right:3px}.btn-attention{color:#92400e;background:#fffbeb;border-color:#f59e0b}.btn-attention:hover{background:#fef3c7}.print-title{display:none}body.printing .canvas-page{z-index:9999;background:#fff;width:1080px;height:720px;position:fixed;inset:0 auto auto 0}@page{size:A4 landscape;margin:8mm}@media print{body.printing,body.printing .shell,body.printing .main,body.printing #root{background:#fff!important}body.printing .sidebar,body.printing .topbar,body.printing .canvas-head,body.printing .sheet,body.printing .react-flow__minimap,body.printing .react-flow__controls,body.printing .react-flow__background,body.printing .react-flow__panel,body.printing .palette,body.printing .toaster,body.printing .assignee-pop,body.printing .react-flow__handle,body.printing .react-flow__resize-control{display:none!important}body.printing .print-title{color:#374151;justify-content:space-between;align-items:baseline;padding:0 4px 6px;font-size:12px;display:flex}body.printing .print-title strong{color:#111827;font-size:15px}body.printing .canvas-wrapper{background:#fff}body.printing *{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.trigger-node{background:#fff7ed;border:1.5px solid #fb923c;border-radius:28px 10px 10px 28px;align-items:center;gap:.6rem;width:210px;padding:.55rem .75rem;font-size:.8rem;display:flex;box-shadow:0 1px 3px #0000000f}.trigger-node.auto{background:#fef3c7;border-color:#f59e0b}.trigger-node.selected{box-shadow:0 0 0 2px #f59e0b,0 4px 14px #0000001a}.trigger-icon{color:#fff;background:#f59e0b;border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:1rem;display:grid}.trigger-title{font-weight:700}.trigger-sub{color:var(--gray-600);font-size:.7rem}.trigger-node .react-flow__handle{opacity:0}.trigger-node:hover .react-flow__handle,.trigger-node.selected .react-flow__handle{opacity:1}.digest-list{flex-direction:column;gap:.3rem;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.digest-list li{border-bottom:1px solid var(--gray-100);justify-content:space-between;gap:.5rem;padding:.25rem 0;display:flex}.digest-list .err{color:var(--red)}.fn-cats{flex-wrap:wrap;flex-basis:100%;gap:3px;display:flex}.chip.mini{padding:1px 7px;font-size:.65rem}.fn-admin li{border-bottom:1px solid var(--gray-100);flex-wrap:wrap;padding-bottom:.3rem}.plan-preview{border:1px solid var(--gray-200);border-radius:8px;max-height:50vh;padding:4px 12px;overflow:auto}.plan-preview h3{color:var(--green-800);margin:12px 0 4px;font-size:.85rem}.plan-preview ul{margin:0;padding:0;list-style:none}.plan-preview li{border-bottom:1px solid var(--gray-100);align-items:center;gap:8px;padding:3px 0;font-size:.875rem;display:flex}.plan-cat{border-radius:50%;flex:none;width:8px;height:8px}.plan-notes{background:#fffbeb;border-left:3px solid #f59e0b;border-radius:4px;padding:8px 12px}.plan-notes ul{margin:4px 0 0;padding-left:18px}#poster-print{display:none}@media print{body.poster-printing>:not(#poster-print){display:none!important}body.poster-printing{background:#fff!important}body.poster-printing #poster-print{display:block}#poster-print *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.poster-page{break-after:page;page-break-after:always;overflow:hidden}.poster-page:last-child{break-after:auto;page-break-after:auto}.print-list{border-collapse:collapse;color:#111827;width:100%;font:9pt system-ui,sans-serif}.print-list th{text-align:left;color:#4b5563;border-bottom:.4mm solid #374151;padding:1.5mm 2mm;font-size:8pt}.print-list td{vertical-align:top;border-bottom:.2mm solid #d1d5db;padding:1.5mm 2mm}.print-list tr{break-inside:avoid;page-break-inside:avoid}.print-list .num{color:#6b7280;width:8mm}.print-list .title strong{display:block}.print-list .title span{color:#6b7280;font-size:7.5pt}.print-list .date{white-space:nowrap}.print-list .late{color:#b91c1c;font-weight:600}.print-list .check{text-align:center;width:10mm;font-size:13pt}.print-list tr.done .title strong{color:#6b7280;text-decoration:line-through}.print-list-group td{background:#f3f4f6;border-bottom:.3mm solid #9ca3af;padding-top:2.5mm;font-weight:700}.poster-head{color:#374151;justify-content:space-between;align-items:baseline;height:7mm;font-family:system-ui,sans-serif;font-size:9pt;display:flex}.poster-head strong{color:#111827}.poster-clip{contain:strict;background:#fff;outline:.3mm solid #d1d5db;position:relative;overflow:hidden}.poster-wrap{transform-origin:0 0;position:absolute}.poster-cell{box-sizing:border-box;color:#1118278c;border:.4mm dashed #9ca3af;place-items:center;font:700 16pt system-ui,sans-serif;display:grid;position:absolute}.poster-flow .react-flow__handle,.poster-flow .react-flow__resize-control,.poster-flow .edge-delete,.poster-flow .assignee-pop,.poster-flow .react-flow__nodesselection{display:none!important}}.ptl{color:#111827;background:#fff;font-family:system-ui,sans-serif;position:relative}.ptl>div{position:absolute}.ptl-weekend{background:#f3f4f6;top:0}.ptl-week{border-left:1px solid #d1d5db;width:0;top:0}.ptl-day{text-align:center;color:#6b7280;height:20px;font-size:10px;top:24px}.ptl-month{text-transform:capitalize;border-left:2px solid #166534;padding-left:4px;font-size:12px;font-weight:700;top:4px}.ptl-today{border-left:2px solid #dc2626;width:0;top:0}.ptl-group{color:#166534;box-sizing:border-box;background:#16653412;border-top:1px solid #bbf7d0;height:30px;padding-left:6px;font-size:13px;font-weight:700;line-height:30px}.ptl-row{box-sizing:border-box;border-bottom:1px solid #f3f4f6;height:30px}.ptl-label{position:absolute;top:3px;left:10px;overflow:hidden}.ptl-title{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.ptl-sub{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.ptl-bar{opacity:.85;border-radius:4px;height:20px}.ptl-bar.done{opacity:.35}.ptl-bar.late{outline:2px solid #dc2626}.ptl-bar-text,.ptl-unplanned{white-space:nowrap;color:#374151;font-size:11px}.ptl-unplanned{color:#9ca3af;font-style:italic}.mf-main-badge{letter-spacing:.04em;color:#fff;background:var(--green-800);vertical-align:middle;border-radius:4px;padding:.1rem .35rem;font-size:.65rem;font-weight:700;display:inline-block}.mf-conflict-count{color:var(--red)}.mf-overlap-count{color:#b45309}.mf-attach{padding:.35rem .5rem;font-size:.85rem}.mf-wrapper{background:#fff}.mf-wrapper .react-flow__node-calendar{pointer-events:none}.mf-calendar{color:var(--gray-600);font-size:12px;position:relative}.mf-calendar>div>*,.mf-calendar>*{position:absolute}.mf-weekend{background:#f4f5f4;top:0}.mf-week{border-left:1px solid var(--gray-200);width:0;top:22px}.mf-day{text-align:center;font-size:11px;top:26px}.mf-month{color:var(--gray-900);text-transform:capitalize;white-space:nowrap;border-left:2px solid var(--green-600);padding-left:4px;font-weight:600;top:2px}.mf-today{border-left:2px solid #dc2626;width:0;top:0}.mf-today span{color:#dc2626;white-space:nowrap;font-size:10px;position:absolute;top:40px;left:3px}.mf-lane{border-top:2px solid var(--gray-200);background:#f0fdf440;left:0}.mf-lane.odd{background:#f3f4f673}.mf-lane.main{border-top-color:var(--green-600);background:#dcfce773}.mf-lane-label{pointer-events:auto;z-index:1;flex-direction:column;gap:2px;width:260px;display:flex;left:10px}.mf-lane-label strong{color:var(--gray-900);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.mf-lane-actions{gap:.75rem;display:flex}.mf-lane-actions .link-btn{padding:0;font-size:12px}.mf-unplanned{color:#b45309;font-size:11px}.mf-group{border-top:1px dashed var(--gray-200);height:24px;left:0}.mf-group span{color:var(--gray-600);text-overflow:ellipsis;white-space:nowrap;max-width:250px;font-size:12px;font-weight:600;position:absolute;top:4px;left:24px;overflow:hidden}.mf-bar{background:var(--bar);color:#fff;border-radius:6px;align-items:center;min-width:6px;height:28px;font-size:12px;display:flex;position:relative;box-shadow:0 1px 2px #00000026}.mf-bar.done{opacity:.45}.mf-bar.late{outline-offset:1px;outline:2px solid #dc2626}.mf-bar.conflict{box-shadow:0 0 0 2px #dc2626,0 1px 2px #00000026}.mf-bar.overlap{box-shadow:0 0 0 2px #f59e0b,0 1px 2px #00000026}.mf-bar.selected{outline:2px solid var(--gray-900);outline-offset:2px}.mf-bar-text{white-space:nowrap;font-weight:500;position:absolute;left:6px}.mf-bar-text.outside{color:var(--gray-900);left:calc(100% + 5px)}.mf-bar.done .mf-bar-text.outside{color:var(--gray-600)}.mf-handle{opacity:0;pointer-events:none}.mf-wrapper .react-flow__edge.mf-link path{stroke:#94a3b8;stroke-width:1.5px;opacity:.6}.mf-wrapper .react-flow__edge.mf-link.conflict path{stroke:#dc2626;stroke-width:2.5px;opacity:1}.mf-wrapper .react-flow__edge.mf-link.overlap path{stroke:#f59e0b;stroke-width:1.5px;stroke-dasharray:4 4;opacity:.8}.mf-legend{border:1px solid var(--gray-200);z-index:5;background:#ffffffeb;border-radius:8px;align-items:center;gap:1rem;padding:.4rem .7rem;font-size:12px;display:flex;position:absolute;bottom:12px;right:12px}.mf-legend-bar{vertical-align:middle;background:#64748b;border-radius:3px;outline:2px solid #dc2626;width:18px;height:10px;display:inline-block}.mf-legend-line{vertical-align:middle;border-top:3px solid #dc2626;width:22px;display:inline-block}a.mf-open{align-items:center;padding:.4rem .75rem;font-size:.85rem;text-decoration:none;display:inline-flex}.mf-toggle{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;min-width:0;padding:0;display:flex}.mf-toggle:hover strong{text-decoration:underline}.mf-caret{color:var(--gray-600);flex-shrink:0;width:12px;font-size:12px}.mf-group-toggle{color:var(--gray-600);pointer-events:auto;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;max-width:250px;padding:0;font-size:12px;font-weight:600;position:absolute;top:3px;left:22px;overflow:hidden}.mf-group-toggle:hover{color:var(--gray-900)}.mf-summary{height:28px;color:var(--gray-900);cursor:pointer;background:#e2e8f0;border:2px solid #64748b;border-radius:6px;align-items:center;min-width:8px;font-size:12px;display:flex;position:relative;overflow:visible}.mf-summary.project{border-color:var(--green-800);background:#dcfce7}.mf-summary.late{outline-offset:1px;outline:2px solid #dc2626}.mf-summary.conflict{box-shadow:0 0 0 3px #dc2626}.mf-summary.overlap{box-shadow:0 0 0 3px #f59e0b}.mf-summary-progress{background:#16653440;border-radius:4px 0 0 4px;position:absolute;top:0;bottom:0;left:0}.mf-summary .mf-bar-text{font-weight:600}.mf-summary .mf-bar-text.outside{left:calc(100% + 6px)}.topbar{gap:.75rem}.timer-bar{border:1px solid var(--green-300);background:var(--green-50);border-radius:10px;align-items:center;gap:.6rem;min-width:0;max-width:560px;margin-right:auto;padding:.3rem .4rem .3rem .75rem;display:flex}.timer-dot{background:var(--green-600);border-radius:50%;flex:none;width:9px;height:9px;animation:1.6s ease-in-out infinite timer-pulse}@keyframes timer-pulse{50%{opacity:.3}}.timer-what{min-width:0;color:inherit;flex-direction:column;line-height:1.15;text-decoration:none;display:flex}.timer-what strong,.timer-what span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.timer-what strong{font-size:.85rem}.timer-clock{font-variant-numeric:tabular-nums;color:var(--green-900);font-weight:700}.timer-stop{background:var(--green-800);color:#fff;border:none;border-radius:7px;padding:.3rem .7rem;font-size:.8rem;font-weight:600}.timer-stop-at{flex-wrap:wrap;align-items:center;margin-top:.5rem}.timer-stop-at input{width:auto}.time-box{background:var(--gray-100);border-radius:9px;flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 1rem .6rem;padding:.5rem .6rem;font-size:.8rem;display:flex}.time-btn{border:1px solid var(--green-800);color:var(--green-800);background:#fff;border-radius:7px;padding:.3rem .65rem;font-size:.8rem;font-weight:600}.time-btn.running{background:var(--green-800);color:#fff}.time-spent{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.time-spent.over strong{color:var(--red)}.time-planned{color:var(--gray-600);flex-direction:row;align-items:center;gap:.3rem;margin:0;font-size:.8rem;display:inline-flex}.time-planned input{width:4.2rem;padding:.15rem .35rem;font-size:.8rem}.ts-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.9rem;display:flex}.ts-toolbar .row{flex-wrap:wrap;align-items:center}.ts-week{text-align:center;min-width:15rem}.ts-summary{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:.9rem;padding:.75rem 1rem;display:flex}.ts-chip{background:var(--gray-100);border-radius:999px;padding:.15rem .6rem;font-size:.8rem}.ts-warn{color:#b45309;font-size:.8rem}.ts-days{flex-direction:column;gap:.5rem;display:flex}.ts-day{border:1px solid var(--gray-200);background:#fff;border-radius:10px;padding:.45rem .85rem}.ts-day.empty{background:0 0}.ts-day.today{border-color:var(--green-600)}.ts-day-head{color:var(--gray-600);justify-content:space-between;font-size:.85rem;display:flex}.ts-day-head span:first-letter{text-transform:uppercase}.ts-day:not(.empty) .ts-day-head{margin-bottom:.3rem}.ts-entry{border-top:1px solid var(--gray-100);align-items:baseline;gap:.75rem;padding:.35rem 0;font-size:.85rem;display:flex}.ts-time{color:var(--gray-600);font-variant-numeric:tabular-nums;min-width:7.5rem}.ts-dur{font-variant-numeric:tabular-nums;min-width:3.5rem;font-weight:700}.ts-what{flex:1;min-width:0}.ts-what a{color:inherit;text-decoration:none}.ts-what a:hover{text-decoration:underline}.ts-who{background:var(--green-50);color:var(--green-900);border-radius:999px;margin-left:.5rem;padding:0 .5rem;font-size:.75rem}.ts-note{display:block}.ts-auto{color:#92400e;white-space:nowrap;background:#fef3c7;border-radius:999px;padding:0 .5rem;font-size:.72rem}.ts-actions{gap:.6rem;display:flex}.ts-table{border-collapse:collapse;border:1px solid var(--gray-200);background:#fff;border-radius:10px;width:100%;font-size:.85rem;overflow:hidden}.ts-table th{text-align:left;color:var(--gray-600);background:var(--gray-100);padding:.5rem .75rem;font-weight:600}.ts-table td{border-top:1px solid var(--gray-100);font-variant-numeric:tabular-nums;padding:.45rem .75rem}.ts-table th:not(:first-child),.ts-table td:not(:first-child){text-align:right;white-space:nowrap}.ts-step td:first-child{padding-left:2rem}.ts-step a{color:inherit}.ts-over{color:var(--red);font-weight:600}.ts-under{color:var(--green-800)}.ts-h2{margin-top:1.5rem}.danger-text{color:var(--red)}@media (width<=700px){.ts-entry{flex-wrap:wrap}.timer-what span{display:none}}.ai-reading{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;display:flex}.spinner{border:3px solid #bbf7d0;border-top-color:var(--green-600);border-radius:50%;flex:none;width:26px;height:26px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.project-card-node{border:2px solid var(--green-600);background:#fff;border-radius:10px;width:260px;padding:10px 12px;font-size:13px;box-shadow:0 2px 8px #00000014}.project-card-node.selected{box-shadow:0 0 0 3px var(--green-600)}.project-card-node.detached{opacity:.75;border-style:dashed;border-color:#9ca3af}.project-card-node strong{margin:2px 0;font-size:14px;display:block}.project-card-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--green-800);font-size:10px;font-weight:700}.project-card-open{color:var(--green-800);margin-top:6px;font-weight:600;display:inline-block}.project-card-node .react-flow__handle{opacity:0}.project-card-node:hover .react-flow__handle{opacity:1}.issue-count{color:var(--red);font-weight:600}.issue-count.active{text-decoration:underline}.react-flow__node.issue-overlap>*{box-shadow:0 0 0 3px #f59e0b}.react-flow__node.issue-conflict>*{box-shadow:0 0 0 3px #dc2626}.react-flow__node.issue-focus>*{box-shadow:0 0 0 4px #dc2626,0 0 0 9px #dc262640}.react-flow__node.issue-overlap.issue-focus>*{box-shadow:0 0 0 4px #f59e0b,0 0 0 9px #f59e0b4d}.react-flow__edge.issue-overlap .react-flow__edge-path{stroke:#f59e0b;stroke-width:3px}.react-flow__edge.issue-conflict .react-flow__edge-path{stroke:#dc2626;stroke-width:3px}.issue-banner{z-index:10;border:1px solid var(--gray-200);background:#fff;border-left:5px solid #dc2626;border-radius:10px;flex-wrap:wrap;align-items:center;gap:.8rem;width:min(920px,100% - 32px);padding:.6rem .8rem;font-size:.875rem;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000001f}.issue-banner.overlap{border-left-color:#f59e0b}.issue-banner.accepted{border-left-color:var(--green-600)}.issue-accepted-count{color:var(--green-800)}.react-flow__node.issue-accepted>*{box-shadow:0 0 0 3px var(--green-600)}.react-flow__node.issue-accepted.issue-focus>*{box-shadow:0 0 0 4px var(--green-600), 0 0 0 9px #16a34a40}.react-flow__edge.issue-accepted .react-flow__edge-path{stroke:var(--green-600);stroke-width:3px}.issue-text{flex-direction:column;flex:320px;gap:2px;display:flex}.issue-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.issue-actions button{padding:.3rem .6rem;font-size:.8rem}.frame-fold{color:var(--gray-600);cursor:pointer;background:0 0;border:0;padding:0 .3rem 0 0;font-size:.85rem}.frame-fold:hover{color:var(--green-800)}.frame-node.folded{background:#f8fafc;border-style:solid;border-color:#64748b;box-shadow:0 2px 8px #00000014}.frame-node.folded.selected{border-color:var(--green-600)}.frame-node.folded .frame-head{white-space:normal;background:0 0;border:0;align-items:flex-start;gap:.2rem;max-width:none;margin:0;padding:.6rem .8rem;display:flex;inset:0}.frame-folded-body{flex-direction:column;flex:1;gap:2px;min-width:0;font-weight:400;display:flex}.frame-folded-body strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.react-flow__edge.folded-link .react-flow__edge-path{stroke-dasharray:6 3}.node-search{position:relative}.node-search input{width:220px;padding:.35rem .6rem;font-size:.85rem}.node-search-results{z-index:30;border:1px solid var(--gray-200);background:#fff;border-radius:8px;width:360px;max-height:60vh;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;overflow:auto;box-shadow:0 8px 24px #0000001f}.node-search-results li.muted{padding:.5rem}.node-search-results button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.5rem;width:100%;padding:.4rem .5rem;font-size:.85rem;display:flex}.node-search-results button.active{background:var(--gray-100,#f3f4f6)}.node-search-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.status-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.step-node{position:relative}.step-node .step-title{padding-right:1.4rem}.done-check{border:1.5px solid var(--gray-300,#d1d5db);color:#0000;cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:.8rem;font-weight:700;line-height:1;display:flex;position:absolute;top:8px;right:8px}.done-check:hover{border-color:var(--green-600);color:var(--green-600)}.done-check.done{background:var(--green-600);border-color:var(--green-600);color:#fff}.done-check.readonly{cursor:default}.step-node:has(.done-check.done) .step-title{color:var(--gray-600,#4b5563);text-decoration:line-through}.form label.indent{margin-left:1.6rem}.company-badge{vertical-align:middle;max-width:14rem;color:var(--gray-900);background:color-mix(in srgb, var(--company) 14%, white);border:1px solid color-mix(in srgb, var(--company) 45%, white);border-radius:999px;align-items:center;gap:.3rem;padding:.1rem .45rem .1rem .2rem;font-size:.72rem;font-weight:600;line-height:1.4;display:inline-flex}.company-badge img{object-fit:contain;background:#fff;border-radius:4px;width:18px;height:18px}.company-badge .company-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.company-badge.compact{gap:0;padding:.1rem}.company-dot{background:var(--company);border-radius:50%;width:10px;height:10px;display:inline-block}.company-dot.big{border-radius:6px;width:22px;height:22px}.company-list li{flex-wrap:wrap}.company-list input[type=color]{border-radius:6px;width:2.4rem;height:2rem;padding:.1rem}.company-logo-edit{justify-content:center;width:30px;display:inline-flex}.company-logo-edit .company-badge img{width:26px;height:26px}.step-cat .company-badge{vertical-align:-1px;margin-left:.3rem}.frame-node.has-company{border-color:var(--company);background:color-mix(in srgb, var(--company) 6%, transparent)}.frame-node.has-company .frame-head{border-left:4px solid var(--company)}.mf-lane.has-company{box-shadow:inset 4px 0 0 var(--company)}.menu-field{border-bottom:1px solid var(--gray-200);flex-direction:column;gap:.25rem;margin-bottom:.25rem;padding:.4rem .7rem .6rem;font-size:.8rem;font-weight:600;display:flex}.menu-field .muted{max-width:16rem;font-weight:400}.company-picker{flex-wrap:wrap;gap:.3rem;display:flex}.company-picker .chip{cursor:pointer;align-items:center;gap:.25rem;display:inline-flex}.company-picker .chip input{margin:0}.company-badges{flex-wrap:wrap;gap:.15rem;display:inline-flex}.project-card-kicker .company-badge{margin-left:.25rem}.kanban-card.has-company{border-left:4px solid var(--company)}
