.lpg{min-width:0;color:var(--ink,#1e293b);font:inherit}.lpg *{box-sizing:border-box}.lpg .h{gap:14px;flex-wrap:wrap;margin-bottom:12px}.lpg h1{font-size:24px;margin:0 0 5px;font-weight:600}.lpg .lpg-subtitle{font-size:12px;color:var(--muted,#64748b);margin:0}.lpg .row{flex-wrap:wrap}.lpg-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:18px 0 12px}.lpg .btn,.lpg-toolbar select,.lpg-toolbar input{font:inherit;font-size:12px;min-height:34px;border:1px solid var(--line,#e2e8f0);border-radius:5px;background:var(--panel,#fff);color:inherit;padding:7px 10px;box-sizing:border-box}.lpg .btn{cursor:pointer;white-space:nowrap}.lpg .btn[aria-pressed=true]{color:#245ab0;border-color:#a5bdeb;background:#eff5ff}.lpg .btn:disabled{opacity:.45;cursor:default}.lpg .lpg-segment{display:flex;gap:4px}.lpg-search{margin-left:auto;max-width:240px}.lpg-search input{width:100%}.lpg .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.lpg-caption{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted,#64748b);margin-bottom:10px}.lpg-caption>.btn{margin-left:auto;min-height:28px;padding:4px 8px;font-size:11px}.lpg-text-button{border:0;background:transparent;color:#3865a2;cursor:pointer;padding:3px 0;font:inherit;font-size:11px;text-align:left}.lpg-scroll{max-width:100%;max-height:calc(100vh - 285px);min-height:220px;overflow:auto;border:1px solid var(--line,#e2e8f0);border-radius:7px;background:#fff;position:relative;overscroll-behavior:contain}.lpg-grid{min-height:100%;position:relative}.lpg-head,.lpg-row{display:flex;position:relative;min-width:100%;align-items:stretch}.lpg-head{position:sticky;top:0;z-index:12;height:60px;background:#f3f6fa;border-bottom:1px solid #d7e1ed}.lpg-label{flex:0 0 var(--lpg-label);width:var(--lpg-label);position:sticky;left:0;z-index:6;background:#fff;border-right:1px solid #dce4ef;display:flex;align-items:center;gap:8px;padding:10px 12px}.lpg-head>.lpg-label{z-index:14;background:#f3f6fa;font-size:12px;color:#526781;font-weight:500}.lpg-axis{position:relative;flex:none;overflow:hidden;color:#62748c;font-size:11px}.lpg-months{height:30px;border-bottom:1px solid #e0e7f0;position:relative}.lpg-months>div{position:absolute;top:0;height:30px;padding:7px 10px;border-right:1px solid #e0e7f0;white-space:nowrap;overflow:hidden;text-transform:capitalize}.lpg-ticks{height:30px;position:relative}.lpg-ticks>span{position:absolute;top:0;height:30px;padding:7px 5px;border-left:1px solid #e0e7f0;white-space:nowrap;overflow:hidden}.lpg-row{border-bottom:1px solid #e8edf4;min-height:70px}.lpg-row:last-child{border-bottom:0}.lpg-track{position:relative;flex:none;min-height:70px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--lpg-grid-step) - 1px),#edf1f7 calc(var(--lpg-grid-step) - 1px),#edf1f7 var(--lpg-grid-step));overflow:hidden}.lpg-stage{min-height:74px}.lpg-stage>.lpg-label{background:#f8fafd}.lpg-stage>.lpg-track{background-color:#f8fafd;min-height:74px}.lpg-stage-toggle{border:0;background:transparent;display:flex;align-items:center;gap:9px;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer;flex:1;min-width:0}.lpg-stage-toggle>b{font-weight:600}.lpg-stage-toggle small{display:block;font-size:10px;color:#748399;margin-top:5px;line-height:1.4}.lpg-stage-toggle b{font-size:13px;line-height:1.5;font-weight:600;display:block}.lpg-icon{border:0;background:transparent;color:#64748b;cursor:pointer;font:inherit;font-size:15px;flex:none;min-width:28px;min-height:28px;padding:3px}.lpg-icon:hover{background:#e9f0fa;border-radius:4px;color:#355f9a}.lpg-stage-bar{position:absolute;top:32px;height:9px;border-radius:4px;background:#d3deed;overflow:hidden}.lpg-stage-bar>span{display:block;height:100%;background:#79a48a}.lpg-stage-bar.done{background:#9cc6ad}.lpg-stage-mile{position:absolute;top:27px;transform:translateX(-50%) rotate(45deg);width:17px;height:17px;border:2px solid #6b8ebd;background:#fff;cursor:ew-resize;padding:0}.lpg-stage-mile.done{border-color:#55856b;background:#cee5d5}.lpg-item-text{flex:1;min-width:0}.lpg-title{display:block;width:100%;border:0;background:transparent;color:#293d57;font:inherit;font-size:12px;line-height:1.5;text-align:left;padding:0;cursor:pointer;overflow-wrap:anywhere}.lpg-title:hover{text-decoration:underline}.lpg-item-text small{display:block;font-size:10px;color:#64748b;line-height:1.5;margin-top:4px}.lpg-item>.lpg-label{padding-left:32px}.lpg-item.done .lpg-title{color:#496c57;text-decoration:line-through}.lpg-item.late .lpg-item-text small{color:#9b5148}.lpg-item.cancelled .lpg-title{color:#95a0ae;text-decoration:line-through}.lpg-bar{position:absolute;top:24px;height:24px;border:1px solid #8faed3;border-radius:4px;background:#dbe8fa;color:#3b628d;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;min-width:12px;z-index:2}.lpg-bar>span:not(.lpg-handle){font-size:10px;white-space:nowrap;overflow:hidden;padding:0 7px;pointer-events:none}.lpg-bar.work{background:#a9c8ed;border-color:#648ec2}.lpg-bar.done{background:#cbe3d3;border-color:#9abda7;color:#577d64}.lpg-bar.late{background:#f6ded9;border-color:#d5aaa0;color:#9b6357}.lpg-bar.cancelled{background:#e8ebef;border-color:#c5cdd8}.lpg-handle{position:absolute;top:-1px;width:8px;height:24px;cursor:ew-resize}.lpg-handle.start{left:-1px}.lpg-handle.end{right:-1px}.lpg-handle:after{content:'';position:absolute;top:7px;left:3px;width:1px;height:8px;background:#6384a8;opacity:0}.lpg-bar:hover .lpg-handle:after{opacity:1}.lpg-date-point{position:absolute;top:30px;transform:translateX(-50%);width:12px;height:12px;border:2px solid #7297c8;border-radius:50%;padding:0;background:#e2edfc;cursor:ew-resize;touch-action:none;z-index:3}.lpg-date-point.work{background:#6c98cc}.lpg-date-point.done{border-color:#69977a;background:#b4d6c1}.lpg-date-point.late{border-color:#c08074;background:#f6ddd6}.lpg-diamond{position:absolute;top:25px;transform:translateX(-50%);width:24px;height:24px;border:0;background:transparent;padding:4px;cursor:ew-resize;touch-action:none;z-index:3}.lpg-diamond>span{display:block;width:16px;height:16px;border:2px solid #6b8ebd;background:#fff;transform:rotate(45deg)}.lpg-diamond.done>span{border-color:#55856b;background:#c9e2d2}.lpg-date-label{position:absolute;top:26px;font-size:10px;color:#6c7c92;white-space:nowrap;pointer-events:none;z-index:2}.lpg-now{position:absolute;top:0;bottom:0;border-left:1px solid #d78966;opacity:.7;pointer-events:none;z-index:1}.lpg-no-date{position:absolute;top:23px;left:15px;padding:4px 8px;font:inherit;font-size:10px;border:1px dashed #c3cfdd;background:#fff;border-radius:4px;color:#71829a;cursor:pointer}.lpg-no-date-label{position:absolute;top:26px;left:15px;font-size:11px;color:#64748b}.lpg-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:10px;color:#64748b;margin:13px 0 8px;align-items:center}.lpg-legend>span{display:flex;align-items:center;gap:5px}.lpg-legend i{display:inline-block;width:12px;height:7px;background:#dbe8fa;border-radius:2px}.lpg-legend i.work{background:#9fbfe5}.lpg-legend i.done{background:#b2d2bf}.lpg-help{font-size:11px;line-height:1.6;color:#64748b;margin:0 0 5px;max-width:1000px}.lpg-empty{padding:30px;font-size:12px;color:#64748b}.lpg-form-actions{justify-content:flex-end;flex-wrap:wrap;margin-top:15px}.lpg-pick-list{max-height:38vh;overflow:auto;margin-top:12px;border:1px solid #e0e7ef;border-radius:5px}.lpg-pick{display:flex;align-items:flex-start;gap:9px;font-size:12px;padding:9px 11px;border-bottom:1px solid #eef2f7;line-height:1.5}.lpg-pick[hidden]{display:none}.lpg-pick input{width:auto;margin-top:3px}.lpg-pick small{display:block;color:#64748b;font-size:10px}.lpg .dragging{opacity:.8;z-index:8}.lpg button:focus-visible,.lpg input:focus-visible,.lpg select:focus-visible{outline:2px solid #6d98d4;outline-offset:2px}.lpg .lpg-track button:focus-visible{outline-offset:4px}
@media(max-width:768px){.lpg h1{font-size:21px}.lpg-search{margin-left:0}.lpg-toolbar{gap:7px}.lpg-caption{font-size:10px}.lpg-help{font-size:10px}.lpg-scroll{max-height:65vh}.lpg .h .row{gap:6px}.lpg-legend{gap:9px}}
@media(max-width:560px){.lpg .btn,.lpg-toolbar input,.lpg-toolbar select{min-height:44px}.lpg-caption>.btn{min-height:34px}.lpg-stage-toggle b{font-size:12px}.lpg-label{padding:8px}.lpg-item>.lpg-label{padding-left:17px}.lpg-icon{min-height:32px;min-width:24px}.lpg-title{font-size:11px}.lpg-item-text small{font-size:10px}.lpg-subtitle{line-height:1.6}.lpg-search{max-width:100%;flex:1 0 150px}.lpg-caption{gap:6px}.lpg-scroll{max-height:62vh}}

.lpg-closed-point{position:absolute;top:21px;transform:translateX(-50%);width:25px;height:25px;border-radius:50%;background:#648e75;color:white;display:grid;place-items:center;font-size:13px;z-index:4;pointer-events:none}.lpg-item.done .lpg-bar{opacity:.55}.lpg-drag-tip{position:fixed;z-index:120;background:#263b56;color:#fff;border-radius:5px;padding:6px 10px;font:12px/1.5 system-ui,sans-serif;pointer-events:none;box-shadow:0 3px 10px #1b304526}.lpg-drag-tip[hidden]{display:none}

.lpg-band{min-height:34px;border-top:1px solid #dce5ef;border-bottom:1px solid #dce5ef}.lpg-band>.lpg-label{font-size:11px;font-weight:600;letter-spacing:.025em;padding:8px 12px;background:#f0f5fa;color:#536a83}.lpg-band>.lpg-track{min-height:34px;background:#f0f5fa}.lpg-band-done>.lpg-label,.lpg-band-done>.lpg-track{background:#f1f7f3;color:#567260}.lpg-stage.lpg-completed,.lpg-stage.lpg-completed>.lpg-track{min-height:58px}.lpg-completed>.lpg-label{background:#fbfdfb}.lpg-completed>.lpg-track{background-color:#fbfdfb}.lpg-completed .lpg-stage-bar{top:24px}.lpg-completed .lpg-stage-mile{top:19px}.lpg-completed .lpg-stage-toggle b{font-size:12px;font-weight:500}

.lpg-head{height:82px;background:var(--blue,#0000ff);border-bottom-color:#d4dfe9}.lpg-head>.lpg-label{background:var(--blue,#0000ff);color:#fff}.lpg-axis{color:#fff}.lpg-months{border-bottom-color:#ffffff40}.lpg-months>div{border-right-color:#ffffff40}.lpg-ticks>span{border-left-color:#ffffff40;font-variant-numeric:tabular-nums}.lpg-today-tier{height:22px;position:relative;background:#f7f9fc;border-top:1px solid #e0e7ef;color:#a45e43}.lpg-today-tier>span{position:absolute;top:3px;transform:translateX(-50%);font-size:10px;line-height:15px;white-space:nowrap;padding:0 5px;background:#f7f9fc}.lpg-track{background-image:none}.lpg-week-line{position:absolute;top:0;bottom:0;border-left:1px solid #d6e0ed;pointer-events:none;z-index:0}.lpg-row{border-bottom-color:#dfe7f0}

.lpg-head{height:90px}.lpg-ticks{height:38px}.lpg-ticks>span{height:38px;padding:3px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:14px}.lpg-ticks b{font-size:11px;font-weight:500;line-height:14px}.lpg-ticks small{font-size:10px;line-height:13px}

.lpg-item.done .lpg-bar{background:#e7edf4;border:1px dashed #c0cddd;color:#7d8da3;opacity:.7}.lpg-item.done .lpg-date-point{background:#f0f3f7;border-color:#aebdce}

.lpg-week-line{border-left-color:#c7d5e7}

.lpg-item .lpg-bar{top:50%;transform:translateY(-50%)}.lpg-item .lpg-date-point,.lpg-item .lpg-diamond,.lpg-item .lpg-closed-point{top:50%;transform:translate(-50%,-50%)}.lpg-item .lpg-date-label,.lpg-item .lpg-no-date,.lpg-item .lpg-no-date-label{top:50%;transform:translateY(-50%)}.lpg-stage .lpg-stage-bar{top:50%;transform:translateY(-50%)}.lpg-stage .lpg-stage-mile{top:50%;transform:translate(-50%,-50%) rotate(45deg)}.lpg-item.done .lpg-bar{color:#566579;opacity:1}.lpg-drag-tip{font-family:inherit}

.content:has(>.lpg){min-width:0;width:100%;max-width:none}
/* State and baseline are separate: moving a date never erases the original plan. */
.lpg-badges{display:flex;gap:4px;flex-wrap:wrap;margin:3px 0}.lpg-badges:empty{display:none}.lpg-badge{display:inline-block;border:1px solid transparent;border-radius:4px;padding:2px 5px;font-size:10px;line-height:14px;font-weight:400;white-space:normal;overflow-wrap:anywhere}.lpg-badge.late,.lpg-badge.danger{background:#fef2f2;border-color:#f1b4b4;color:#a52c2c}.lpg-badge.warning{background:#fff8e8;border-color:#e9cb81;color:#82570e}.lpg-badge.early{background:#eef7f2;color:#38654a}.lpg-badge.extra{background:#f4f0fb;border-color:#d7c9ec;color:#725294}.lpg-badge.proposed{background:#f2f5f9;color:#57677c}.lpg-stage-toggle .lpg-badge{margin-top:4px}.lpg-phase{min-height:29px;background:#f1f4f9}.lpg-phase>.lpg-label{background:#f1f4f9;padding:6px 18px 6px 30px;font-size:11px;color:#516580}.lpg-phase-line{position:absolute;top:50%;height:2px;background:#bac8db}.lpg-item .lpg-track{min-height:84px}.lpg-baseline{position:absolute;top:calc(50% + 18px);height:7px;background:repeating-linear-gradient(90deg,#9aa8b8 0 4px,transparent 4px 7px);border:1px dashed #8493a5;pointer-events:none;z-index:1}.lpg-baseline-mile{position:absolute;top:calc(50% + 18px);width:10px;height:10px;border:1px dashed #8493a5;transform:translateX(-50%) rotate(45deg);pointer-events:none}.lpg-bar.warning,.lpg-stage-bar.warning{background:#f4db9d;border-color:#c19c41;color:#704e14}.lpg-bar.late,.lpg-bar.danger,.lpg-stage-bar.late,.lpg-stage-bar.danger{background:#ef9b9b;border-color:#c84b4b;color:#762626}.lpg-date-point.warning{background:#f4db9d;border-color:#c19c41}.lpg-date-point.late,.lpg-date-point.danger{background:#ef9b9b;border-color:#c84b4b}.lpg-stage-mile.late,.lpg-stage-mile.danger,.lpg-diamond.late>span,.lpg-diamond.danger>span{background:#f7bbbb;border-color:#c84b4b}.lpg-stage-mile.warning,.lpg-diamond.warning>span{background:#f4db9d;border-color:#c19c41}.lpg-legend i.late{background:#ef9b9b}.lpg-legend i.warning{background:#f4db9d}.lpg-legend i.baseline{background:transparent;border:1px dashed #8493a5}.lpg-stage-toggle>span:last-child{min-width:0}.lpg-stage .lpg-track{min-height:90px}

.lpg-baseline{height:5px;background:#e3e9f1;border:1px dashed #8493a5}
.lpg-phase .lpg-track{min-height:30px}.lpg-stage.lpg-completed .lpg-track{min-height:58px}
