/***** RESET BROWSER STYLE *****/ /*******************************/ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { background: transparent; border: 0; margin: 0; padding: 0; vertical-align: baseline; line-height: 1.5; outline: none; } html { -webkit-box-sizing: border-box; box-sizing: border-box; -ms-overflow-style: scrollbar } body { color:var(--primary-font-color); } *, ::after, ::before { -webkit-box-sizing: inherit; box-sizing: inherit } .container { position: relative; margin-left: auto; margin-right: auto; padding-right: 15px; padding-left: 15px } .container-fluid { position: relative; margin-left: auto; margin-right: auto; padding-right: 15px; padding-left: 15px } .row { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; margin-right: -5px; margin-left: -5px } .no-gutters { margin-right: 0; margin-left: 0 } .no-gutters > .col, .no-gutters > [class*=col-] { padding-right: 0; padding-left: 0 } .col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9 { position: relative; width: 100%; min-height: 1px; padding-right: 10px; padding-left: 10px; } .col { -webkit-flex-basis: 0; flex-basis: 200px; -webkit-box-flex: 1; -webkit-flex-grow: 1; flex-grow: 1; max-width: 100% } .col-auto { -webkit-box-flex: 0; -webkit-flex: 0 0 auto; -ms-flex: 0 0 auto; flex: 0 0 auto; width: auto } .col-1 { -webkit-box-flex: 0; -webkit-flex: 0 0 8.555555%; -ms-flex: 0 0 8.555555%; flex: 0 0 8.555555%; max-width: 8.555555% } .col-2 { -webkit-box-flex: 0; -webkit-flex: 0 0 16.666667%; -ms-flex: 0 0 16.666667%; flex: 0 0 16.666667%; max-width: 16.666667% } .col-3 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; max-width: 25% } .col-4 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.555555%; -ms-flex: 0 0 33.555555%; flex: 0 0 33.555555%; max-width: 33.555555% } .col-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 41.666667%; -ms-flex: 0 0 41.666667%; flex: 0 0 41.666667%; max-width: 41.666667% } .col-6 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; max-width: 50% } .col-7 { -webkit-box-flex: 0; -webkit-flex: 0 0 58.555555%; -ms-flex: 0 0 58.555555%; flex: 0 0 58.555555%; max-width: 58.555555% } .col-8 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.666667%; -ms-flex: 0 0 66.666667%; flex: 0 0 66.666667%; max-width: 66.666667% } .col-9 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; max-width: 75% } .col-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 83.555555%; -ms-flex: 0 0 83.555555%; flex: 0 0 83.555555%; max-width: 83.555555% } .col-11 { -webkit-box-flex: 0; -webkit-flex: 0 0 91.666667%; -ms-flex: 0 0 91.666667%; flex: 0 0 91.666667%; max-width: 91.666667% } .col-12 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; max-width: 100% } .pull-0 { right: auto } .pull-1 { right: 8.555555% } .pull-2 { right: 16.666667% } .pull-3 { right: 25% } .pull-4 { right: 33.555555% } .pull-5 { right: 41.666667% } .pull-6 { right: 50% } .pull-7 { right: 58.555555% } .pull-8 { right: 66.666667% } .pull-9 { right: 75% } .pull-10 { right: 83.555555% } .pull-11 { right: 91.666667% } .pull-12 { right: 100% } .push-0 { left: auto } .push-1 { left: 8.555555% } .push-2 { left: 16.666667% } .push-3 { left: 25% } .push-4 { left: 33.555555% } .push-5 { left: 41.666667% } .push-6 { left: 50% } .push-7 { left: 58.555555% } .push-8 { left: 66.666667% } .push-9 { left: 75% } .push-10 { left: 83.555555% } .push-11 { left: 91.666667% } .push-12 { left: 100% } .offset-1 { margin-left: 8.555555% } .offset-2 { margin-left: 16.666667% } .offset-3 { margin-left: 25% } .offset-4 { margin-left: 33.555555% } .offset-5 { margin-left: 41.666667% } .offset-6 { margin-left: 50% } .offset-7 { margin-left: 58.555555% } .offset-8 { margin-left: 66.666667% } .offset-9 { margin-left: 75% } .offset-10 { margin-left: 83.555555% } .offset-11 { margin-left: 91.666667% } .mainwrapper { background:var(--header-gradient); background-size: 100vw 100vh; background-attachment: fixed; } .rightpanel { background-size: contain; background-position: bottom; min-height: 100vh; } .rightpanel:before { position: absolute; height: calc(100% + 50px); width: 100%; left: 0; top: -50px; content: " "; opacity: .5; mix-blend-mode: multiply; background-size:cover; background-image:url(/dist/images/backgrounds/bg5.png); background-repeat:no-repeat; background-position:center; background-attachment: fixed; pointer-events: none !important; } .rightpanel.personal:before { } .rightpanel.project:before { } .rightpanel.company:before { } .rightpanel { padding-top:50px; } .rightpanel::after { clear: both; content: ''; display: block; pointer-events: none !important; } .overlay::after { pointer-events: none !important; } .primaryContent { min-height:calc(100vh - 50px); padding-top:10px; padding-bottom:10px; position: relative; overflow-x: hidden; } .leftpanel { width: 240px; color: #fff; float: left; clear: both; background:var(--left-panel-bg); position:sticky; height:calc(100vh - 70px); z-index: 9; display: flex; flex-direction: column; top:70px; margin-top:20px; left:10px; border-radius: var(--box-radius-large); overflow:hidden; } .header { clear: both; height: 50px; position: fixed; top:0px; z-index: 15; width: 100%; box-shadow: var(--large-shadow); backdrop-filter: var(--glass-blur); /*background:var(--header-bg-color);*/ } /* Pageheader is a glass card matching the content card below it, floating on the app's gradient background (which lives on .rightpanel, untouched). The old design used a 150px invisible cushion + a -95px content overlap to make the header float transparently on the gradient; that's replaced by a proper boxed header. Applied globally so every page's header is consistent. */ .pageheader { display: flex; align-items: center; /* Allow the right cluster (meta/summary + actions) to wrap below the title on narrow viewports instead of forcing horizontal overflow — mobile.css only adjusts padding/min-height, not the flex behavior. */ flex-wrap: wrap; gap: 12px; padding: 8px 18px; height: auto; line-height: 1.3; position: relative; /* Above the nav bar (z-index 11) so the breadcrumb + sprint ⋮ dropdowns, which open downward into the nav bar's area, render on top of it. */ z-index: 12; /* Match the content card exactly (same bg, NO backdrop blur) so the header and content read as one cohesive surface, not mismatched cards. */ background: var(--glass-background); border: var(--glass-border); border-radius: var(--box-radius); box-shadow: var(--large-shadow); /* Horizontal margin matches .maincontent's 15px padding so the header card lines up with the content card below it (was full-width → stuck out wider, which read as a box-inside-a-box). No bottom margin: the gap to the next block comes solely from .maincontent's 10px padding-top, so the vertical rhythm (top-nav→header, header→nav/content) is an even 10px everywhere (was 8px margin + 10px padding = an uneven 18px). */ margin: 0 15px 0 15px; } .pageheader .pagetitle { flex: 1 1 auto; min-width: 0; /* Must be visible, not hidden — the breadcrumb switcher's dropdown menu lives inside here and overflow:hidden would clip it shut. */ overflow: visible; } /* Header content must be able to shrink so it never forces the card wider than the viewport (flex children need min-width:0 to shrink below content size). */ .pageheader .pagetitle > * { min-width: 0; } /* Right cluster on the header: secondary metadata (board stats, "updated …") plus optional actions (the sprint ⋮ menu), on ONE line with the title — so the header stays compact instead of adding a sub-line row. Shared by Tasks + the report header. */ .pageheader-right { flex: 0 0 auto; margin-left: auto; display: flex; align-items: center; gap: 12px; padding-left: 16px; } .pageheader-meta { font-size: var(--font-size-s); color: var(--primary-font-color); /* .75 (was .6): review feedback — the meta text was hard to read. */ opacity: .75; } /* Muted crumb separator — the "/" between orientation segments in a page title ("Resources / Plan", "Docs / Default"), matching the report header. Opacity (not --secondary-font-color, which is #000 in the default theme) so it reads as muted on every theme. */ .pagetitle h1 .crumb-sep, .subjectSwitcher-sep { color: var(--primary-font-color); opacity: .45; } /* Sprint edit/delete ⋮ menu — a subtle icon button inline in the right cluster (only rendered for a real sprint view). */ .pageheader-right .headerEditDropdown { padding: 0; line-height: 1; } .pageheader-right .headerEditDropdown > .btn-transparent { color: var(--primary-font-color); opacity: .5; border: none; background: transparent; padding: 4px 8px; box-shadow: none; } .pageheader-right .headerEditDropdown > .btn-transparent:hover { opacity: .9; } .maincontent { float: left; width: 100%; padding: 10px 15px; margin-top: 0; position:relative; z-index:5; } .maincontentinner { border-radius:var(--box-radius); background:var(--glass-background); position:relative; padding:14px; /* account for 1px border */ margin-bottom:10px; box-shadow: var(--large-shadow); border: var(--glass-border); } .footer { border-radius:var(--box-radius); background: var(--glass-background); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur); position:relative; margin-bottom:20px; box-shadow: var(--large-shadow); border: var(--glass-border); font-size: var(--font-size-s); color: var(--primary-font-color); padding:10px 20px; overflow: hidden; clear: both; margin: 10px 15px; margin-bottom:40px; } .footer .footer-left { float: left; } .footer .footer-right { float: right; } .announcementBanner{ background:linear-gradient(170deg, var(--accent1) 20%,var(--accent2) 90%); height:40px; width:100%; text-align:center; line-height:40px; color:var(--main-action-color); position: fixed; bottom:0px; z-index: 100; } .announcementBanner:before { } /* ── Document-page mode ────────────────────────────────────────────── body.lt-doc-page: for pages whose content card renders its OWN doc-shell header (the stakeholder reports' .rd-hdr — see report-deck.css). The shared teal pageheader collapses (kept in the DOM so its lifecycle hooks still fire) and the content shell goes flush/transparent so the document card IS the page. ONE implementation for every doc-shell page — never re-create this per page in a template. Specificity (body + class) outranks the plain .pageheader/.maincontentinner base rules, so no !important is needed. (RA's body.ra-page-active predates this mode and should converge onto it in the tab-component rollout follow-ups.) */ body.lt-doc-page .pageheader { display: none; } body.lt-doc-page .maincontent { margin-top: 0; padding-top: 14px; } body.lt-doc-page .maincontentinner { background: transparent; border: none; box-shadow: none; border-radius: 0; padding: 0; backdrop-filter: none; -webkit-backdrop-filter: none; }