@import url("../../../css/reset.css") print, screen; /* Board List Header */ .board-list-header:not(:empty) { display: flex; justify-content: center; margin: 1vh 0 2vh 0; padding: 1vh 0; } /* Two-column layout for All Boards */ .boards-layout { display: grid; gap: 1ch; /* menu takes the space it needs, boards has the rest */ grid-template-columns: minmax(max-content, 250px) 1fr; justify-content: stretch; align-items: stretch; } body:not(.mobile-mode) .boards-layout { padding: 1vmax; } body.mobile-mode .boards-layout { grid-auto-flow: row; grid-template-rows: 1fr auto; grid-template-columns: minmax(auto, 100vw); } .boards-left-menu { display: flex; flex-direction: column; align-items: stretch; border-right: 1px solid #e0e0e0; overflow: visible; align-self: stretch; min-width: max-content; flex: 1; } .boards-left-menu .menu-item a { display: flex; justify-content: space-between; align-items: center; border-radius: 0.4ch; cursor: pointer; } .boards-left-menu .menu-item .menu-label { flex: 1; padding: 0.3lh; } .boards-left-menu .menu-item .menu-count { display: flex; align-items: center; justify-content: center; background: #ddd; margin-right: 0.4ch; aspect-ratio: 1 / 1; border-radius: 50%; padding: 0.2em; font-size: 0.8em; min-width: 3ch; font-weight: bold; } .boards-left-menu .menu-item.active a, .boards-left-menu .menu-item a:hover { background: #f0f0f0; } .boards-left-menu .menu-item.active .menu-count { background: #bbb; } /* Drag-over state for menu items (for dropping boards on Remaining) */ .boards-left-menu .menu-item a.drag-over { background: #d0e8ff; border: 2px dashed #2196F3; } .boards-right-grid { display: flex; flex-direction: column; gap: 1vmax; /* hackish way to make the item grow only when wrapping, i.e. with no other competing item on the cross axis */ flex: 10 1 0; } .workspaces-header { display: flex; align-items: center; justify-content: space-between; font-weight: bold; padding: 0.3lh 0.8ch; gap: 0.3lh; } .workspaces-header .js-add-space { text-decoration: none; font-weight: bold; border: 1px solid #ccc; padding: 2px 8px; border-radius: 0.4ch; } .workspace-tree { list-style: none; padding-left: 10px; } .workspace-node { margin: 2px 0; position: relative; } .workspace-node-content { display: flex; align-items: center; gap: 2ch; justify-content: end; flex: 1; padding: 0.3lh 1ch 0 2ch; border-radius: 0.4ch; transition: background-color 0.2s; } .workspace-node.dragging > .workspace-node-content { opacity: 0.5; background: #e0e0e0; } .workspace-node.drag-over > .workspace-node-content { background: #d0e8ff; border: 2px dashed #2196F3; } .workspace-drag-handle { cursor: grab; color: #999; padding: 0 4px; user-select: none; } .workspace-drag-handle:active { cursor: grabbing; } .workspace-node .js-select-space { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 0.4ch; cursor: pointer; flex: 1; text-decoration: none; } .workspace-node .workspace-icon { line-height: 1; } .workspace-node .workspace-name { flex: 1; } .workspace-node .workspace-count { background: #ddd; padding: 2px 6px; border-radius: 10px; font-weight: bold; min-width: 20px; text-align: center; } .workspace-node .js-edit-space, .workspace-node .js-add-subspace { padding: 2px 6px; border-radius: 3px; cursor: pointer; text-decoration: none; opacity: 0.6; transition: opacity 0.2s; } .workspace-node .js-edit-space:hover, .workspace-node .js-add-subspace:hover { opacity: 1; background: #e0e0e0; } .workspace-node.active > .workspace-node-content .js-select-space, .workspace-node > .workspace-node-content:hover .js-select-space { background: #f0f0f0; } .workspace-node.active .workspace-count { background: #bbb; } .boards-left-menu .menu { display: flex; flex-direction: column; gap: 0.3lh; padding-bottom: 0.3lh; } .boards-path-header { display: flex; flex-direction: column; background: #f5f5f5; border-radius: 6px; font-weight: 500; min-height: 2lh; justify-content: center; .path-left { display: flex; align-items: center; gap: 1ch; flex: 1; } .path-top { display: flex; flex: 1; justify-content: center; gap: 1ch; } .path-bottom { display: flex; align-items: stretch; justify-content: space-between; gap: 1ch; padding: 0 0.5ch; } } .multiselection-hint { background: #FFF3CD; color: #856404; border-radius: 0.4ch; padding: 0.2lh 0.5ch; font-weight: normal; border: 1px solid #FFE69C; animation: pulse 2s ease-in-out infinite; display: flex; flex: 1; font-size: 0.8em; >span { flex: 1; align-self: center; } } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0; } } .boards-path-header .path-right { display: flex; align-items: center; gap: 0.5lh; } .boards-path-header .path-right button { margin: 0; } .boards-path-header .path-icon { } .boards-path-header .path-text { color: #333; } .boards-path-header .board-header-btn { min-width: 4ch; min-height: 4ch; display: flex; justify-content: center; align-self: center; align-items: center; } .boards-path-header .board-header-btn:hover { background: #f0f0f0; border-color: #bbb; } .boards-path-header .board-header-btn.js-multiselection-activate { &.emphasis { background: #2196F3; color: #fff; border-color: #2196F3; box-shadow: 0 2px 8px rgba(33, 150, 243, 0.5); } font-weight: bold; align-self: stretch; align-items: center; display: flex; justify-content: center; flex: 1; min-width: 4ch; font-size: 1em; border-radius: 0.6ch; } .boards-path-header .board-header-btn.emphasis:hover { background: #1976D2; box-shadow: 0 3px 12px rgba(33, 150, 243, 0.7); } .boards-path-header .board-header-btn-close { align-self: stretch; align-items: center; display: flex; justify-content: center; flex: 1; border-radius: 0.6ch; min-width: 4ch; background: #f44336; color: #000; border: none; cursor: pointer; font-size: 1em; } .boards-path-header .board-header-btn-close:hover { background: #d32f2f; } .board-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(30ch, 1fr)); grid-auto-rows: 7lh; gap: 0.5lh 0.5lh; align-items: start; } .board-list .details { height: fit-content; } .board-list .board-list-item-name .viewer { min-height: 0; } .board-list .board-list-item-name p { margin: 0; } .board-list li.placeholder:after { content: ''; display: block; background: #ccc; border-radius: 3px; height: 106px; margin: 8px; } .board-list li.ui-sortable-helper { cursor: grabbing; transform: rotate(4deg); display: block !important; } .board-list li.starred .is-star-active, .board-list li.starred .is-not-star-active { opacity: 1; color: #ffd700; } /* Show star icon on hover even for non-starred boards */ .board-list li:hover .is-star-active, .board-list li:hover .is-not-star-active { opacity: 1; } .board-list { .js-board, .js-add-board { display: flex; overflow: hidden; background-color: inherit; min-height: 4lh !important; min-width: min-content; height: 100%; /* Inherit board color from parent li.js-board */ color: #f6f6f6; border-radius: 0.5ch; /* No border-radius - parent .js-board has it */ font-weight: 700; position: relative; text-decoration: none; overflow-wrap: break-word; box-sizing: border-box; justify-content: center; align-items: stretch; >a { display: flex; align-items: center; justify-content: stretch; flex: 1; } } .board-list-item { display: flex; text-align: center; justify-content: center; align-items: center; gap: 1ch; flex: 1; padding: 0 1ch; } } .board-list .board-list-item .board-card-header { display: flex; justify-content: center; align-items: center; gap: 0.3lh; } .board-list .board-list-item { font-size: var(--list-item-size); } .board-list .board-list-item .board-card-footer { display: flex; justify-content: center; box-sizing: border-box; padding: 0.1ch 0.1lh; } .board-list .board-list-item > .js-open-board { text-decoration: none; color: inherit; display: block; } .board-list .board-list-item.tile { background-size: auto; background-repeat: repeat; } .board-list .board-list-item-sub-name { color: rgba(255,255,255,0.5); display: block; font-weight: 400; line-height: 22px; } .board-list .board-list-item-desc { color: #fff; display: block; font-weight: 400; line-height: 18px; } .board-list .js-add-board .label { font-weight: normal; display: flex; align-items: center; font-size: var(--list-item-size); font-weight: bold; justify-content: center; background-color: #999; /* Darker background for better text contrast */ color: #fff; /* White text */ } .board-list .js-add-board .label i { color: #fff; /* White icon */ } .board-list .js-add-board .label:hover { background-color: #808080; /* Even darker on hover */ } .board-list .js-add-board .label:hover i { color: #fff; /* Keep icon white on hover */ } .board-list .is-star-active, .board-list .is-not-star-active { opacity: 0; transition-duration: 0.15s; transition-property: color, font-size, background; } .board-list .fa-circle { bottom: 0; position: absolute; right: 0; transition-duration: 0.15s; transition-property: color, font-size, background; } .board-list .has-overtime-card-active { color: #eb4646 !important; } .board-list .no-overtime-card-active { color: #3cb500 !important; } .board-list .is-star-active { color: #fff; } .board-list .fa-clone { line-height: 18px; transition-duration: 0.15s; transition-property: color, font-size, background; } .board-list .fa-archive { position: absolute; opacity: 0; transition-duration: 0.15s; transition-property: color, font-size, background; } .board-list li:hover a:hover .is-star-active, .board-list li:hover a:hover .fa-clone, .board-list li:hover a:hover .fa-archive, .board-list li:hover a:hover .is-not-star-active { color: #fff; } .board-list li:hover a .is-star-active, .board-list li:hover a .fa-clone, .board-list li:hover a .fa-archive, .board-list li:hover a .is-not-star-active { color: #fff; opacity: 0.75; } .board-list li:hover a .is-star-active:hover, .board-list li:hover a .fa-clone:hover, .board-list li:hover a .fa-archive:hover, .board-list li:hover a .is-not-star-active:hover { opacity: 1; } .board-list li:hover a .is-star-active, .board-list li:hover a .fa-clone, .board-list li:hover a .fa-archive, .board-list li:hover a .is-not-star-active { opacity: 1; } /* Board drag handle - always visible and positioned at top */ .board-list .board-handle { color: #fff; background: rgba(0,0,0,0.4); border-radius: 0.4ch; display: flex; align-items: center; justify-content: center; z-index: 10; transition: background-color 0.2s ease; cursor: grab; opacity: 1; user-select: none; } .board-list .board-handle:active { cursor: grabbing; } .board-list .board-handle:hover { background: rgba(255, 255, 0, 0.8) !important; color: #000; } /* used to animate checkbox when added without messing with the event/activation system */ @keyframes revealCheckBox { from { opacity: 0; } to { opacity: 1; } } .board-list .board-list-item .multi-selection-checkbox{ display: flex; align-self: center; width: 2ch; height: 2ch; } .board-list .board-list-item .multi-selection-checkbox.is-checked { background: #3cb500; border-color: #3cb500; box-shadow: 0 2px 8px rgba(60, 181, 0, 0.6); width: 2ch !important; height: 2ch !important; top: auto !important; transform: none !important; border-radius: 0.4ch !important; } .board-list .board-list-item .multi-selection-checkbox.is-checked::after { content: '✓'; color: #fff; font-weight: bold; position: absolute; left: 0.4ch; top: -0.2ch; } /* Multiselection checkbox on board items */ .board-list .board-list-item .multi-selection-checkbox:where(.active) { border: none; box-shadow: 0 0 0 3px #fff; /* get back margin from box-shadow */ background: rgba(0,0,0,0.5); outline-color: transparent; border-radius: 0.4ch; cursor: pointer; z-index: 11; align-items: center; justify-content: center; animation: 0.2s ease-out 0s 1 revealCheckBox; &:hover { background: rgba(0, 0, 0, 0.7); transform: scale(1.15) !important; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.5); } &.is-checked { background: #3cb500; border-color: #3cb500; box-shadow: 0 3px 6px #3cb500; &::after {content: '✅'; color: #fff; font-size: 1em; font-weight: bold; } } } /* Grey checkboxes when grey icons setting is enabled */ body.grey-icons-enabled .board-list .board-list-item .multi-selection-checkbox.is-checked { background: #7a7a7a; border-color: #7a7a7a; box-shadow: 0 2px 8px rgba(122, 122, 122, 0.6); } body.grey-icons-enabled .board-list.is-multiselection-active .js-board.is-checked { outline: 4px solid #7a7a7a; box-shadow: 0 4px 12px rgba(122, 122, 122, 0.4); } .board-list.is-multiselection-active .js-board.is-checked { outline: 4px solid #3cb500; outline-offset: -2px; box-shadow: 0 4px 12px rgba(60, 181, 0, 0.4); } /* Visual hint when multiselection is active */ .board-list.is-multiselection-active .board-list-item { outline: 2px dashed rgba(33, 150, 243, 0.3); } .board-backgrounds-list { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 3lh; justify-items: stretch; gap: 1ch; } .board-backgrounds-list .board-background-select { box-sizing: border-box; display: flex; position: relative; z-index: 1; } .board-backgrounds-list .board-background-select .background-box { color: #fff; display: flex; border-radius: 0.4ch; flex: 1; align-items: center; justify-content: center; gap: 1ch; font-size: 1.1em; cursor: pointer; } .board-backgrounds-list .board-background-select .background-box i.fa-check { color: #3cb500; } /* Grey check icons when grey icons setting is enabled */ body.grey-icons-enabled .board-backgrounds-list .board-background-select .background-box i.fa-check { color: #7a7a7a; } /* Prevent Grey Icons from affecting checkmarks in background color list */ body.grey-icons-enabled .checkmark-no-grey { filter: none !important; -webkit-filter: none !important; } /* Mobile view styles - applied when isMiniScreen is true (iPhone, etc.) */ .board-list.mobile-view { overflow-y: scroll !important; overflow-x: hidden; margin: 0; scrollbar-width: auto !important; scrollbar-color: #888 #f1f1f1; display: flex; flex-direction: column; align-items: stretch; margin: 0 0.5ch; gap: 0.3lh; } .board-list.mobile-view .board-list-item-sub-name { position: relative;; } .board-list.mobile-view .board-handle:hover { background: rgba(255, 255, 0, 0.8) !important; /* Yellow hover */ } /* Force scrollbar to be visible on mobile view */ .board-list.mobile-view::-webkit-scrollbar { width: 12px !important; display: block !important; visibility: visible !important; } .board-list.mobile-view::-webkit-scrollbar-track { background: #f1f1f1 !important; border-radius: 6px !important; display: block !important; visibility: visible !important; } .board-list.mobile-view::-webkit-scrollbar-thumb { background: #888 !important; border-radius: 6px !important; display: block !important; visibility: visible !important; } .board-list.mobile-view::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Hide archive and clone board buttons in mobile view */ .board-list.mobile-view .js-archive-board, .board-list.mobile-view .js-clone-board { display: none !important; } /* Change board drag handle to up-down arrow in mobile view */ .board-list.mobile-view .board-handle.fa-arrows::before { content: "↕️" !important; font-family: inherit !important; } .AllBoardTeamsOrgs { list-style-type: none; overflow: hidden; } #filterBtn, #resetBtn { display: inline; } #resetBtn.filter-reset-btn { background: #f44336; color: #000; border: none; border-radius: 0.4ch; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: background 0.2s; } #resetBtn.filter-reset-btn:hover { background: #d32f2f; } #resetBtn.filter-reset-btn .reset-icon { } .js-board { background-color: #999; /* Default gray background if no color class is applied */ border-radius: 3px; /* Rounded corners for board items */ overflow: hidden; /* Ensure children respect rounded corners */ } /* Reset background for add-board button */ .js-add-board { background-color: transparent !important; } /* Apply board colors to li.js-board parent instead of just the link */ .board-list .board-color-nephritis { background-color: #27ae60; } .board-list .board-color-pomegranate { background-color: #c0392b; } .board-list .board-color-belize { background-color: #2980b9; } .board-list .board-color-wisteria { background-color: #8e44ad; } .board-list .board-color-midnight { background-color: #2c3e50; } .board-list .board-color-pumpkin { background-color: #e67e22; } .board-list .board-color-moderatepink { background-color: #cd5a91; } .board-list .board-color-strongcyan { background-color: #00aecc; } .board-list .board-color-limegreen { background-color: #4bbf6b; } .board-list .board-color-dark { background-color: #2c3e51; } .board-list .board-color-relax { background-color: #27ae61; } .board-list .board-color-corteza { background-color: #568ba2; } .board-list .board-color-clearblue { background-color: #3498db; } .board-list .board-color-natural { background-color: #596557; } .board-list .board-color-modern { background-color: #2a80b8; } .board-list .board-color-moderndark { background-color: #2a2a2a; } .board-list .board-color-exodark { background-color: #222; } .minicard-members { display: flex; justify-content: stretch; } .minicard-lists:has(*) { margin: 0 auto; max-width: 95%; height: 100%; } .flex { display: flex; } .flex-wrap { flex-wrap: wrap; } .flex-wrap .item { margin: 2px; padding-right: 6px; text-align: center; } /* Fix multiple scrollbars issue on mobile */ @media screen and (max-width: 800px), screen and (max-device-width: 800px), screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 800px), screen and (max-width: 800px) and (orientation: portrait), screen and (max-width: 800px) and (orientation: landscape), screen and (max-device-width: 932px) and (-webkit-min-device-pixel-ratio: 3) { .wrapper { overflow: hidden; } .board-list { overflow-y: scroll !important; overflow-x: hidden !important; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: #888 #f1f1f1; } /* Force scrollbar to always be visible */ .board-list::-webkit-scrollbar { width: 12px !important; display: block !important; visibility: visible !important; } .board-list::-webkit-scrollbar-track { background: #f1f1f1 !important; border-radius: 6px !important; display: block !important; visibility: visible !important; } .board-list::-webkit-scrollbar-thumb { background: #888 !important; border-radius: 6px !important; display: block !important; visibility: visible !important; } .board-list::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Ensure scrollbar is always visible */ .board-list::-webkit-scrollbar-corner { background: #f1f1f1 !important; } /* Force scrollbar to be visible */ .board-list { scrollbar-gutter: stable; scrollbar-width: auto !important; } /* Ensure only one scrollbar is visible */ body { overflow: hidden; } #content { overflow: hidden; display: flex; flex: 1; } /* Hide archive and clone board buttons in mobile view */ .board-list .js-archive-board, .board-list .js-clone-board { display: none !important; } /* Change board drag handle to up-down arrow in mobile view */ .board-list .board-handle.fa-arrows::before { content: "↕️" !important; font-family: inherit !important; } }