/* Kept separate for small-screen and print refinements. */
:root{--pmis-deep-teal:linear-gradient(180deg,#0c2a2c,#071a1c)}
/* Same circuit tile and opacity as the footer, independent of footer visibility. */
.sidebar{background-color:#071a1c;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg opacity='.35'%3E%3Cg fill='none' stroke='%231f5a57' stroke-width='1'%3E%3Cpath d='M0 30H40L55 15H120M20 120V80L35 65H80L95 80V120M120 90H100'/%3E%3C/g%3E%3Cg fill='%231f5a57'%3E%3Ccircle cx='40' cy='30' r='2'/%3E%3Ccircle cx='55' cy='15' r='2'/%3E%3Ccircle cx='35' cy='65' r='2'/%3E%3Ccircle cx='80' cy='65' r='2'/%3E%3Ccircle cx='100' cy='90' r='2.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"),var(--pmis-deep-teal);background-size:120px 120px,100% 100%;background-repeat:repeat,no-repeat;color:#b6cec7}
.sidebar .brand{color:#f3e6b0}
.sidebar .brand small,.sidebar .sidebar-footer small{color:#b6cec7}
.sidebar .nav-label{color:#e8c65a}
.sidebar nav button,.sidebar nav .legal-nav,.sidebar .quiet{color:#eaf4ef}
.sidebar nav button:hover,.sidebar nav .legal-nav:hover,.sidebar .quiet:hover{background:#164447;color:#74e7d9}
.sidebar nav button.active{background:#1b5050;color:#a2f3df;box-shadow:inset 3px 0 #74e7d9}
.sidebar-footer{border-top-color:#2f615d}
.sidebar-navigation{scrollbar-color:#3c7770 #0c2a2c}
.sidebar button:focus-visible,.sidebar a:focus-visible{outline:2px solid #e8c65a;outline-offset:2px}
.homepage-footer{margin-top:24px;color:#eaf4ef;isolation:isolate;min-width:0}
.rd-defs{position:absolute;pointer-events:none;overflow:hidden}
.rd-body{position:relative;overflow:hidden;background:var(--pmis-deep-teal);padding:16px 22px;border-radius:12px}
.rd-grid-bg{position:absolute;inset:0;width:100%;height:100%;opacity:.35;pointer-events:none}
.rd-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px}
.rd-brand h2{color:#f3e6b0;font-size:19px;letter-spacing:0;margin:0 0 6px}
.rd-brand p{color:#b6cec7;line-height:1.7;font-size:12px;margin:0;overflow-wrap:anywhere}
.homepage-footer .rd-col{display:flex;flex-direction:column;align-items:stretch;min-width:0;align-self:start;padding-top:0}
.rd-col h3{font-size:12px;letter-spacing:.06em;color:#e8c65a;margin:0 0 10px;line-height:1.7}
.rd-col h3::before{content:'> ';color:#74e7d9}
.homepage-footer button{display:block;background:transparent;border:0;border-radius:4px;padding:5px 0;min-height:32px;font-size:12px;line-height:1.65;color:#eaf4ef;font-weight:500;text-align:left;white-space:normal;overflow-wrap:anywhere}
.homepage-footer button:hover{color:#74e7d9;text-decoration:underline}
.homepage-footer button:focus-visible{outline:2px solid #e8c65a;outline-offset:3px}
@media(max-width:900px){.rd-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rd-brand{grid-column:1/-1}}
@media(max-width:480px){.rd-inner{grid-template-columns:minmax(0,1fr)}.rd-body{padding:16px}.homepage-footer button{min-height:44px}}
/* Static ornamentation intentionally avoids perpetual motion and resize scripts. */
.homepage-info p{font-size:14px;line-height:1.8;overflow-wrap:anywhere}
/* Decorative login watermark only; never intercepts form interaction. */
.auth-aside{position:relative;isolation:isolate;overflow:hidden}
.auth-aside::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('/login-watermark.jpg') center/contain no-repeat;opacity:.12}
.toc-canvas{max-width:100%;overflow:auto;margin-bottom:24px;border:1px solid #d9e3e8;border-radius:12px;background:#fafcfd;padding:12px}
.toc-canvas svg{display:block;width:100%;min-width:880px;height:auto;max-width:none}
.toc-record{padding:16px 0;border-bottom:1px solid #d9e3e8;overflow-wrap:anywhere}
.toc-record p{white-space:pre-wrap}
@media print{.toc-canvas{overflow:visible;border:0;padding:0}.toc-canvas svg{width:100%;min-width:0;height:auto}.toc-view .toolbar,.toc-view button{display:none}.toc-record{break-inside:avoid}}
/* Let navigation shrink and scroll without pushing Sign out off screen. */
@media screen and (min-width:761px){
 .sidebar{height:100vh;height:100dvh;min-height:0;overflow:hidden}
 .sidebar>.brand,.sidebar-footer{flex-shrink:0}
 .sidebar-navigation{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;overscroll-behavior:contain;padding:4px}
 .sidebar-footer{margin-top:0;padding-top:12px}
 .sidebar-footer p{margin-bottom:8px}
 .sidebar-footer button{min-height:44px;width:100%;justify-content:flex-start}
}
@media screen and (min-width:761px) and (max-height:760px){
 .sidebar{padding:16px 14px;gap:12px}
 .sidebar-footer p,.sidebar-footer small,.sidebar-footer br{display:none}
}
@media screen and (min-width:761px) and (max-height:400px){.sidebar>.brand{display:none}}
@media screen and (max-width:760px){.sidebar .sidebar-footer button{min-height:44px;padding:8px 12px}}
.portfolio-layout{display:grid;gap:4px}
.portfolio-layout .timeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 25px}
.portfolio-layout td:first-child{min-width:230px}
fieldset{border:1px solid #dfe5eb;border-radius:8px;padding:16px;margin:0 0 16px;display:grid;gap:12px}
legend{font-size:14px;font-weight:700;color:#087f72}
details{margin-top:14px}summary{cursor:pointer;font-weight:600}
@media(max-width:760px){.portfolio-layout .timeline{grid-template-columns:1fr}.sidebar-footer{display:block;margin:0;padding-top:4px;border:0}.sidebar-footer p,.sidebar-footer small,.sidebar-footer br{display:none}.sidebar-footer button{font-size:12px;padding:0}.page-head .actions{width:100%}.page-head .actions button{flex:1}}
@media print{.portfolio-layout .timeline{display:none}}
.legal-nav{display:block;color:#9ce1d8;padding:14px 16px;text-decoration:none;border-radius:8px}.legal-nav:hover{background:#20434c}
.library-nav-icon{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sidebar .sidebar-icon{display:block;width:18px;height:18px;min-width:18px;flex:0 0 18px;justify-self:center;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sidebar .nav-symbol{display:flex;align-items:center;justify-content:center}

/* Compact desktop navigation: keep the rail only as wide as its labels need. */
@media screen and (min-width:761px){
 .shell{grid-template-columns:224px minmax(0,1fr)}
 .sidebar{padding:18px 12px;gap:14px}
 .sidebar .brand{gap:12px;font-size:22px;padding:0 10px;min-height:52px}
 .sidebar .brand-icon{width:48px;height:48px;min-width:48px;max-width:48px;max-height:48px;flex:0 0 48px;border-radius:10px}
 .sidebar .brand-icon img{width:48px;height:48px}
 .sidebar .brand small{font-size:11px;letter-spacing:1.6px;margin-top:3px}
 .sidebar-navigation{padding:0;scrollbar-width:thin}
 .sidebar .nav-label{font-size:14px;margin:10px 10px 12px;letter-spacing:1.3px}
 .sidebar nav{gap:3px}
 .sidebar nav button,.sidebar nav .legal-nav{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;width:100%;min-width:0;min-height:44px;padding:10px;border:0;font-size:13px;font-weight:500;line-height:1.5;text-align:left;white-space:normal;overflow-wrap:anywhere}
 .sidebar .nav-symbol,.sidebar .library-nav-icon{display:block;width:20px;min-width:20px;justify-self:center;text-align:center;font-size:17px;line-height:20px}
 .sidebar .nav-text{min-width:0;text-align:left}
 .sidebar-footer{padding:12px 10px 0}
 .sidebar-footer button{min-height:44px;font-size:13px;padding:8px 0;text-align:left}
}
/* Fit the desktop cycle without scrolling; longer labels can use two lines. */
.cycle{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(max-content,1.2fr) repeat(4,minmax(0,1fr));gap:4px;overflow:visible;padding:4px}
.cycle button{min-width:0;width:100%;min-height:52px;height:auto;padding:8px 4px;font-size:11px;white-space:normal;overflow-wrap:anywhere;line-height:1.4;text-align:center;justify-content:center;background:#e8eff2;color:#496079;border:2px solid transparent;border-radius:5px;font-weight:500}
.cycle button[data-stage="Implementation"]{white-space:nowrap;overflow-wrap:normal}
.cycle button[data-stage="Problem identification"]{text-wrap:balance}
@media(max-width:1100px){.cycle{grid-template-columns:repeat(3,minmax(0,1fr))}}
.cycle button.current{background:#087f72;color:white}
.cycle button:hover{border-color:#087f72}
.cycle button:focus-visible{outline:3px solid #19b7a0}

/* Project header: "Edit details" plus a "More actions" dropdown, styled like the language selector. */
.page-head .actions{flex:0 0 auto;justify-content:flex-end;flex-wrap:nowrap;align-items:flex-start}
.page-head .actions>button,.action-menu>summary{white-space:nowrap;min-height:40px}
.action-menu{position:relative;display:flex;margin:0}
.action-menu>summary{list-style:none;cursor:pointer;padding-right:34px;background:white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23243b50' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center}
.action-menu>summary::-webkit-details-marker{display:none}
.action-menu[open]>summary,.action-menu>summary:hover{border-color:var(--teal);color:var(--teal)}
.action-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:250px;display:grid;padding:6px;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px rgba(16,42,52,.16)}
.action-menu-list>button,.action-menu-list>.button{justify-content:flex-start;width:100%;border:0;border-radius:6px;font-weight:500;padding:10px 12px;text-align:left}
.action-menu-list>button:hover,.action-menu-list>.button:hover{background:#eef6f4;color:var(--teal)}
@media(max-width:760px){.page-head .actions>*{flex:1}.action-menu>summary{width:100%}.action-menu-list{left:0;right:auto;width:100%}}
input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:18px;padding:0;margin:2px 0 0;flex-shrink:0;accent-color:var(--teal);cursor:pointer}
label:has(>input[type=checkbox]),label:has(>input[type=radio]){display:flex;gap:10px;align-items:flex-start;line-height:1.55;cursor:pointer}
fieldset>label:has(>input[type=checkbox]){padding:11px 13px;border:1px solid var(--line);border-radius:8px;font-size:14px;font-weight:400;color:#243b50;margin:0}
fieldset>label:has(>input[type=checkbox]):hover{background:#f5f9f8}
fieldset>label:has(>input:checked){background:#eaf6f2;border-color:#9fd3c4}
fieldset.ai-draft>label:has(>input[type=checkbox]){border:0;padding:0;background:none}
#modal-content h3{margin-top:24px}#cycle-form{margin-bottom:8px}
.issue-group{border-bottom:1px solid var(--line)}.issue-group:last-child{border-bottom:0}
.issue-group>summary{display:flex;gap:12px;align-items:center;padding:14px 4px;cursor:pointer;list-style:none;border-radius:8px}
.issue-group>summary::-webkit-details-marker{display:none}
.issue-group>summary:hover{background:#f5f9f8}
.issue-title{flex:1;display:grid;gap:2px;min-width:0}.issue-title strong{font-size:14px}.issue-title small{font-size:12px}
.issue-count{min-width:28px;text-align:center;font-size:12px;font-weight:700;background:#eef2f6;color:#496079;border-radius:12px;padding:3px 9px}
.issue-group>summary:after{content:'▸';color:var(--muted);transition:transform .15s}
.issue-group[open]>summary:after{transform:rotate(90deg)}
.issue-items{display:grid;gap:6px;padding:0 0 14px 4px}
.issue-item{justify-content:space-between;text-align:left;font-weight:400;font-size:13px;color:#33495b;padding:10px 12px;gap:14px}
.issue-item:hover{border-color:#9fd3c4;background:#f5f9f8}
.issue-open{color:var(--teal);font-weight:600;white-space:nowrap}
.issue-item>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.with-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.info-tip{position:relative;display:inline-block;font-size:14px;font-weight:400;letter-spacing:0;line-height:1.5}
.info-tip>summary{list-style:none;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--teal);color:var(--teal);font:700 12px/17px Georgia,serif;font-style:italic;text-align:center;cursor:pointer;user-select:none}
.info-tip>summary::-webkit-details-marker{display:none}
.info-tip>summary:hover,.info-tip[open]>summary{background:var(--teal);color:white}
.info-pop{position:absolute;z-index:30;top:28px;left:-10px;width:min(340px,80vw);background:#102c3b;color:#e6f1f3;border-radius:9px;padding:12px 14px;font-size:13px;line-height:1.6;box-shadow:0 10px 30px #0003;white-space:normal}
.info-pop:before{content:'';position:absolute;top:-6px;left:14px;border:6px solid transparent;border-top:0;border-bottom-color:#102c3b}
@media print{.info-tip{display:none}}
.panel:has(.info-tip[open]){overflow:visible}
.info-pop.shifted:before{display:none}
.topbar{position:sticky;top:0;z-index:20;background:#ffffffeb;backdrop-filter:blur(8px);height:68px}
.identity{flex-wrap:nowrap!important;gap:10px}
.top-control{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 6px 0 11px;border:1px solid var(--line);border-radius:999px;background:#f7f9fa;color:#5d7083;cursor:pointer;transition:border-color .15s,background .15s}
.top-control:hover{border-color:#9fd3c4;background:#f1f8f6}
.top-control:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px #087f7222}
.top-control .top-icon{flex-shrink:0;color:var(--teal)}
.top-control select,.top-control #institution{border:0!important;background:transparent;min-height:0;height:34px;padding:0 4px!important;font-size:13px;font-weight:600;color:#243b50;cursor:pointer;outline:none;max-width:200px;width:auto;min-width:0}
.top-control select.language{width:auto}
.user-chip{display:flex;align-items:center;gap:9px;padding:3px 12px 3px 3px;border:1px solid var(--line);border-radius:999px;background:white;margin-left:4px}
.user-chip .avatar{width:32px;height:32px;background:linear-gradient(135deg,#0d8c7d,#0b5f6b);color:white;font-size:13px}
.user-text{display:grid;line-height:1.15}
.user-text strong{font-size:13px;color:#22384c;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-text .role-label{font-size:11px;color:var(--muted)}
.breadcrumb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.breadcrumb strong{font-weight:600;color:#1d3346}
@media(max-width:1000px){.user-text{display:none}.user-chip{padding:3px}}
@media(max-width:760px){.topbar{height:auto;padding:10px 14px;flex-wrap:wrap;position:static}.identity{width:100%;justify-content:space-between}.top-control #institution{max-width:120px}}
@media print{.topbar{position:static}}
img.avatar{object-fit:cover;display:block;flex-shrink:0;border-radius:50%;width:32px;height:32px}
.avatar.large{width:96px;height:96px;font-size:36px}
button.user-chip{font:inherit;cursor:pointer;text-align:left}
button.user-chip:hover{border-color:#9fd3c4;background:#f5f9f8}
.profile-pic{display:flex;gap:22px;align-items:flex-start}
.profile-pic .actions,.profile-upload{cursor:pointer}
.issue>.avatar{margin-top:2px}
.ai-card{border:1px solid #cfe5df;border-left:3px solid var(--teal);border-radius:9px;padding:14px 16px;margin:10px 0;background:#fbfdfc}
.ai-card h3{margin:0 0 8px;font-size:15px}.ai-card ul{margin:6px 0 10px;padding-left:20px;font-size:14px;line-height:1.6}.ai-card p{font-size:14px;margin-bottom:8px}
.ai-card .actions button{font-size:12px;padding:6px 10px}
#ai-assist-result:empty{display:none}
/* Activity schedule: Table / Gantt switch and Gantt chart */
.view-switch{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.view-switch>button{border:0;border-radius:0;background:#fff;color:#38495a;padding:7px 12px;min-height:0}.view-switch>button+button{border-left:1px solid var(--line)}.view-switch>button.active{background:var(--teal);color:#fff}
.sched-issues{display:flex;flex-direction:column;gap:2px;margin-top:4px;font-size:12px;line-height:1.35}
.gx-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}
.gx-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 1px 2px #10243810;min-width:0}
.gx-card strong{display:block;font-size:14px}.gx-card small{display:block;color:#5d6b78;font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis}
.gx-k{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#eef6f4;color:var(--teal);font-size:20px;font-weight:750}.gx-k.ms{background:#eef2f7;color:#38495a;font-size:18px}
.gx-card.bad .gx-k{background:#fdecea;color:#b42318}.gx-card.good .gx-k{background:#eaf7ee;color:#16a34a}
.gx-ring{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:conic-gradient(var(--teal) calc(var(--v)*1%),#e3ece9 0)}.gx-ring b{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fff;font-size:12px}
.gx-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}.gx-toolbar>button,.gx-toolbar .view-switch>button{padding:7px 12px;min-height:0}.gx-i{margin-right:5px;opacity:.8}
.gx-search{display:flex;align-items:center;gap:6px;flex:1 1 220px;max-width:320px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.gx-search span{color:#6b7a88;font-size:16px}.gx-search input{border:0;outline:0;padding:7px 0;min-height:0;width:100%;background:none;box-shadow:none}
.gx-search:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px #0e766e22}
.gx{--gx-weekend:#f1f4f6;position:relative;display:grid;grid-template-columns:minmax(0,min(560px,50%)) 1fr;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;font-size:13px;box-shadow:0 1px 3px #1024380d}
.gx-grid{border-right:2px solid #d6dee2;min-width:0;overflow:hidden}
.gx-row{display:grid;grid-template-columns:34px minmax(110px,1fr) 34px 72px 72px 78px 40px;height:var(--gx-row);align-items:center;border-bottom:1px solid #edf1f3;transition:background .12s}
.gx-grid .gx-head{height:56px;background:#f4f7f8;font-weight:650;color:#38495a;font-size:12px;border-bottom:1px solid var(--line)}
.gx-c{padding:0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gx-c.n{text-align:center}.gx-c.d{font-size:11.5px;color:#38495a;font-variant-numeric:tabular-nums}.gx-c.wbs{color:#8492a0;font-size:12px;font-variant-numeric:tabular-nums;padding-left:9px}.gx-c.av{display:flex;justify-content:center}
.gx-c.name{display:flex;align-items:center;gap:6px}.gx-c.name>button.link{display:block;flex:0 1 auto;padding:0;margin-left:16px;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550;min-height:0;border:0;background:none;color:#16283a}.gx-c.name>button.link:hover{color:var(--teal);text-decoration:underline}.gx-c.name strong{overflow:hidden;text-overflow:ellipsis}
.gx-msi{color:#38495a;margin-right:4px}.gx-dot{flex:none;width:10px;height:10px;border-radius:3px;background:var(--c)}.gx-count{flex:none;margin-left:auto;padding:1px 7px;border-radius:999px;background:#e9eef1;color:#5d6b78;font-size:11px;font-weight:650}
.gx-row.gx-sum{background:#f8fafb;font-weight:650}.gx-toggle{flex:none;border:0;background:none;padding:0 2px;min-height:0;font-size:13px;color:#38495a;cursor:pointer}
.gx-row.hover,.gx-lane.hover{background:#eef6f4!important}
.gx-row.late .gx-c.d:nth-child(5){color:#b42318;font-weight:650}
.gx-warn{flex:none;padding:1px 6px;border-radius:999px;background:#fff4e0;color:#a15c00;font-size:11px;font-weight:650;cursor:help}.gx-warn.late{background:#fdecea;color:#b42318}.gx-ok{flex:none;color:#16a34a;font-weight:800}
.gx-av{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;color:#fff;font-size:10px;font-weight:700;letter-spacing:.02em}.gx-av.none{background:#c5ced6}
.gx-c.p{display:flex;align-items:center;gap:6px}.gx-pb{flex:1;height:6px;border-radius:99px;background:#e6ecef;overflow:hidden}.gx-pb i{display:block;height:100%;border-radius:99px}.gx-c.p b{font-size:11px;font-weight:650;min-width:30px;text-align:right;color:#38495a}
.gx-chip{padding:1px 6px;border-radius:6px;background:#eef2f7;color:#38495a;font-size:11px;font-weight:650}
.gx-row.crit .gx-c.wbs{box-shadow:inset 3px 0 #d92d20}
.gx-time{overflow-x:auto;overflow-y:hidden;position:relative}.gx-canvas{position:relative;user-select:none}
.gx-time .gx-head{position:relative;background:#f4f7f8;border-bottom:1px solid var(--line)}.gx-tier{position:relative;height:28px;border-bottom:1px solid #e3e9ec}.gx-tier:last-child{border-bottom:0}.gx-tier span{position:absolute;top:0;height:100%;padding:6px 6px 0;border-left:1px solid #d6dee2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#38495a}
.gx-tier:first-child span{font-weight:700}
.gx-body{position:relative}.gx-lines i{position:absolute;top:0;bottom:0;border-left:1px solid #edf1f3}
.gx-lane{position:absolute;left:0;right:0;height:var(--gx-row);border-bottom:1px solid #edf1f3;transition:background .12s}.gx-lane.gx-sum{background:#f8fafb80}
.gx-bar{position:absolute;top:8px;height:22px;border-radius:6px;background:color-mix(in srgb,var(--c) 18%,#fff);border:1px solid color-mix(in srgb,var(--c) 55%,#fff);overflow:hidden;z-index:1;cursor:grab;touch-action:none;box-shadow:0 1px 2px #10243818;transition:box-shadow .12s}
.gx-bar:hover,.gx-bar:focus-visible{box-shadow:0 2px 8px #10243833;outline:0}.gx-bar.dragging{cursor:grabbing;box-shadow:0 4px 14px #10243840;opacity:.92;z-index:5}
.gx-fill{position:absolute;left:0;top:0;bottom:0;background:var(--c)}.gx-in{position:relative;display:block;padding:0 10px;line-height:20px;font-size:11.5px;font-weight:650;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 3px color-mix(in srgb,var(--c) 70%,#000)}
.gx-h{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:2}.gx-h.l{left:0}.gx-h.r{right:0}.gx-bar:hover .gx-h{background:#ffffff66}
.gx-bar.open{background:repeating-linear-gradient(90deg,#cfe7df 0 6px,transparent 6px 10px);border-style:dashed;cursor:default}
.gx-bar.crit{outline:2px solid #d92d20;outline-offset:1px}.gx-ms.crit{outline:2px solid #d92d20;outline-offset:2px}
.gx-label{position:absolute;top:11px;font-size:12px;color:#38495a;white-space:nowrap;z-index:1;pointer-events:none}
.gx-sbar{position:absolute;top:13px;height:10px;border-radius:3px;background:color-mix(in srgb,var(--c) 30%,#fff);overflow:hidden;z-index:1}.gx-sbar i{display:block;height:100%;background:var(--c)}
.gx-ms{position:absolute;top:50%;width:16px;height:16px;background:var(--c);border:2px solid #fff;box-shadow:0 1px 3px #10243855;transform:translate(-50%,-50%) rotate(45deg);z-index:1;cursor:grab;touch-action:none}
.gx-today{position:absolute;top:0;bottom:0;border-left:2px solid #d92d20;z-index:3;pointer-events:none}.gx-today em{position:absolute;top:2px;left:4px;padding:1px 6px;border-radius:4px;background:#d92d20;color:#fff;font-size:10px;font-style:normal;font-weight:700}
.gx-arrows{position:absolute;left:0;top:0;pointer-events:none;z-index:2;overflow:visible}.gx-arrows path{fill:none;stroke:#8492a0;stroke-width:1.4;marker-end:url(#gx-head)}.gx-arrows path.crit{stroke:#d92d20}.gx-arrows marker path{fill:#8492a0;stroke:none}
.gx-tip{position:absolute;z-index:20;min-width:220px;max-width:300px;padding:12px 14px;border-radius:10px;background:#16283a;color:#fff;font-size:12px;box-shadow:0 8px 24px #10243840;pointer-events:none}.gx-tip strong{display:block;font-size:13px;margin-bottom:6px}
.gx-tip-grid{display:grid;grid-template-columns:auto 1fr;gap:3px 12px}.gx-tip-grid span{color:#a9b7c4}.gx-tip-warn{margin-top:8px;color:#ffc9a3}.gx-tip-new{margin-top:8px;color:#8ff0d0;font-weight:650}
.gx-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:10px 0 0;color:#5d6b78;font-size:12px}.gx-legend span{display:inline-flex;align-items:center;gap:6px}.gx-hint{margin-left:auto;font-style:italic}
.lg{display:inline-block;width:18px;height:10px;border-radius:3px}.lg.bar{background:#cfe7df;border:1px solid #8cc5b5}.lg.fill{background:var(--teal)}.lg.late{background:#d92d20}.lg.okc{background:#16a34a}.lg.ms{width:10px;height:10px;background:#38495a;transform:rotate(45deg);border-radius:1px}.lg.today{width:2px;height:14px;background:#d92d20;border-radius:0}
@media(max-width:1100px){.gx-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.gx{grid-template-columns:minmax(0,230px) 1fr}.gx-row{grid-template-columns:30px minmax(100px,1fr) 34px}.gx-c.d,.gx-c.p,.gx-c.n{display:none}.gx-hint{margin-left:0}}
@media(max-width:560px){.gx-cards{grid-template-columns:1fr}}
