// Rôle : regroupe les styles des toolboxes, outils et panneau latéral. @use "mixins"; .toolbox-head { position: relative; z-index: 30; overflow: visible; padding: var(--space-6); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: rgba(16, 20, 38, 0.76); backdrop-filter: blur(10px); } .toolbox-head.page-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; overflow: visible; border-color: transparent; background: var(--gradient-nebula), radial-gradient(circle at 86% 18%, rgba(246, 196, 83, 0.1), transparent 28%), linear-gradient(135deg, rgba(16, 20, 38, 0.98), rgba(5, 7, 17, 0.96)); box-shadow: var(--shadow-md); backdrop-filter: none; } .toolbox-head.page-hero > * { z-index: 4; } .toolbox-head-embedded.page-hero { min-height: 132px; padding: var(--space-5); background: var(--gradient-nebula), radial-gradient(circle at 86% 18%, rgba(246, 196, 83, 0.08), transparent 30%), linear-gradient(135deg, rgba(16, 20, 38, 0.94), rgba(5, 7, 17, 0.94)); box-shadow: 0 16px 36px rgba(0, 0, 0, 0.22); } .toolbox-head-embedded.page-hero::before { background: radial-gradient(circle at 100% 0%, rgba(246, 196, 83, 0.38), transparent 24%), linear-gradient(135deg, rgba(246, 196, 83, 0.28), rgba(139, 92, 246, 0.18) 52%, rgba(196, 181, 253, 0.24)); } .toolbox-head-embedded.page-hero::after { background: linear-gradient(135deg, rgba(5, 7, 17, 0.08), rgba(5, 7, 17, 0.42)), radial-gradient(circle at 82% 16%, rgba(246, 196, 83, 0.12), transparent 32%); } .toolbox-head-embedded h1 { margin-bottom: 0; font-size: clamp(1.55rem, 3vw, 2.2rem); } .toolbox-title { width: fit-content; max-width: 100%; padding: 3px 6px; border-radius: var(--radius-sm); cursor: text; } .toolbox-title-row { display: flex; align-items: center; gap: var(--space-3); } .toolbox-hero-link { display: inline-flex; align-items: center; gap: var(--space-2); width: fit-content; margin-top: var(--space-3); } .toolbox-hero-link .ui-icon { width: 18px; height: 18px; } .toolbox-icon-picker { position: relative; z-index: 70; flex: 0 0 auto; } .toolbox-icon-picker-button, .toolbox-game-icon { width: 100px; min-width: 100px; min-height: 100px; border-color: var(--color-primary-border); background: radial-gradient(circle at 50% 35%, rgba(246, 196, 83, 0.18), transparent 44%), rgba(21, 26, 48, 0.86); } .toolbox-icon-picker-button { padding: 0; } .toolbox-game-icon { display: grid; place-items: center; overflow: hidden; border: 1px solid var(--color-primary-border); border-radius: var(--radius-md); } .toolbox-icon-picker-button img, .toolbox-game-icon img { width: 72px; height: 72px; object-fit: contain; } .toolbox-game-icon img { width: 100%; height: 100%; object-fit: cover; } .toolbox-icon-picker-menu { position: absolute; top: calc(100% + 8px); left: 0; z-index: 300; display: grid; grid-template-columns: repeat(5, 42px); gap: 7px; width: max-content; max-width: min(260px, calc(100vw - 48px)); padding: 9px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(10, 13, 28, 0.99); box-shadow: var(--shadow-lg); } .toolbox-icon-picker-menu button { width: 42px; min-width: 42px; min-height: 42px; padding: 0; border-color: var(--color-border); background: rgba(21, 26, 48, 0.88); } .toolbox-icon-picker-menu button:hover { border-color: rgba(196, 181, 253, 0.32); background: linear-gradient(135deg, rgba(31, 37, 68, 0.94), rgba(18, 22, 44, 0.96)) padding-box, linear-gradient(135deg, rgba(139, 92, 246, 0.3), rgba(196, 181, 253, 0.2)) border-box; box-shadow: 0 0 12px rgba(139, 92, 246, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.05); } .toolbox-icon-picker-menu button.active { border-color: var(--color-accent-gold); background: rgba(246, 196, 83, 0.12); box-shadow: 0 0 0 2px rgba(246, 196, 83, 0.12); } .toolbox-icon-picker-menu img { width: 26px; height: 26px; object-fit: contain; } .toolbox-title:focus { background: rgba(7, 10, 24, 0.72); outline: 1px solid rgba(246, 196, 83, 0.72); outline-offset: 3px; } .tool-add-controls { position: relative; z-index: 280; display: inline-flex; justify-content: flex-end; } .tool-add-modal-button { min-height: 40px; border-top-right-radius: 0; border-bottom-right-radius: 0; } .tool-add-quick-toggle { width: 42px; min-width: 42px; min-height: 40px; justify-content: center; padding: 0; border-left: 1px solid rgba(255, 255, 255, 0.18); border-top-left-radius: 0; border-bottom-left-radius: 0; } .tool-add-quick-toggle .ui-icon { width: 18px; height: 18px; transition: transform 140ms ease; } .tool-add-quick-toggle.active .ui-icon { transform: rotate(180deg); } .tool-quick-add { position: absolute; top: calc(100% + 8px); right: 0; z-index: 300; display: grid; grid-template-columns: repeat(5, 40px); justify-content: flex-end; width: max-content; max-width: calc(100vw - 48px); gap: 6px; padding: 8px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(10, 13, 28, 0.99); box-shadow: var(--shadow-lg); opacity: 0; pointer-events: none; transform: translateY(-4px); transition: opacity 140ms ease, transform 140ms ease; } .tool-quick-add.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); } .tool-quick-add::before { content: ""; position: absolute; right: 18px; bottom: 100%; border-right: 7px solid transparent; border-bottom: 7px solid rgba(10, 13, 28, 0.99); border-left: 7px solid transparent; } .tool-quick-add::after { content: ""; position: absolute; right: 0; bottom: 100%; width: 100%; height: 8px; } .tool-quick-add-button, .tool-add-card { color: var(--color-text-primary); } .tool-quick-add-button { background: rgba(21, 26, 48, 0.72); } .modules-toolbar { display: flex; justify-content: flex-end; margin-top: var(--space-4); } .toolbox-actions-row { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: var(--space-4); } .toolbox-actions-row > div { display: flex; flex-wrap: wrap; gap: 10px; } .toolbox-actions-row > div:last-child { justify-content: flex-end; } .toolbox-preferences-row { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) auto; width: 100%; max-width: 520px; align-items: center; justify-self: end; gap: var(--space-4); margin-top: var(--space-4); padding: var(--space-4); overflow: hidden; border: 1px solid transparent; border-radius: var(--radius-lg); background: radial-gradient(circle at 100% 0%, rgba(246, 196, 83, 0.08), transparent 34%), linear-gradient(135deg, rgba(16, 20, 38, 0.84), rgba(5, 7, 17, 0.76)); color: var(--color-text-muted); font-size: var(--font-size-sm); font-weight: 800; box-shadow: var(--shadow-sm); } .toolbox-preferences-row::before { content: ""; position: absolute; inset: 0; z-index: -1; padding: 1px; border-radius: inherit; background: radial-gradient(circle at 100% 0%, rgba(246, 196, 83, 0.38), transparent 30%), linear-gradient(135deg, rgba(246, 196, 83, 0.26), rgba(139, 92, 246, 0.16), rgba(56, 189, 248, 0.18)); @include mixins.border-mask; } .toolbox-preferences-row .eyebrow { margin-bottom: 4px; font-size: 0.68rem; } .toolbox-preferences-row strong { display: block; color: var(--color-text-primary); font-size: var(--font-size-sm); } .toolbox-preferences-row + .cards { margin-top: 0; } .toast-position-switch { position: relative; display: inline-grid; grid-template-columns: repeat(2, 32px); width: 74px; min-height: 38px; align-items: center; justify-items: center; gap: 0; padding: 3px 4px; border-color: rgba(165, 180, 252, 0.12); border-radius: var(--radius-pill); background: rgba(7, 10, 24, 0.32); color: var(--color-text-secondary); } .toast-position-switch::before { content: ""; position: absolute; top: 3px; bottom: 3px; left: 4px; width: 30px; border: 1px solid rgba(246, 196, 83, 0.3); border-radius: 50%; background: linear-gradient(135deg, rgba(246, 196, 83, 0.1), rgba(139, 92, 246, 0.08)), rgba(21, 26, 48, 0.58); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); transition: transform var(--duration-fast) var(--ease-standard); } .toast-position-switch[data-position="right"]::before { transform: translateX(32px); } .toast-position-switch span { position: relative; z-index: 1; display: inline-grid; width: 30px; height: 30px; place-items: center; justify-self: center; align-self: center; border-radius: 50%; } .toast-position-switch .ui-icon { width: 16px; height: 16px; } .toast-position-switch:hover { border-color: rgba(196, 181, 253, 0.24); color: var(--color-text-primary); } .modules { align-items: start; } .modules[data-layout-cols="1"] { grid-template-columns: 1fr; } .modules[data-layout-cols="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } .module-column { display: grid; gap: var(--space-4); align-content: start; } .module { position: relative; contain: paint; overflow: hidden; border-color: transparent; background: rgba(16, 20, 38, 0.42); box-shadow: var(--shadow-sm); @include mixins.gold-panel-frame(true); } .module > * { position: relative; z-index: 1; } .module:hover { transform: none; border-color: transparent; background: rgba(16, 20, 38, 0.42); box-shadow: var(--shadow-sm), 0 0 14px rgba(139, 92, 246, 0.14), 0 0 24px rgba(196, 181, 253, 0.08); } .module:hover::before { background: linear-gradient(135deg, rgba(139, 92, 246, 0.42), rgba(196, 181, 253, 0.28)); } .module:hover::after { background: radial-gradient(circle at calc(100% - var(--radius-lg)) calc(100% - var(--radius-lg)), rgba(196, 181, 253, 0.5) 0 18px, transparent 27px), linear-gradient(90deg, transparent 0 30%, rgba(139, 92, 246, 0.08) 42%, rgba(139, 92, 246, 0.32) 72%, rgba(196, 181, 253, 0.5) 100%), linear-gradient(180deg, transparent 0 30%, rgba(139, 92, 246, 0.08) 42%, rgba(139, 92, 246, 0.32) 72%, rgba(196, 181, 253, 0.5) 100%); } .module.is-dragging { cursor: grabbing; opacity: 0.58; transform: scale(0.99); } .module.is-drop-target { border-color: rgba(246, 196, 83, 0.72); box-shadow: var(--shadow-sm), inset 0 3px 0 rgba(246, 196, 83, 0.8); } .module.is-drop-target.drop-after { box-shadow: var(--shadow-sm), inset 0 -3px 0 rgba(246, 196, 83, 0.8); } .module header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-4); border-bottom: 1px solid var(--color-border); } .module header > div { display: flex; align-items: center; gap: 10px; } .module header h2 { margin: 0; font-size: 17px; } .module-content { min-width: 0; } .module-content.is-scrollable { max-height: 450px; overflow-y: auto; overscroll-behavior: contain; } .layout-switch { display: inline-grid; grid-template-columns: repeat(2, 38px); gap: 4px; padding: 4px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(5, 7, 17, 0.48); } .layout-switch button { min-height: 34px; align-items: center; justify-content: center; padding: 0; border-color: transparent; background: transparent; color: var(--color-text-muted); font-weight: 900; } .layout-switch button:hover { border-color: rgba(196, 181, 253, 0.22); background: rgba(21, 26, 48, 0.5); color: var(--color-text-primary); box-shadow: none; } .layout-switch button.active { border-color: rgba(246, 196, 83, 0.34); background: linear-gradient(135deg, rgba(72, 43, 160, 0.96), rgba(45, 52, 146, 0.94)) padding-box, linear-gradient(135deg, rgba(246, 196, 83, 0.66), rgba(139, 92, 246, 0.36)) border-box; color: white; box-shadow: var(--shadow-primary); } .module-drag-handle { display: inline-grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; padding: 0; border-color: transparent; background: transparent; color: var(--color-text-muted); cursor: grab; opacity: 0.62; touch-action: none; user-select: none; } .module-drag-handle .ui-icon { width: 18px; height: 18px; } .module:hover .module-drag-handle, .module:focus-within .module-drag-handle { opacity: 1; } .module-drag-handle:active { cursor: grabbing; } .module-title { min-width: 80px; max-width: 100%; padding: 4px 6px; border-radius: var(--radius-sm); cursor: text; } .module-title:focus { background: rgba(7, 10, 24, 0.72); outline: 1px solid rgba(246, 196, 83, 0.72); outline-offset: 2px; } .module-edit-button, .module-delete-button { flex: 0 0 40px; } .module-edit-button { color: var(--color-text-secondary); } .module-scroll-button { display: inline-grid; grid-template-columns: 16px 30px; width: fit-content; min-height: 40px; flex: 0 0 auto; align-items: center; gap: 7px; padding: 0 7px 0 10px; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-pill); background: rgba(5, 7, 17, 0.24); color: var(--color-text-secondary); } .module-scroll-button .ui-icon { width: 16px; height: 16px; } .module-scroll-button i { position: relative; display: block; width: 30px; height: 16px; border: 1px solid rgba(165, 180, 252, 0.18); border-radius: var(--radius-pill); background: rgba(7, 10, 24, 0.72); } .module-scroll-button i::before { content: ""; position: absolute; top: 50%; left: 3px; width: 10px; height: 10px; border-radius: 50%; background: var(--color-text-muted); transform: translateY(-50%); transition: left var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard); } .module-edit-button.active { border-color: var(--color-primary-border); background: var(--color-primary-soft); color: var(--color-text-primary); } .module-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: var(--radius-md); background: var(--gradient-brand); box-shadow: var(--shadow-primary); color: white; } .module-icon-svg { display: block; width: 19px; height: 19px; background: white; mask-position: center; mask-repeat: no-repeat; mask-size: contain; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; -webkit-mask-size: contain; } .module-icon-notepad { mask-image: url("/static/icons/notepad.svg"); -webkit-mask-image: url("/static/icons/notepad.svg"); } .module-icon-checklist { mask-image: url("/static/icons/checklist.svg"); -webkit-mask-image: url("/static/icons/checklist.svg"); } .module-icon-tasklist { mask-image: url("/static/icons/tasklist.svg"); -webkit-mask-image: url("/static/icons/tasklist.svg"); } .module-icon-picture { mask-image: url("/static/icons/picture.svg"); -webkit-mask-image: url("/static/icons/picture.svg"); } .module-icon-link { mask-image: url("/static/icons/link.svg"); -webkit-mask-image: url("/static/icons/link.svg"); } .module-icon-toolbox { mask-image: url("/static/icons/toolbox.svg"); -webkit-mask-image: url("/static/icons/toolbox.svg"); } .module-icon-export { mask-image: url("/static/icons/export.svg"); -webkit-mask-image: url("/static/icons/export.svg"); } .module-icon-abacus { mask-image: url("/static/icons/abacus.svg"); -webkit-mask-image: url("/static/icons/abacus.svg"); } .module-icon-calculator { mask-image: url("/static/icons/calculator.svg"); -webkit-mask-image: url("/static/icons/calculator.svg"); } .module-icon-clock { mask-image: url("/static/icons/clock.svg"); -webkit-mask-image: url("/static/icons/clock.svg"); } .module-icon-stopwatch { mask-image: url("/static/icons/stopwatch.svg"); -webkit-mask-image: url("/static/icons/stopwatch.svg"); } .module-icon-hourglass { mask-image: url("/static/icons/hourglass.svg"); -webkit-mask-image: url("/static/icons/hourglass.svg"); } .module-icon-map { mask-image: url("/static/icons/map.svg"); -webkit-mask-image: url("/static/icons/map.svg"); } .tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 6px; padding: 5px; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: rgba(5, 7, 17, 0.34); } .tabs button { display: inline-flex; min-width: 0; min-height: 36px; align-items: center; justify-content: center; gap: 8px; padding: 0 10px; border: 1px solid transparent; border-radius: calc(var(--radius-md) - 2px); background: transparent; color: var(--color-text-secondary); font-size: var(--font-size-sm); font-weight: 900; } .tabs button:hover { border-color: rgba(246, 196, 83, 0.28); background: rgba(246, 196, 83, 0.08); color: var(--color-text-primary); } .tabs button.active { border-color: rgba(246, 196, 83, 0.56); background: rgba(246, 196, 83, 0.12); color: var(--color-accent-gold); box-shadow: 0 0 18px rgba(246, 196, 83, 0.08); } .tabs .module-icon-svg { width: 16px; height: 16px; background: currentColor; } .notepad { display: block; width: calc(100% - 32px); min-height: 240px; margin: var(--space-4); padding: var(--space-4); resize: vertical; line-height: 1.6; background: rgba(5, 7, 17, 0.56); } .inline-form, .field { display: grid; gap: 10px; padding: var(--space-4); } .inline-form { grid-template-columns: 1fr auto; } .checklist-add-form { grid-template-columns: minmax(120px, 0.45fr) minmax(0, 1fr) 76px auto; } .module-add-panel { display: grid; gap: var(--space-3); padding: var(--space-4); } .module-add-panel .inline-form { padding: 0; } .text-import-actions { display: flex; justify-content: flex-end; } .text-import-actions button { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; } .text-import-actions .ui-icon { width: 17px; height: 17px; } .text-import-modal-dialog { width: min(640px, calc(100vw - 32px)); } .text-import-modal-root { z-index: 330; } .text-import-modal-dialog header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-4); } .text-import-modal-dialog h2 { margin: 0; } .text-import-modal-form { display: grid; gap: var(--space-4); } .text-import-modal-form textarea { min-height: 260px; resize: vertical; } .text-import-modal-form footer { display: flex; justify-content: flex-end; gap: 10px; } .checklist-qty-input { padding-inline: 10px; text-align: center; } input, select, textarea { min-height: 44px; padding: 0 14px; outline: none; } textarea { padding-block: 14px; } input::placeholder, textarea::placeholder { color: var(--color-text-muted); opacity: 0.58; } input:focus, select:focus, textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.16); } .checklist { display: grid; gap: var(--space-3); margin: var(--space-4) 0 0; padding: 0 var(--space-4) var(--space-4); list-style: none; } .checklist-toolbar { display: flex; justify-content: flex-end; padding: var(--space-4) var(--space-4) 0; } .checklist-section { display: grid; gap: 8px; } .checklist-section.is-grouped { padding: 10px; border: 1px solid rgba(246, 196, 83, 0.16); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(246, 196, 83, 0.04), transparent 42%), rgba(7, 10, 24, 0.18); } .checklist-section-header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: 0 2px; } .checklist-section-header > div { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; } .checklist-section-header h3 { margin: 0; color: var(--color-accent-gold); font-size: var(--font-size-sm); } .checklist-gender-symbol { display: inline-block; margin-left: 3px; color: currentColor; font-family: "Segoe UI Symbol", "Noto Sans Symbols 2", "Noto Sans Symbols", "Apple Symbols", sans-serif; font-size: 1.18em; font-weight: 900; line-height: 1; text-shadow: 0 0 0 currentColor, 0 0 4px rgba(246, 196, 83, 0.22); transform: translateY(1px); } .checklist-section.is-complete .checklist-section-header h3 { color: var(--color-text-muted); text-decoration: line-through; } .checklist-section-header > div > span { flex: 0 0 auto; padding: 3px 9px; border: 1px solid rgba(246, 196, 83, 0.22); border-radius: var(--radius-pill); background: rgba(246, 196, 83, 0.08); color: var(--color-text-secondary); font-size: var(--font-size-xs); font-weight: 800; } .timer-alert-mode-switch { display: inline-flex; width: fit-content; align-items: center; opacity: 0.78; } .checklist-complete-mode-button, .timer-alert-mode-button { display: inline-grid; width: 36px; min-width: 36px; min-height: 34px; place-items: center; padding: 0; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: 0; background: rgba(5, 7, 17, 0.24); color: var(--color-text-secondary); font-size: var(--font-size-xs); font-weight: 800; } .checklist-complete-mode-button:first-child, .timer-alert-mode-button:first-child { border-radius: var(--radius-pill) 0 0 var(--radius-pill); } .checklist-complete-mode-button:last-child, .timer-alert-mode-button:last-child { border-radius: 0 var(--radius-pill) var(--radius-pill) 0; } .checklist-complete-mode-button + .checklist-complete-mode-button, .timer-alert-mode-button + .timer-alert-mode-button { margin-left: -1px; } .checklist-complete-mode-button .ui-icon, .timer-alert-mode-button .ui-icon { width: 16px; height: 16px; } .timer-alert-mode-button { width: 24px; min-width: 24px; min-height: 26px; border-color: rgba(165, 180, 252, 0.08); background: rgba(5, 7, 17, 0.26); color: var(--color-text-muted); } .timer-alert-mode-button .ui-icon { width: 13px; height: 13px; } .checklist-section-collapse-button { display: inline-grid; width: 30px; min-width: 30px; min-height: 30px; place-items: center; padding: 0; border: 1px solid rgba(246, 196, 83, 0.28); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(246, 196, 83, 0.12), rgba(139, 92, 246, 0.08)) padding-box, linear-gradient(135deg, rgba(246, 196, 83, 0.3), rgba(196, 181, 253, 0.18)) border-box; color: #fff; } .checklist-section-collapse-button .ui-icon { width: 16px; height: 16px; background-color: #fff; opacity: 1; filter: drop-shadow(0 0 7px rgba(255, 255, 255, 0.22)); } .checklist-section-items { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; } .checklist-item { display: grid; grid-template-columns: 1fr 42px; gap: 8px; align-items: center; } .checklist-item-main { display: flex; min-height: 42px; align-items: center; gap: 10px; padding: 0 12px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(5, 7, 17, 0.44); } .checklist input[type="checkbox"] { flex: 0 0 auto; } .checklist-item.is-complete .checklist-item-main > span { color: var(--color-text-muted); text-decoration: line-through; } .checklist-qty-controls { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; } .checklist-qty-controls button { width: 28px; min-width: 28px; min-height: 28px; padding: 0; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: rgba(21, 26, 48, 0.88); color: var(--color-text-secondary); line-height: 1; } .checklist-qty-current { display: inline-flex; align-items: center; justify-content: center; gap: 3px; color: var(--color-text-secondary); } .checklist-qty-current input { width: max(18px, calc((var(--qty-current-digits, 1) * 0.72rem) + 8px)); min-height: 28px; padding: 0 4px; border: 1px solid transparent; background: transparent; color: var(--color-text-primary); text-align: right; -moz-appearance: textfield; } .checklist-qty-current input::-webkit-outer-spin-button, .checklist-qty-current input::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; } .checklist-qty-current input:hover, .checklist-qty-current input:focus { border-color: rgba(246, 196, 83, 0.34); background: rgba(21, 26, 48, 0.42); } .checklist-qty-current span { color: var(--color-text-secondary); white-space: nowrap; } .links-add-form { grid-template-columns: minmax(120px, 0.7fr) minmax(180px, 1fr) auto; } .links-list { display: grid; gap: 10px; margin: var(--space-4); padding: 0; list-style: none; } .module-add-panel + .links-list, .module-add-panel + .checklist, .module-add-panel + .task-planner-list, .module-add-panel + .counters-grid { margin-top: 0; } .task-planner-module { display: grid; gap: var(--space-4); padding: var(--space-4); } .task-planner-topbar { display: grid; gap: 10px; align-items: stretch; } .task-planner-topbar .inline-form { padding: 0; } .task-planner-global-controls { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; } .task-planner-settings-toggle, .task-planner-dropdown-button, .task-planner-settings-button { display: inline-grid; width: 34px; min-width: 34px; min-height: 34px; place-items: center; padding: 0; border: 1px solid rgba(165, 180, 252, 0.1); border-radius: var(--radius-md); background: rgba(21, 26, 48, 0.76); color: var(--color-text-secondary); } .task-planner-settings-toggle { grid-template-columns: 16px minmax(0, auto); width: auto; max-width: 100%; padding: 0 12px; gap: 8px; } .task-planner-settings-toggle span { overflow: hidden; font-size: var(--font-size-xs); font-weight: 900; text-overflow: ellipsis; white-space: nowrap; } .task-planner-settings-toggle .ui-icon, .task-planner-dropdown-button .ui-icon, .task-planner-settings-button .ui-icon { width: 16px; height: 16px; } .task-planner-clear-completed-button { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; gap: 8px; padding: 0 12px; white-space: nowrap; } .task-planner-clear-completed-button .ui-icon { width: 15px; height: 15px; } .task-planner-settings { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(110px, 0.72fr); gap: 10px; align-items: end; padding: 12px; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(139, 92, 246, 0.06), transparent 58%), rgba(7, 10, 24, 0.34); } .task-planner-settings-actions { display: flex; grid-column: 1 / -1; justify-content: flex-end; } .task-planner-settings label, .task-planner-weekly-override { display: grid; gap: 6px; min-width: 0; } .task-planner-settings span, .task-planner-weekly-override span, .task-planner-relations > span { color: var(--color-text-secondary); font-size: var(--font-size-xs); font-weight: 900; text-transform: uppercase; } .task-planner-settings select, .task-planner-settings input, .task-planner-add-form select, .task-planner-type-select, .task-planner-weekly-override select, .task-planner-relations select { width: 100%; border: 1px solid var(--color-border); border-radius: var(--radius-md); background-color: rgba(15, 23, 42, 0.64); color: var(--color-text-primary); } .task-planner-settings select option, .task-planner-add-form select option, .task-planner-type-select option, .task-planner-weekly-override select option, .task-planner-relations select option { background: #11182f; color: var(--color-text-primary); } .task-planner-add-form { grid-template-columns: minmax(0, 1fr) minmax(120px, 0.36fr) auto; } .task-planner-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; } .task-planner-child-list { position: relative; gap: 8px; margin-top: 8px; padding-left: 22px; } .task-planner-child-list::before { content: ""; position: absolute; top: -4px; bottom: 15px; left: 7px; width: 1px; background: linear-gradient(180deg, rgba(246, 196, 83, 0.46), rgba(139, 92, 246, 0.18)); } .task-planner-child-list > .task-planner-item { position: relative; } .task-planner-hidden-parent-children { position: relative; display: grid; min-width: 0; } .task-planner-hidden-parent-children > .task-planner-child-list { margin-top: 0; } .task-planner-child-list > .task-planner-item::before, .task-planner-child-list > .task-planner-hidden-parent-children::before { content: ""; position: absolute; top: 25px; left: -15px; width: 11px; height: 1px; background: rgba(246, 196, 83, 0.46); } .task-planner-empty { padding: var(--space-4); border: 1px dashed rgba(165, 180, 252, 0.18); border-radius: var(--radius-md); color: var(--color-text-muted); text-align: center; } .task-planner-category-section { display: grid; gap: 8px; padding: 10px; border: 1px solid rgba(246, 196, 83, 0.16); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(246, 196, 83, 0.04), transparent 42%), rgba(7, 10, 24, 0.18); } .task-planner-category-header { padding: 0 2px; } .task-planner-category-title { display: inline-flex; flex: 1 1 auto; min-width: 0; align-items: center; gap: 8px; } .task-planner-category-actions { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; } .task-planner-category-header h3 { min-width: 0; margin: 0; overflow: hidden; color: var(--color-accent-gold); font-size: var(--font-size-sm); text-overflow: ellipsis; white-space: nowrap; } .task-planner-category-actions > span { flex: 0 0 auto; padding: 3px 9px; border: 1px solid rgba(246, 196, 83, 0.22); border-radius: var(--radius-pill); background: rgba(246, 196, 83, 0.08); color: var(--color-text-secondary); font-size: var(--font-size-xs); font-weight: 800; } .task-planner-category-section.is-complete .task-planner-category-header h3 { color: var(--color-text-muted); text-decoration: line-through; } .task-planner-category-section.is-dragging { cursor: grabbing; opacity: 0.58; transform: scale(0.99); } .task-planner-category-section.is-drop-target { border-color: rgba(246, 196, 83, 0.72); box-shadow: inset 0 3px 0 rgba(246, 196, 83, 0.8); } .task-planner-category-section.is-drop-target.drop-after { box-shadow: inset 0 -3px 0 rgba(246, 196, 83, 0.8); } .task-planner-item { position: relative; display: grid; gap: 10px; padding: 10px; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: rgba(5, 7, 17, 0.36); } .task-planner-item.is-complete > .task-planner-line { opacity: 0.78; } .task-planner-item.has-missing-prerequisite { border-color: rgba(246, 196, 83, 0.34); background: linear-gradient(135deg, rgba(246, 196, 83, 0.06), transparent 44%), rgba(5, 7, 17, 0.36); } .task-planner-item.is-dragging { cursor: grabbing; opacity: 0.58; transform: scale(0.99); } .task-planner-item.is-drop-target { border-color: rgba(246, 196, 83, 0.72); box-shadow: inset 0 3px 0 rgba(246, 196, 83, 0.8); } .task-planner-item.is-drop-target.drop-after { box-shadow: inset 0 -3px 0 rgba(246, 196, 83, 0.8); } .task-planner-line { display: grid; grid-template-columns: 30px 24px minmax(0, 1fr) 134px auto auto; gap: 8px; align-items: center; } .task-planner-line > input[type="checkbox"] { justify-self: center; } .task-planner-drag-handle, .task-planner-category-drag-handle, .task-planner-delete-button { display: inline-grid; width: 30px; min-width: 30px; min-height: 30px; place-items: center; padding: 0; border: 1px solid rgba(165, 180, 252, 0.1); border-radius: var(--radius-md); background: rgba(21, 26, 48, 0.76); color: var(--color-text-secondary); } .task-planner-drag-handle:disabled { cursor: not-allowed; opacity: 0.3; } .task-planner-drag-handle .ui-icon, .task-planner-category-drag-handle .ui-icon, .task-planner-delete-button .ui-icon { width: 15px; height: 15px; } .task-planner-actions { display: inline-flex; justify-content: flex-end; gap: 6px; } .task-planner-title-input { font-weight: 800; } .task-planner-item.is-complete > .task-planner-line .task-planner-title-input { color: var(--color-text-muted); text-decoration: line-through; } .task-planner-type-select { appearance: none; -webkit-appearance: none; width: 100%; min-height: 36px; overflow: hidden; padding: 0 30px 0 10px; border-color: rgba(165, 180, 252, 0.09); text-overflow: ellipsis; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23c4b5fd' viewBox='-6.5 0 32 32'%3E%3Cpath d='M18.813 11.406l-7.906 9.906c-.75.906-1.906.906-2.625 0L.376 11.406c-.75-.938-.375-1.656.781-1.656h16.875c1.188 0 1.531.719.781 1.656z'/%3E%3C/svg%3E"), linear-gradient(135deg, rgba(139, 92, 246, 0.04), rgba(31, 41, 78, 0.08)), linear-gradient(rgba(21, 26, 48, 0.38), rgba(21, 26, 48, 0.38)); background-position: calc(100% - 10px) 50%, 0 0, 0 0; background-size: 11px 11px, auto, auto; background-repeat: no-repeat; color: var(--color-text-secondary); font-size: var(--font-size-xs); font-weight: 900; } .task-planner-type-select:hover, .task-planner-type-select:focus { border-color: rgba(196, 181, 253, 0.22); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f6c453' viewBox='-6.5 0 32 32'%3E%3Cpath d='M18.813 11.406l-7.906 9.906c-.75.906-1.906.906-2.625 0L.376 11.406c-.75-.938-.375-1.656.781-1.656h16.875c1.188 0 1.531.719.781 1.656z'/%3E%3C/svg%3E"), linear-gradient(135deg, rgba(246, 196, 83, 0.06), rgba(139, 92, 246, 0.08)), linear-gradient(rgba(21, 26, 48, 0.58), rgba(21, 26, 48, 0.58)); color: var(--color-text-primary); } .task-planner-warning { padding: 4px 8px; border: 1px solid rgba(246, 196, 83, 0.28); border-radius: var(--radius-pill); background: rgba(246, 196, 83, 0.08); color: var(--color-accent-gold); font-size: var(--font-size-xs); font-weight: 900; white-space: nowrap; } .inline-notice { display: inline-flex; width: fit-content; max-width: 100%; align-items: center; gap: 7px; padding: 5px 9px; border: 1px solid rgba(246, 196, 83, 0.28); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(246, 196, 83, 0.1), rgba(139, 92, 246, 0.08)), rgba(9, 12, 28, 0.9); box-shadow: 0 10px 24px rgba(2, 6, 23, 0.22); color: var(--color-accent-gold); font-size: var(--font-size-xs); font-weight: 900; line-height: 1.2; animation: inline-notice-in 160ms ease; } .inline-notice .ui-icon { width: 14px; height: 14px; flex: 0 0 auto; } .task-planner-notice { position: absolute; top: 48px; left: 72px; z-index: 2; pointer-events: none; } @keyframes inline-notice-in { from { opacity: 0; transform: translateY(-2px); } to { opacity: 1; transform: translateY(0); } } .task-planner-description-panel, .task-planner-task-settings { margin-left: 62px; } .task-planner-description-panel { display: grid; gap: 10px; } .task-planner-category-field, .task-planner-description-field { display: grid; gap: 6px; min-width: 0; } .task-planner-category-field span, .task-planner-description-field span { color: var(--color-text-secondary); font-size: var(--font-size-xs); font-weight: 900; text-transform: uppercase; } .task-planner-category-field input { width: 100%; } .task-planner-category-field.is-disabled span { color: rgba(148, 163, 184, 0.72); } .task-planner-category-field.is-disabled input, .task-planner-category-field input:disabled { border-color: rgba(165, 180, 252, 0.08); background: linear-gradient(135deg, rgba(148, 163, 184, 0.05), transparent 62%), rgba(15, 23, 42, 0.42); box-shadow: none; color: rgba(203, 213, 225, 0.66); cursor: not-allowed; } .task-planner-description { min-height: 72px; resize: vertical; } .task-planner-task-settings { display: grid; grid-template-columns: minmax(130px, 0.32fr) minmax(0, 1fr); gap: 10px; align-items: start; padding: 10px; border: 1px solid rgba(165, 180, 252, 0.1); border-radius: var(--radius-md); background: rgba(7, 10, 24, 0.24); } .task-planner-relations { display: grid; grid-column: span 1; gap: 6px; min-width: 0; } .task-planner-relations > div { display: grid; gap: 5px; min-height: 28px; } .task-planner-relations em { color: var(--color-text-muted); font-size: var(--font-size-xs); font-style: normal; } .task-planner-relation-chip { display: grid; grid-template-columns: minmax(0, 1fr) auto 28px; gap: 8px; align-items: center; padding: 4px 5px 4px 9px; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: rgba(21, 26, 48, 0.46); } .task-planner-relation-chip > span { min-width: 0; overflow: hidden; color: var(--color-text-secondary); font-size: var(--font-size-xs); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; } .task-planner-relation-chip label { display: inline-flex; align-items: center; gap: 5px; color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: 800; } .task-planner-relation-chip label input { min-height: 0; } .task-planner-relation-chip button { display: inline-flex; width: 26px; min-width: 26px; min-height: 26px; align-items: center; justify-content: center; gap: 5px; padding: 0; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: rgba(21, 26, 48, 0.58); color: var(--color-text-secondary); font-size: var(--font-size-xs); font-weight: 800; } .task-planner-relation-chip button .ui-icon { width: 12px; height: 12px; } .task-planner-relations select { min-height: 34px; padding-inline: 10px; } .counters-add-form { grid-template-columns: minmax(0, 1fr) auto; } .counters-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: var(--space-4); } .counter-item { display: grid; gap: 12px; padding: 12px; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(139, 92, 246, 0.08), transparent 58%), rgba(7, 10, 24, 0.42); } .counter-item > div:first-child { display: grid; gap: 3px; min-width: 0; } .counter-item strong { color: var(--color-text-primary); font-size: 34px; font-weight: 900; line-height: 0.95; } .counter-item span { overflow: hidden; color: var(--color-text-secondary); font-size: var(--font-size-sm); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; } .counter-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; } .counter-actions button { font-weight: 900; } .calculator-module, .timer-module { display: grid; grid-template-columns: minmax(0, 35fr) minmax(0, 65fr); column-gap: var(--space-6); row-gap: var(--space-4); align-items: start; overflow: hidden; padding: var(--space-4); } .calculator-form { display: grid; grid-template-columns: 1fr; align-self: start; align-content: start; min-width: 0; min-height: 0; } .calculator-card, .tool-split-results, .timer-control-card, .timer-results-card { display: grid; width: 100%; max-width: 100%; min-width: 0; min-height: 0; overflow: hidden; padding: 12px; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(139, 92, 246, 0.08), transparent 62%), rgba(7, 10, 24, 0.3); } .timer-control-card, .timer-results-card { align-self: start; gap: var(--space-3); } .timer-tabs { width: fit-content; grid-template-columns: repeat(2, 40px); } .timer-tabs button { width: 40px; min-width: 40px; min-height: 36px; padding: 0; } .timer-control-panel { display: grid; min-height: 170px; align-content: center; gap: var(--space-2); padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: radial-gradient(circle at 100% 0%, rgba(246, 196, 83, 0.08), transparent 36%), rgba(5, 7, 17, 0.5); } .timer-countdown-form { align-content: start; } .timer-countdown-form label, .timer-control-panel > label { display: grid; gap: 7px; } .timer-countdown-form input, .timer-countdown-form select, .timer-control-panel input { width: 100%; } .timer-countdown-form select { appearance: none; -webkit-appearance: none; overflow: hidden; padding-right: 34px; border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-text-primary); text-overflow: ellipsis; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='-6.5 0 32 32'%3E%3Cpath d='M18.813 11.406l-7.906 9.906c-.75.906-1.906.906-2.625 0L.376 11.406c-.75-.938-.375-1.656.781-1.656h16.875c1.188 0 1.531.719.781 1.656z'/%3E%3C/svg%3E"), linear-gradient(135deg, rgba(139, 92, 246, 0.08), rgba(31, 41, 78, 0.12)), linear-gradient(rgba(15, 23, 42, 0.72), rgba(15, 23, 42, 0.72)); background-position: calc(100% - 14px) 50%, 0 0, 0 0; background-size: 12px 12px, auto, auto; background-repeat: no-repeat; } .timer-countdown-form select option { background: #11182f; color: var(--color-text-primary); } .timer-countdown-form select, .task-planner-settings select, .task-planner-add-form select, .task-planner-type-select, .task-planner-weekly-override select, .task-planner-relations select { appearance: none; -webkit-appearance: none; overflow: hidden; padding-right: 34px; text-overflow: ellipsis; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23c4b5fd' viewBox='-6.5 0 32 32'%3E%3Cpath d='M18.813 11.406l-7.906 9.906c-.75.906-1.906.906-2.625 0L.376 11.406c-.75-.938-.375-1.656.781-1.656h16.875c1.188 0 1.531.719.781 1.656z'/%3E%3C/svg%3E"), linear-gradient(135deg, rgba(139, 92, 246, 0.04), rgba(31, 41, 78, 0.08)), linear-gradient(rgba(21, 26, 48, 0.38), rgba(21, 26, 48, 0.38)); background-position: calc(100% - 10px) 50%, 0 0, 0 0; background-size: 11px 11px, auto, auto; background-repeat: no-repeat; } .timer-countdown-form select:hover, .timer-countdown-form select:focus, .task-planner-settings select:hover, .task-planner-settings select:focus, .task-planner-add-form select:hover, .task-planner-add-form select:focus, .task-planner-type-select:hover, .task-planner-type-select:focus, .task-planner-weekly-override select:hover, .task-planner-weekly-override select:focus, .task-planner-relations select:hover, .task-planner-relations select:focus { border-color: rgba(196, 181, 253, 0.22); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f6c453' viewBox='-6.5 0 32 32'%3E%3Cpath d='M18.813 11.406l-7.906 9.906c-.75.906-1.906.906-2.625 0L.376 11.406c-.75-.938-.375-1.656.781-1.656h16.875c1.188 0 1.531.719.781 1.656z'/%3E%3C/svg%3E"), linear-gradient(135deg, rgba(246, 196, 83, 0.06), rgba(139, 92, 246, 0.08)), linear-gradient(rgba(21, 26, 48, 0.58), rgba(21, 26, 48, 0.58)); color: var(--color-text-primary); } .time-parts-input { display: grid; grid-template-columns: minmax(34px, 1fr) 4px minmax(34px, 1fr) 4px minmax(34px, 1fr); align-items: center; min-height: 44px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(15, 23, 42, 0.64); overflow: hidden; } .time-parts-input:focus-within { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.16); } .time-parts-input input { width: auto; min-width: 0; min-height: 42px; padding: 0; border: 0; border-radius: 0; background: transparent; text-align: center; box-shadow: none; } .time-parts-input input:focus { border-color: transparent; box-shadow: none; } .time-parts-input input:focus-visible { outline: 0; outline-offset: 0; } .time-parts-input span { color: var(--color-text-muted); font-weight: 900; text-align: center; } .timer-control-panel > span, .timer-control-panel label span { color: var(--color-text-secondary); font-size: var(--font-size-sm); font-weight: 900; } .timer-control-panel strong { color: var(--color-text-primary); min-width: 0; overflow: hidden; font-weight: 950; line-height: 0.95; } .timer-value { display: inline-flex; min-width: 0; align-items: baseline; gap: 0.16em; font-variant-numeric: tabular-nums; letter-spacing: 0; white-space: nowrap; } .timer-value > span { min-width: 0; } .timer-control-panel .timer-value.is-compact { max-width: 100%; } .timer-value small { color: var(--color-text-secondary); font-size: inherit; font-weight: 900; line-height: 1; flex: 0 0 auto; } .timer-value.is-compact small { display: inline-block; font-size: 0.5em; transform: translateY(-0.08em); } .timer-value.is-compact { font-size: clamp(1.45rem, 2.25vw, 2rem); } .timer-control-panel p, .timer-results-card p { margin: 0; } .timer-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); } .timer-action-button, .timer-actions .danger { display: inline-flex; width: 40px; min-width: 40px; min-height: 40px; align-items: center; justify-content: center; padding: 0; } .timer-list-item.is-expired { opacity: 0.78; } .timer-entry-meta { display: flex; grid-column: 1 / -2; flex-wrap: wrap; min-width: 0; gap: 4px 8px; margin: 0; padding: 1px 10px 0; opacity: 0.68; } .timer-entry-summary .timer-value, .timer-entry-value .timer-value { color: var(--color-text-primary); font-size: var(--font-size-md); font-weight: 900; } .timer-entry-summary { min-width: 0; cursor: pointer; } .timer-entry-line { display: grid; grid-template-columns: max-content minmax(0, 1fr); width: 100%; max-width: 100%; min-width: 0; gap: var(--space-2); align-items: center; overflow: hidden; } .timer-entry.has-inline-reset .timer-entry-line { grid-template-columns: max-content minmax(0, 1fr) auto; } .timer-entry.has-inline-controls .timer-entry-line { grid-template-columns: max-content minmax(0, 1fr) auto; } .timer-entry.has-single-action { grid-template-columns: minmax(0, 1fr) 34px; } .tool-split-entry-list li.is-editing > .timer-entry.has-single-action { grid-template-columns: auto minmax(0, 1fr) 34px; } .timer-inline-reset { width: 26px; min-width: 26px; min-height: 26px; padding: 0; border-color: rgba(165, 180, 252, 0.08); border-radius: var(--radius-sm); background: rgba(5, 7, 17, 0.26); color: var(--color-text-muted); } .timer-inline-reset .ui-icon { width: 14px; height: 14px; } .timer-inline-controls { display: inline-flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 4px; } .timer-entry-line > span:nth-child(2) { min-width: 0; overflow: hidden; color: var(--color-text-secondary); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; } .timer-lap-label { font-weight: 700; } .timer-lap-label::placeholder { color: rgba(229, 235, 255, 0.72); } .timer-entry-meta span { color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: 700; } .timer-list-item em { color: var(--color-text-muted); font-size: var(--font-size-xs); font-style: normal; font-weight: 700; } .timer-results-card { min-height: 260px; } .timer-results-card.is-scrollable { max-height: 450px; overflow: hidden; } .calculator-card { gap: 10px; align-self: start; align-content: start; } .calculator-form label, .calculator-result { display: grid; width: 100%; min-width: 0; gap: 7px; } .calculator-card > *, .calculator-form input { width: 100%; min-width: 0; max-width: 100%; } .calculator-form label span, .calculator-result span, .tool-split-root-button { color: var(--color-text-secondary); font-size: var(--font-size-sm); font-weight: 700; } .calculator-result { min-height: 72px; justify-content: stretch; padding: 12px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: radial-gradient(circle at 100% 0%, rgba(246, 196, 83, 0.08), transparent 36%), rgba(5, 7, 17, 0.56); } .calculator-result strong { color: var(--color-text-primary); font-size: clamp(1.55rem, 3vw, 2.15rem); font-weight: 900; line-height: 0.95; text-align: right; } .tool-split-results { grid-template-rows: auto minmax(0, 1fr); gap: var(--space-3); overflow: visible; background: linear-gradient(135deg, rgba(139, 92, 246, 0.045), transparent 62%), rgba(7, 10, 24, 0.22); } .calculator-saved.is-scrollable { height: var(--calculator-scroll-height, auto); max-height: var(--calculator-scroll-height, none); overflow: hidden; } .tool-split-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; justify-content: flex-end; min-width: 0; } .tool-split-root-button { width: fit-content; min-height: 34px; padding: 0 12px; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: rgba(5, 7, 17, 0.24); } .tool-split-action-button, .tool-split-entry > button:not(.tool-split-entry-summary, .tool-split-entry-value), .counter-actions button, .link-item button { display: inline-flex; width: 34px; min-width: 34px; min-height: 34px; align-items: center; justify-content: center; padding: 0; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: rgba(21, 26, 48, 0.88); color: var(--color-text-secondary); } .tool-split-action-button:disabled { cursor: not-allowed; opacity: 0.48; } .tool-split-action-button .ui-icon { width: 16px; height: 16px; } .tool-split-scroll-toggle { display: inline-grid; grid-template-columns: 18px 34px; width: fit-content; min-height: 34px; align-items: center; gap: 8px; padding: 0 6px 0 10px; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-pill); background: rgba(5, 7, 17, 0.24); color: var(--color-text-secondary); font-size: var(--font-size-sm); font-weight: 800; } .tool-split-scroll-toggle .ui-icon { width: 16px; height: 16px; } .tool-split-scroll-toggle i { position: relative; display: block; width: 34px; height: 18px; border: 1px solid rgba(165, 180, 252, 0.18); border-radius: var(--radius-pill); background: rgba(7, 10, 24, 0.72); } .tool-split-scroll-toggle i::before { content: ""; position: absolute; top: 50%; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: var(--color-text-muted); transform: translateY(-50%); transition: left var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard); } .tool-split-root-button { margin-right: auto; } .tool-split-root-button:hover, .tool-split-action-button:hover:not(:disabled), .checklist-qty-controls button:hover, .tool-split-entry > button:not(.tool-split-entry-summary, .tool-split-entry-value, .danger):hover, .counter-actions button:not(.danger):hover, .link-item button:not(.danger):hover, .task-planner-drag-handle:hover:not(:disabled), .task-planner-category-drag-handle:hover, .task-planner-settings-toggle:hover, .task-planner-settings-toggle.active, .task-planner-dropdown-button:hover, .task-planner-dropdown-button.active, .task-planner-settings-button:hover, .task-planner-settings-button.active, .task-planner-relation-chip button:hover, .module-scroll-button:hover, .module-scroll-button.active, .tool-split-scroll-toggle:hover, .tool-split-scroll-toggle.active, .checklist-complete-mode-button:hover, .checklist-complete-mode-button.active { border-color: rgba(196, 181, 253, 0.32); background: linear-gradient(135deg, rgba(31, 37, 68, 0.94), rgba(18, 22, 44, 0.96)) padding-box, linear-gradient(135deg, rgba(139, 92, 246, 0.3), rgba(196, 181, 253, 0.2)) border-box; color: var(--color-text-primary); box-shadow: 0 0 12px rgba(139, 92, 246, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.05); } .timer-alert-mode-button:hover, .timer-alert-mode-button.active { border-color: rgba(196, 181, 253, 0.2); background: rgba(21, 26, 48, 0.42); color: var(--color-text-primary); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); } .timer-alert-mode-button.active { border-color: rgba(246, 196, 83, 0.26); background: linear-gradient(135deg, rgba(246, 196, 83, 0.08), rgba(139, 92, 246, 0.08)), rgba(21, 26, 48, 0.36); color: var(--color-accent-gold); } .timer-alert-mode-button:disabled, .timer-alert-mode-button:disabled:hover, .timer-alert-mode-button.active:disabled { cursor: not-allowed; border-color: rgba(165, 180, 252, 0.025); background: rgba(5, 7, 17, 0.08); color: rgba(148, 163, 184, 0.22); opacity: 1; box-shadow: none; } .timer-alert-mode-button:disabled .ui-icon { opacity: 0.34; } .timer-alert-mode-switch.is-blocked { opacity: 1; cursor: not-allowed; } .timer-alert-mode-switch.is-blocked .timer-alert-mode-button, .timer-alert-mode-switch.is-blocked .timer-alert-mode-button:hover, .timer-alert-mode-switch.is-blocked .timer-alert-mode-button.active, .timer-alert-mode-switch.is-blocked .timer-alert-mode-button:disabled, .timer-alert-mode-switch.is-blocked .timer-alert-mode-button:disabled:hover, .timer-alert-mode-switch.is-blocked .timer-alert-mode-button.active:disabled { cursor: not-allowed; border-color: rgba(165, 180, 252, 0.035); background: rgba(5, 7, 17, 0.1); color: rgba(148, 163, 184, 0.32); box-shadow: none; opacity: 0.2; } .timer-alert-mode-switch.is-blocked .timer-alert-mode-button .ui-icon, .timer-alert-mode-switch.is-blocked .timer-alert-mode-button:disabled .ui-icon { opacity: 1; } .checklist-section-collapse-button:hover { border-color: rgba(246, 196, 83, 0.58); background: linear-gradient(135deg, rgba(246, 196, 83, 0.18), rgba(139, 92, 246, 0.12)) padding-box, linear-gradient(135deg, rgba(246, 196, 83, 0.62), rgba(196, 181, 253, 0.32)) border-box; color: #fff; box-shadow: 0 0 10px rgba(246, 196, 83, 0.14), 0 0 16px rgba(139, 92, 246, 0.08); } .tool-split-action-button.danger, .tool-split-entry > button.danger, .counter-actions button.danger, .link-item button.danger, .task-planner-clear-completed-button.danger, .task-planner-delete-button.danger { border-color: rgba(251, 113, 133, 0.2); background: rgba(21, 26, 48, 0.88); color: var(--color-danger); } .tool-split-action-button.danger:hover:not(:disabled), .tool-split-entry > button.danger:hover, .counter-actions button.danger:hover, .link-item button.danger:hover, .task-planner-clear-completed-button.danger:hover:not(:disabled), .task-planner-delete-button.danger:hover { border-color: rgba(251, 113, 133, 0.56); background: linear-gradient(135deg, rgba(80, 25, 42, 0.72), rgba(48, 18, 34, 0.82)) padding-box, linear-gradient(135deg, rgba(251, 113, 133, 0.56), rgba(196, 181, 253, 0.16)) border-box; color: #fff; box-shadow: 0 0 14px rgba(251, 113, 133, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.06); } .tool-split-action-button.danger:hover .ui-icon, .tool-split-entry > button.danger:hover .ui-icon, .counter-actions button.danger:hover .ui-icon, .link-item button.danger:hover .ui-icon, .task-planner-clear-completed-button.danger:hover .ui-icon, .task-planner-delete-button.danger:hover .ui-icon { background-color: #fff; filter: drop-shadow(0 0 6px rgba(251, 113, 133, 0.26)); } .module-scroll-button.active, .tool-split-scroll-toggle.active, .checklist-complete-mode-button.active { border-color: rgba(246, 196, 83, 0.34); background: linear-gradient(135deg, rgba(72, 43, 160, 0.82), rgba(45, 52, 146, 0.8)) padding-box, linear-gradient(135deg, rgba(246, 196, 83, 0.58), rgba(139, 92, 246, 0.32)) border-box; color: var(--color-text-primary); } .module-scroll-button.active i, .tool-split-scroll-toggle.active i { border-color: rgba(246, 196, 83, 0.36); background: rgba(246, 196, 83, 0.12); } .module-scroll-button.active i::before, .tool-split-scroll-toggle.active i::before { left: 17px; background: var(--color-accent-gold); box-shadow: 0 0 10px rgba(246, 196, 83, 0.28); } .module-scroll-button.active i::before { left: 15px; } .tool-split-tree { display: grid; align-content: start; gap: 8px; min-width: 0; min-height: 0; } .tool-split-tree.is-scrollable { overflow-y: auto; padding-right: 8px; } .tool-split-entry-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; } .tool-split-entry-list .tool-split-entry-list { position: relative; margin-top: 6px; padding-left: 22px; } .tool-split-entry-list .tool-split-entry-list::before { content: ""; position: absolute; top: -3px; bottom: 14px; left: 7px; width: 1px; background: linear-gradient(180deg, rgba(246, 196, 83, 0.52), rgba(139, 92, 246, 0.2)); } .tool-split-entry-list .tool-split-entry-list > li { position: relative; } .tool-split-entry-list .tool-split-entry-list > li::before { content: ""; position: absolute; top: 18px; left: -15px; width: 11px; height: 1px; background: rgba(246, 196, 83, 0.52); } .tool-split-entry { display: grid; grid-template-columns: minmax(0, 1fr) 34px 34px; gap: 7px; } .tool-split-entry-list li.is-editing > .tool-split-entry { grid-template-columns: auto minmax(0, 1fr) 34px 34px; } .tool-split-entry > button { min-width: 0; min-height: 36px; padding: 0 10px; } .tool-split-entry-summary, .tool-split-entry-value { display: inline-flex; box-sizing: border-box; align-items: center; justify-content: flex-start; border: 1px solid rgba(165, 180, 252, 0.09); border-radius: var(--radius-md); border-color: rgba(165, 180, 252, 0.09); background: rgba(21, 26, 48, 0.58); color: var(--color-text-secondary); text-align: left; } .tool-split-entry-summary { width: 100%; min-height: 36px; padding: 0 10px; } .tool-split-entry-value { width: fit-content; } .tool-split-entry-value.is-readonly { min-height: 36px; padding: 0 10px; background: rgba(21, 26, 48, 0.38); cursor: default; opacity: 0.72; } .tool-split-entry-summary:hover, .tool-split-entry-value:not(.is-readonly):hover { border-color: rgba(196, 181, 253, 0.2); background: rgba(21, 26, 48, 0.72); } .tool-split-entry-summary > span { overflow: hidden; color: var(--color-text-secondary); text-overflow: ellipsis; white-space: nowrap; } .tool-split-entry-summary strong, .tool-split-entry-value strong { color: var(--color-text-primary); } .tool-split-entry-label { box-sizing: border-box; width: 100%; min-width: 0; min-height: 36px; padding: 0 10px; overflow: hidden; border-color: rgba(165, 180, 252, 0.09); background: rgba(21, 26, 48, 0.38); color: var(--color-text-secondary); text-overflow: ellipsis; white-space: nowrap; } .tool-split-entry-label:hover, .tool-split-entry-label:focus { border-color: rgba(196, 181, 253, 0.22); background: rgba(21, 26, 48, 0.58); color: var(--color-text-primary); } .tool-split-entry .ui-icon { width: 16px; height: 16px; opacity: 0.72; } .tool-split-entry > button:not(.tool-split-entry-summary, .tool-split-entry-value) { min-height: 36px; } .tool-split-entry-list li.active > .tool-split-entry > .tool-split-entry-summary, .tool-split-entry-list li.active > .tool-split-entry > .tool-split-entry-value, .tool-split-entry-list li.active > .tool-split-entry > .tool-split-entry-label { border-color: var(--color-accent-gold); background: linear-gradient(135deg, rgba(246, 196, 83, 0.09), rgba(139, 92, 246, 0.1)), rgba(7, 10, 24, 0.48); color: var(--color-text-primary); box-shadow: 0 0 0 1px rgba(246, 196, 83, 0.06); } .link-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-md); background: rgba(7, 10, 24, 0.42); } .link-item a { display: grid; min-width: 0; gap: 2px; } .link-item strong, .link-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .link-item strong { color: var(--color-text-primary); font-size: var(--font-size-sm); } .link-item span { color: var(--color-text-muted); font-size: var(--font-size-xs); } .link-item > div { display: flex; gap: 8px; } .link-item button { width: 40px; min-width: 40px; min-height: 40px; } .dropzone { display: grid; min-height: 74px; margin: var(--space-4); place-items: center; border: 1px dashed rgba(139, 92, 246, 0.52); border-radius: var(--radius-lg); background: var(--color-primary-soft); color: var(--color-text-secondary); cursor: pointer; } .dropzone:hover { border-color: var(--color-accent-gold); background: rgba(246, 196, 83, 0.1); box-shadow: 0 0 30px rgba(246, 196, 83, 0.12); } .dropzone.is-drag-over { border-color: var(--color-accent-gold); background: rgba(246, 196, 83, 0.14); box-shadow: 0 0 0 3px rgba(246, 196, 83, 0.12); } .annotation-dropzone { min-height: 58px; } .paste-target { min-height: 46px; margin: 0 var(--space-4) var(--space-4); padding: 12px 14px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(5, 7, 17, 0.44); color: var(--color-text-muted); } .paste-target:focus { border-color: var(--color-primary); color: var(--color-text-secondary); outline: none; box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.16); } .image-annotation-module { display: grid; gap: var(--space-4); } .annotation-workspace { display: grid; gap: var(--space-4); padding: var(--space-4); } .annotation-stage { position: relative; display: grid; min-width: 0; overflow: hidden; place-items: center; border: 1px solid rgba(165, 180, 252, 0.12); border-radius: var(--radius-lg); background: radial-gradient(circle at 100% 0%, rgba(246, 196, 83, 0.08), transparent 38%), rgba(5, 7, 17, 0.48); cursor: crosshair; } .annotation-media { position: relative; display: block; width: 100%; max-width: 100%; line-height: 0; } .annotation-stage-preview { cursor: default; } .annotation-preview-actions { position: absolute; top: 10px; right: 10px; z-index: 3; display: flex; gap: var(--space-2); } .annotation-preview-actions .tool-split-action-button { background: rgba(21, 26, 48, 0.94); box-shadow: 0 6px 18px rgba(5, 7, 17, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.05); } .annotation-stage-preview .annotation-marker:hover { z-index: 2; border-color: rgba(196, 181, 253, 0.9); box-shadow: 0 0 0 2px rgba(5, 7, 17, 0.72), 0 0 14px rgba(139, 92, 246, 0.34), 0 0 24px rgba(196, 181, 253, 0.22); filter: brightness(1.12); } .annotation-stage img, .annotation-media img { display: block; width: 100%; max-height: min(62vh, 620px); object-fit: contain; user-select: none; } .annotation-marker { position: absolute; display: inline-grid; left: clamp(0px, calc(var(--marker-x, 50%) - 15px), calc(100% - 30px)); top: clamp(0px, calc(var(--marker-y, 50%) - 15px), calc(100% - 30px)); width: 30px; min-width: 30px; height: 30px; min-height: 30px; place-items: center; padding: 0; border: 1px solid rgba(246, 196, 83, 0.72); border-color: rgba(246, 196, 83, 0.72); border-radius: var(--radius-pill); background: linear-gradient(135deg, rgba(72, 43, 160, 0.96), rgba(45, 52, 146, 0.94)) padding-box, linear-gradient(135deg, rgba(246, 196, 83, 0.9), rgba(196, 181, 253, 0.5)) border-box; color: #fff; font-size: var(--font-size-xs); font-weight: 900; line-height: 1; box-shadow: 0 0 0 2px rgba(5, 7, 17, 0.72), 0 0 16px rgba(246, 196, 83, 0.22); cursor: grab; touch-action: none; } .annotation-marker:active { cursor: grabbing; } .annotation-marker-list { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 0; list-style: none; } .annotation-marker-list li { display: grid; min-width: 0; grid-template-columns: 28px minmax(0, 1fr) auto; gap: var(--space-2); align-items: center; } .annotation-marker-list li > span { display: inline-grid; width: 28px; height: 28px; place-items: center; border: 1px solid rgba(246, 196, 83, 0.32); border-radius: var(--radius-pill); background: rgba(246, 196, 83, 0.1); color: var(--color-accent-gold); font-size: var(--font-size-xs); font-weight: 900; } .annotation-marker-list input { width: 100%; min-width: 0; min-height: 34px; padding: 0 10px; } .annotation-empty { margin: 0; padding: var(--space-4); } .images { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--space-3); padding: var(--space-4); } .images figure { position: relative; display: grid; gap: 8px; margin: 0; padding: 8px; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: rgba(5, 7, 17, 0.38); } .images figure.is-dragging { opacity: 0.42; } .images figure.is-drop-target { border-color: rgba(246, 196, 83, 0.72); box-shadow: 0 0 0 1px rgba(246, 196, 83, 0.26), 0 0 18px rgba(246, 196, 83, 0.12); } .images figure.is-drop-target.drop-after { border-color: rgba(112, 89, 255, 0.82); box-shadow: 0 0 0 1px rgba(164, 124, 255, 0.3), 0 0 18px rgba(112, 89, 255, 0.16); } .image-drag-handle { position: absolute; z-index: 4; top: 12px; left: 12px; display: grid; width: 32px; height: 32px; place-items: center; padding: 0; border: 1px solid rgba(138, 150, 197, 0.22); border-radius: var(--radius-md); background: rgba(9, 13, 29, 0.76); color: rgba(229, 235, 255, 0.78); cursor: grab; opacity: 0; transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), opacity var(--transition-fast), box-shadow var(--transition-fast); } .image-drag-handle .ui-icon { width: 16px; height: 16px; } .images figure:hover .image-drag-handle, .images figure:focus-within .image-drag-handle { opacity: 1; } .image-drag-handle:hover { border-color: rgba(246, 196, 83, 0.56); background: rgba(20, 28, 55, 0.86); color: var(--color-accent-gold); box-shadow: 0 0 14px rgba(246, 196, 83, 0.12); } .image-drag-handle:active { cursor: grabbing; } .image-preview { display: block; width: 100%; min-height: 0; padding: 0; border: 0; border-radius: var(--radius-md); background: transparent; } .image-preview:hover { transform: none; box-shadow: 0 0 0 2px rgba(246, 196, 83, 0.28); } .image-label, .image-label-input { min-width: 0; font-size: var(--font-size-sm); } .image-label { overflow: hidden; color: var(--color-text-secondary); font-weight: 700; text-overflow: ellipsis; white-space: nowrap; } .image-label-input { width: 100%; min-height: 36px; padding: 0 10px; border: 1px solid rgba(138, 150, 197, 0.2); border-radius: var(--radius-md); background: rgba(8, 13, 30, 0.62); color: var(--color-text); } .image-label-input::placeholder { color: rgba(185, 194, 215, 0.48); } .image-label-input:focus { border-color: rgba(246, 196, 83, 0.72); outline: none; box-shadow: 0 0 0 3px rgba(246, 196, 83, 0.14); } .images img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-md); background: var(--color-bg-deep); } .image-actions { display: flex; gap: var(--space-2); } .image-actions .image-annotate-button, .image-actions .image-delete-button { margin-top: 0; }