From dc36d3d46a295751c7b2fcc8949c8bcb8c6d849f Mon Sep 17 00:00:00 2001 From: Ali <010109ali@gmail.com> Date: Tue, 14 Jul 2026 10:23:57 +0000 Subject: [PATCH] =?UTF-8?q?fix(desk):=20full=20icon=20captions=20=E2=80=94?= =?UTF-8?q?=20no=20ellipsis,=20no=20collision?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Frappe renders the desktop icon caption as a single nowrap + ellipsis line in a 127px cell, which broke two ways on long (az/ru) module names: - main desk: .icon-caption is shrink-to-fit, so it grew past its cell and the ellipsis never triggered — the label spilled into the neighbouring icon. - folder modal: our own -webkit-line-clamp:2 + ellipsis cut the label ("…"). Captions now take the full cell width and wrap over as many lines as they need; the cell grows taller instead of overflowing. Cells widen to 152px above 1060px (below that the 6-col grid is already at the viewport edge, so the stock width stays); mobile is untouched. The folder modal card now sizes to its icon grid — Bootstrap capped the dialog width, so the widened last column hung outside it. Also carries the in-progress theme rename (modern → silk) in the JS bundle, CLAUDE.md and az locale. Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 2 +- jey_theme/locale/az.po | 138 +- jey_theme/public/css/jey_theme.bundle.css | 768 +++++- .../css-rtl/jey_theme.bundle.4LQK3EX2.css | 2180 ----------------- .../css-rtl/jey_theme.bundle.4LQK3EX2.css.map | 7 - .../css-rtl/jey_theme.bundle.ELKGAGY2.css | 2 + .../css-rtl/jey_theme.bundle.ELKGAGY2.css.map | 7 + .../dist/css/jey_theme.bundle.S6M2WDGN.css | 2180 ----------------- .../css/jey_theme.bundle.S6M2WDGN.css.map | 7 - .../dist/css/jey_theme.bundle.Y4KKUUQY.css | 2 + .../css/jey_theme.bundle.Y4KKUUQY.css.map | 7 + jey_theme/public/js/jey_theme.js | 17 +- 12 files changed, 807 insertions(+), 4510 deletions(-) delete mode 100644 jey_theme/public/dist/css-rtl/jey_theme.bundle.4LQK3EX2.css delete mode 100644 jey_theme/public/dist/css-rtl/jey_theme.bundle.4LQK3EX2.css.map create mode 100644 jey_theme/public/dist/css-rtl/jey_theme.bundle.ELKGAGY2.css create mode 100644 jey_theme/public/dist/css-rtl/jey_theme.bundle.ELKGAGY2.css.map delete mode 100644 jey_theme/public/dist/css/jey_theme.bundle.S6M2WDGN.css delete mode 100644 jey_theme/public/dist/css/jey_theme.bundle.S6M2WDGN.css.map create mode 100644 jey_theme/public/dist/css/jey_theme.bundle.Y4KKUUQY.css create mode 100644 jey_theme/public/dist/css/jey_theme.bundle.Y4KKUUQY.css.map diff --git a/CLAUDE.md b/CLAUDE.md index aff5e26..d134955 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -131,7 +131,7 @@ Idempotent setup run via `after_migrate`. Bundle entry: `jey_theme/public/js/jey_theme.js`. CSS: `jey_theme/public/css/{shared,theme_chrome,theme_modern}.css`. All four are loaded via `app_include_css` / `app_include_js` in `hooks.py` for both desk and web contexts. - Theme selector lives in `data-jey-theme` on ``, stored in `localStorage("jey-theme")`. Default: `chrome`. Set before first paint by an IIFE at the top of `jey_theme.js`. -- Themes supported: **chrome** (metallic rings), **modern** (frosted glass). No dark/light variants — each theme is self-contained. +- Themes supported: **chrome** (metallic rings), **silk** (warm ivory & champagne-gold, frosted cards). No dark/light variants — each theme is self-contained. - Theme-specific CSS MUST be wrapped in `[data-jey-theme="themename"]`. Keyframes MUST be prefixed `jey--*` to avoid cross-theme name collisions. - Shared CSS (checkboxes, icon base sizing, switcher UI, column-resize rules) lives in `shared.css` without theme selectors. diff --git a/jey_theme/locale/az.po b/jey_theme/locale/az.po index e2cf73b..e419486 100644 --- a/jey_theme/locale/az.po +++ b/jey_theme/locale/az.po @@ -8,293 +8,295 @@ msgstr "" "Project-Id-Version: Jey Theme VERSION\n" "Report-Msgid-Bugs-To: info@jeysoft.az\n" "POT-Creation-Date: 2026-07-02 19:11+0000\n" -"PO-Revision-Date: 2026-07-02 19:18+0000\n" -"Last-Translator: \n" +"PO-Revision-Date: 2026-07-04 16:44+0000\n" +"Last-Translator: \n" "Language-Team: Azerbaijani\n" +"Language: az\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" -"Language: az\n" +"X-Generator: Poedit 3.4.2\n" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Agricultural Purpose Type" -msgstr "" +msgstr "Kənd Təsərrüfatı Təyinatının Növü" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Amas Employees" -msgstr "" +msgstr "Amas Əməkdaşları" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Asan Login" -msgstr "" +msgstr "Asan Login" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Building construction and simplified tax declaration" -msgstr "" +msgstr "Bina tikintisi və sadələşdirilmiş vergi bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Business Classification" -msgstr "" +msgstr "Biznesin Təsnifatı" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Certificate on non-emergence of tax liability" -msgstr "" +msgstr "Vergi öhdəliyinin yaranmaması haqqında arayış" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Classification code" -msgstr "" +msgstr "Təsnifat kodu" #: jey_theme/public/js/jey_theme.js:751 msgid "Collapse Sidebar" -msgstr "" +msgstr "Yan Paneli Gizlə" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Declaration of mining tax" -msgstr "" +msgstr "Mədən vergisi bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Declaration of simplified tax" -msgstr "" +msgstr "Sadələşdirilmiş vergi bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Declaration of simplified tax on cash withdrawals" -msgstr "" +msgstr "Nağd pul vəsaitlərinin çıxarılmasına görə sadələşdirilmiş vergi bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Declaration of value added tax" -msgstr "" +msgstr "ƏDV bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Declaration of withholding tax on winnings" -msgstr "" +msgstr "Uduşlardan ödəmə mənbəyində tutulan vergi bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Bank Account" -msgstr "" +msgstr "E-Vergi Bank Hesabı" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Cash Register" -msgstr "" +msgstr "Onlayn Nəzarət-Kassa Aparatı" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Customers" -msgstr "" +msgstr "E-Vergi Müştəriləri" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Item" -msgstr "" +msgstr "E-Vergi Mal/Xidmət növü" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Item Group" -msgstr "" +msgstr "E-Vergi Mal/Xidmət Qrupu" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Object" -msgstr "" +msgstr "E-Vergi Obyekti" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes POS Terminal" -msgstr "" +msgstr "E-Vergi POS Terminalı" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Parties" -msgstr "" +msgstr "E-Vergi Tərəfləri" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Presented Certificate" -msgstr "" +msgstr "Təqdim Edilmiş E-Vergi Sertifikatı" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Purchase" -msgstr "" +msgstr "E-Vergi Satınalması" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Purchase Outbox" -msgstr "" +msgstr "E-Vergi Satınalma Çıxış Qutusu" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Sales" -msgstr "" +msgstr "E-Vergi Satışı" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Sales Outbox" -msgstr "" +msgstr "E-Vergi Satış Çıxış Qutusu" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Settings" -msgstr "" +msgstr "E-Vergi Tənzimləmələri" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Suppliers" -msgstr "" +msgstr "E-Vergi Təchizatçıları" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes Unit" -msgstr "" +msgstr "E-Vergi Vahidi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "E-Taxes VAT Operations" -msgstr "" +msgstr "E-Vergi ƏDV Əməliyyatları" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "EQM Codes" -msgstr "" +msgstr "EQM Kodları" #. Label of a Desktop Icon #: jey_theme/desktop_icon/employees.json msgid "Employees" -msgstr "" +msgstr "Əməkdaşlar" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Excise declaration" -msgstr "" +msgstr "Aksiz bəyannaməsi" #: jey_theme/public/js/jey_theme.js:751 msgid "Expand Sidebar" -msgstr "" +msgstr "Yan Paneli Genişləndir" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Export declaration" -msgstr "" +msgstr "İxrac bəyannaməsi" #: jey_theme/public/js/jey_theme.js:691 msgid "Full Width" -msgstr "" +msgstr "Tam En" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Housing construction simplified tax declaration" -msgstr "" +msgstr "Yaşayış Binalarının tikintisi üzrə sadələşdirilmiş vergi bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Income tax return" -msgstr "" +msgstr "Gəlir vergisi bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Income tax return of a private notary" -msgstr "" +msgstr "Xüsusi Notariusun gəlir vergisi bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Land tax declaration" -msgstr "" +msgstr "Torpaq vergisi bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Main type of activity" -msgstr "" +msgstr "Əsas fəaliyyət növü" #: jey_theme/access_control.py:102 msgid "Not Permitted" -msgstr "" +msgstr "İcazə Verilmir" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Profit tax with special tax regime" -msgstr "" +msgstr "Xüsusi vergi rejimi üzrə mənfəət vergisi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Property tax return" -msgstr "" +msgstr "Əmlak vergisi bəyannaməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Quarterly report on unemployment insurance" -msgstr "" +msgstr "İşsizlikdən sığorta üzrə rüblük hesabat" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "REFERENCE on controlled transactions" -msgstr "" +msgstr "Nəzarət olunan əməliyyatlar barədə arayış" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Real estate simplified tax declaration" -msgstr "" +msgstr "Daşınmaz əmlak üzrə sadələşdirilmiş vergi bəyannaməsi" #: jey_theme/public/js/jey_theme.js:880 jey_theme/public/js/jey_theme.js:890 msgid "Reload" -msgstr "" +msgstr "Yeniləmək" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Report on collection of state duty" -msgstr "" +msgstr "Dövlət rüsumunun tutulması barədə hesabat" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Road tax 2" -msgstr "" +msgstr "Yol vergisi 2" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Single declaration related to salaried and non-salaried work" -msgstr "" +msgstr "Muzdlu işlə əlaqədar ödənişlər və qeyri-muzdlu fəaliyyətdən gəlirlər üzrə vahid bəyannamə" #: jey_theme/public/js/jey_theme.js:723 jey_theme/public/js/jey_theme.js:988 msgid "Switch Theme" -msgstr "" +msgstr "Mövzunu Dəyiş" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Tax Article" -msgstr "" +msgstr "Vergi Maddəsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Tax Period Closing Settings" -msgstr "" +msgstr "Vergi Dövrünün Bağlanış Sazlamaları" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Tax Period Closing Wizard" -msgstr "" +msgstr "Vergi Dövrünün Bağlanması Bələdçisi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Tax Year Closing Wizard" -msgstr "" +msgstr "Vergi İlinin Bağlanması Bələdçisi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Tax return withheld at source of payment" -msgstr "" +msgstr "Ödəmə mənbəyində tutulan vergi bəyannaməsi" #. Label of a Desktop Icon #. Title of a Workspace Sidebar @@ -302,35 +304,35 @@ msgstr "" #: jey_theme/desktop_icon/taxes_az.json #: jey_theme/workspace_sidebar/taxes_az.json msgid "Taxes Az" -msgstr "" +msgstr "Vergilər Az" #: jey_theme/public/js/jey_theme.js:1036 msgid "Theme: " -msgstr "" +msgstr "Mövzu: " #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "VAT allocation" -msgstr "" +msgstr "ƏDV-nin bölüşdürülməsi" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "VAT calculated on the amount paid to a non-resident" -msgstr "" +msgstr "Qeyri-rezidentə ödənilmiş məbləğdən hesablanan ƏDV" #: jey_theme/public/js/jey_theme.js:807 msgid "Website" -msgstr "" +msgstr "Veb-sayt" #. Label of a Workspace Sidebar Item #: jey_theme/workspace_sidebar/taxes_az.json msgid "Withholding tax return of foreign subcontractors" -msgstr "" +msgstr "Xarici subpodratçılardan ödəmə mənbəyində tutulan vergi bəyannaməsi" #: jey_theme/desk_overrides.py:121 msgid "card" -msgstr "" +msgstr "kart" #: jey_theme/desk_overrides.py:133 msgid "label" -msgstr "" +msgstr "nişan" diff --git a/jey_theme/public/css/jey_theme.bundle.css b/jey_theme/public/css/jey_theme.bundle.css index 8f4eb51..1edbe8a 100644 --- a/jey_theme/public/css/jey_theme.bundle.css +++ b/jey_theme/public/css/jey_theme.bundle.css @@ -1,6 +1,6 @@ /* Bundled theme styles (was 3 raw app_include_css/web_include_css entries). One hashed bundle -> smaller preload header + auto cache-busting. - Order preserved: shared -> theme_chrome -> theme_modern. */ + Order preserved: shared -> theme_chrome -> theme_silk. */ /* ===== shared.css ===== */ /* ========================================================================== @@ -936,7 +936,80 @@ textarea.form-control:focus, } /* ========================================================================== - Desktop Modal (module icons picker) — caption overflow + clean heading + Desktop Icon captions — full label, wrapped, never truncated, never colliding + ========================================================================== + Frappe ships the caption as a fixed-height, nowrap + ellipsis line inside a + 127px cell, which breaks on long (az/ru) module names two different ways: + • main desk — .icon-caption is shrink-to-fit, so it grows PAST the cell and + the ellipsis never triggers; the label spills into the neighbouring cell. + • folder modal — the label wraps but is cut with "…". + Fix: widen the cell, let the caption take the full cell width and wrap over as + many lines as it needs, and let the cell grow taller instead of overflowing. + `:has(> .icon-caption)` keeps the caption-less mini icons inside a folder + thumbnail (rendered with in_folder=true) at their stock size. */ + +.desktop-icon:has(> .icon-caption) { + display: flex !important; + flex-direction: column !important; + align-items: center !important; + text-align: center !important; + min-width: 0 !important; + height: auto !important; + align-self: start !important; + padding: 13px 6px 12px !important; +} + +/* Wider cell = fewer wraps, but only where there is room for it: below ~1060px the + 6-column desk grid is already at the edge of the viewport, so keep frappe's width + there and let the caption take an extra line instead. Mobile (< 571px) keeps its + own smaller cell entirely. */ +@media (min-width: 571px) { + .desktop-icon:has(> .icon-caption) { + min-height: 126px !important; + } +} + +@media (min-width: 1060px) { + .desktop-icon:has(> .icon-caption) { + width: 152px !important; + } +} + +.desktop-icon:has(> .icon-caption) > .icon-caption { + width: 100% !important; + max-width: 100% !important; + height: auto !important; + min-height: 35px !important; + justify-content: flex-start !important; + overflow: visible !important; + text-wrap: wrap !important; + white-space: normal !important; +} + +.desktop-icon:has(> .icon-caption) .icon-title { + display: block !important; + width: 100% !important; + max-width: 100% !important; + -webkit-line-clamp: none !important; + line-clamp: none !important; + overflow: visible !important; + text-overflow: clip !important; + white-space: normal !important; + text-wrap: balance; + overflow-wrap: break-word !important; + word-break: normal !important; + hyphens: auto; + line-height: 1.25 !important; +} + +/* The "remove icon" x is absolutely positioned for the stock 127px cell */ +.desktop-icon:has(> .icon-caption) > .hide-button { + left: auto !important; + right: -5px !important; +} + +/* ========================================================================== + Desktop Modal (module icons picker) — grid room + clean heading ========================================================================== */ /* Give the 4-col icon grid room between cells so captions don't collide */ @@ -945,36 +1018,22 @@ textarea.form-control:focus, padding: 12px 0 !important; } -/* Each icon: constrain to its grid track and center contents */ -#desktop-modal .desktop-icon { - min-width: 0 !important; - display: flex !important; - flex-direction: column !important; - align-items: center !important; - text-align: center !important; +/* Card sizes to its icon grid (Bootstrap caps the dialog at a fixed width, so the + last column used to hang outside the card) and grows with its taller rows */ +#desktop-modal { + width: fit-content !important; + max-width: calc(100vw - 40px) !important; } -/* Caption wraps to 2 lines max, truncates with ellipsis, never overflows column */ -#desktop-modal .desktop-icon .icon-caption { +#desktop-modal .modal-content { width: 100% !important; - max-width: 100% !important; - padding: 0 4px !important; - margin-top: 14px !important; } -#desktop-modal .desktop-icon .icon-title { - width: 100% !important; - max-width: 100% !important; - display: -webkit-box !important; - -webkit-line-clamp: 2; - line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden !important; - text-overflow: ellipsis !important; - overflow-wrap: anywhere !important; - word-break: break-word !important; - line-height: 1.25 !important; - white-space: normal !important; +#desktop-modal .modal-body.desktop-modal-body { + width: auto !important; + height: auto !important; + min-width: var(--desktop-modal-width) !important; + min-height: var(--desktop-modal-height) !important; } /* Strip the themed gradient/border off the desktop-modal header — title only, no bar */ @@ -1129,7 +1188,7 @@ textarea.form-control:focus, background: linear-gradient(168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%); } -.jey-theme-preview--modern { +.jey-theme-preview--silk { border-radius: 16px; background: rgba(255, 255, 255, 0.4); backdrop-filter: blur(6px); @@ -1137,7 +1196,7 @@ textarea.form-control:focus, box-shadow: 0 2px 8px rgba(0,0,0,0.06); } -.jey-theme-preview--modern .jey-theme-preview-icon { +.jey-theme-preview--silk .jey-theme-preview-icon { position: absolute; inset: 22px; border-radius: 6px; @@ -2424,73 +2483,660 @@ textarea.form-control:focus, } } -/* ===== theme_modern.css ===== */ +/* ===== theme_silk.css ===== */ /* ========================================================================== - THEME: Modern [data-jey-theme="modern"] - Frosted glass rounded squares with indigo accents. + THEME: Silk [data-jey-theme="silk"] + Warm ivory & champagne-gold. Soft frosted cards, generous rounding, + diffuse shadows. Full-desk skin (see theme_chrome.css for the pattern). + + Background: pure CSS silk sheen for now, exposed via --jey-silk-bg so it + can later be swapped for an image with a single edit, e.g. + --jey-silk-bg: url("/assets/jey_theme/images/silk.jpg") center/cover; ========================================================================== */ -@keyframes jey-modern-glow { - 0%, 100% { opacity: 0.4; } - 50% { opacity: 0.7; } +@keyframes jey-silk-glow { + 0%, 100% { opacity: 0.35; } + 50% { opacity: 0.6; } } -/* Outer shell — frosted glass rounded square */ -[data-jey-theme="modern"] .jey-chrome { +/* ========================================================================== + Palette + CSS Variable Overrides + ========================================================================== */ + +[data-jey-theme="silk"] { + /* --- Silk tokens --- */ + --jey-gold: #c39a54; + --jey-gold-deep: #a67f3b; + --jey-gold-soft: #e6d3a8; + --jey-gold-tint: rgba(196, 160, 84, 0.12); + --jey-cream: #f4ecde; + --jey-card: #fbf8f2; + --jey-ink: #453d31; + --jey-ink-soft: #6d6252; + --jey-line: #ebe0cd; + + --jey-shadow-card: 0 6px 24px rgba(120, 100, 60, 0.11), 0 1px 4px rgba(120, 100, 60, 0.06); + --jey-shadow-hover: 0 12px 34px rgba(120, 100, 60, 0.16), 0 2px 8px rgba(120, 100, 60, 0.08); + + /* Silk background — real fabric photo with a soft warm champagne wash on + top so the near-white centre stays tinted and frosted cards separate. + The CSS-gradient fallback below is kept commented for reference. */ + --jey-silk-bg: + linear-gradient(135deg, rgba(230, 213, 182, 0.30) 0%, rgba(244, 236, 222, 0.10) 45%, rgba(226, 208, 178, 0.34) 100%), + url("/assets/jey_theme/images/silk-bg.jpg") center center / cover no-repeat; + /* --jey-silk-bg (pure-CSS fallback): + radial-gradient(ellipse 80% 65% at 12% -5%, rgba(255, 255, 255, 0.7) 0%, transparent 55%), + radial-gradient(ellipse 70% 55% at 88% 15%, rgba(246, 236, 216, 0.55) 0%, transparent 50%), + radial-gradient(ellipse 95% 75% at 75% 105%, rgba(230, 213, 182, 0.45) 0%, transparent 55%), + linear-gradient(135deg, #f2e9da 0%, #e9ddc7 45%, #e4d6bc 72%, #eee3d0 100%); */ + + /* --- Surfaces --- */ + --bg-color: #f1e8d8; + --fg-color: #fbf8f2; + --card-bg: #fbf8f2; + --subtle-accent: #f4ecde; + --subtle-fg: #efe6d5; + --fg-hover-color: #f6efe3; + --highlight-color: #f4ecde; + --navbar-bg: transparent; + --modal-bg: #fbf8f2; + --toast-bg: #fbf8f2; + --popover-bg: #fbf8f2; + --control-bg: #fbf8f2; + --control-bg-on-gray: #f1e8d8; + --awesomebar-focus-bg: #ffffff; + --disabled-control-bg: #efe6d5; + --skeleton-bg: #ece1cd; + --surface-menu-bar: #f4ecde; + --surface-white: #fbf8f2; + --surface-gray-1: #f4ecde; + --surface-gray-2: #efe6d5; + --surface-gray-3: #e9dcc6; + --surface-gray-4: #ddceb2; + --surface-modal: #fbf8f2; + --placeholder-color: #b3a58c; + + /* --- Sidebar --- */ + --sidebar-hover-color: #efe6d5; + --sidebar-active-color: #ffffff; + --sidebar-border-color: transparent; + --divider-color: #e6dcc6; + + /* --- Text --- */ + --heading-color: #453d31; + --text-color: #5a5040; + --text-neutral: #453d31; + --text-muted: #8a7d68; + --text-light: #a4977f; + --text-dark: #453d31; + --disabled-text-color: #a4977f; + --ink-gray-6: #8a7d68; + --ink-gray-7: #6d6252; + --ink-gray-8: #504733; + --ink-gray-9: #453d31; + + /* --- Borders --- */ + --border-color: #ebe0cd; + --dark-border-color: #ddceb2; + --table-border-color: #ebe0cd; + --btn-group-border-color: #ddceb2; + --outline-gray-1: #ebe0cd; + --outline-gray-2: #ddceb2; + --outline-gray-modals: #e6dcc6; + + /* --- Primary / Buttons --- */ + --primary: #c39a54; + --primary-color: #c39a54; + --brand-color: #c39a54; + --btn-primary: #c39a54; + --btn-default-bg: #fbf8f2; + --btn-default-hover-bg: #f1e8d8; + --btn-ghost-hover-bg: #efe6d5; + --border-primary: #c39a54; + + /* --- Rounding (silk = soft, generous) --- */ + --border-radius: 8px; + --border-radius-sm: 6px; + --border-radius-md: 12px; + --border-radius-lg: 16px; + --border-radius-full: 999px; + + /* --- Shadows (soft, diffuse, warm) --- */ + --shadow-xs: 0 1px 2px rgba(120, 100, 60, 0.06); + --shadow-sm: 0 2px 6px rgba(120, 100, 60, 0.07); + --shadow-base: 0 3px 10px rgba(120, 100, 60, 0.08); + --shadow-md: 0 4px 16px rgba(120, 100, 60, 0.09); + --shadow-lg: 0 8px 24px rgba(120, 100, 60, 0.11); + --shadow-xl: 0 12px 32px rgba(120, 100, 60, 0.13); + --shadow-2xl: 0 18px 44px rgba(120, 100, 60, 0.16); + --card-shadow: 0 4px 20px rgba(120, 100, 60, 0.08), 0 1px 3px rgba(120, 100, 60, 0.05); + --btn-shadow: 0 1px 2px rgba(120, 100, 60, 0.08); + --modal-shadow: 0 20px 48px rgba(90, 70, 40, 0.22); + --awesomebar-shadow: 0 4px 16px rgba(120, 100, 60, 0.1); + + /* --- Focus rings --- */ + --focus-default: 0 0 0 3px rgba(196, 160, 84, 0.25); + + /* --- Scrollbar --- */ + --scrollbar-thumb-color: #d8c8a6; + --scrollbar-track-color: #f1e8d8; + + /* --- Checkbox / Switch --- */ + --switch-bg: #d8c8a6; + --checkbox-color: #c39a54; + --checkbox-gradient: linear-gradient(180deg, #cfa863 0%, #b98f45 100%); + + /* --- Timeline --- */ + --timeline-badge-color: #c39a54; + --timeline-badge-bg: #f1e8d8; + + /* --- Date picker --- */ + --date-active-bg: #c39a54; + --date-active-text: #ffffff; + --date-range-bg: #f1e4cb; + + /* --- Progress / Misc --- */ + --progress-bar-bg: #c39a54; +} + +/* ========================================================================== + Body — Silk sheen background + ========================================================================== */ + +[data-jey-theme="silk"] body { + background: var(--jey-silk-bg) !important; + background-attachment: fixed !important; + color: var(--text-color); +} + +[data-jey-theme="silk"] .page-container, +[data-jey-theme="silk"] .layout-main-section-wrapper, +[data-jey-theme="silk"] .layout-main-section { + background: transparent !important; +} + +/* ========================================================================== + Navbar — Light, borderless, blends into silk + ========================================================================== */ + +[data-jey-theme="silk"] .navbar { + background: rgba(251, 248, 242, 0.72) !important; + backdrop-filter: blur(12px); + -webkit-backdrop-filter: blur(12px); + border-bottom: 1px solid rgba(235, 224, 205, 0.6) !important; + box-shadow: 0 1px 8px rgba(120, 100, 60, 0.05) !important; +} + +[data-jey-theme="silk"] .navbar .navbar-nav .nav-link { + color: var(--jey-ink-soft) !important; +} + +[data-jey-theme="silk"] .navbar .navbar-nav .nav-link:hover { + color: var(--jey-ink) !important; + background: var(--jey-gold-tint) !important; + border-radius: 10px; +} + +/* ========================================================================== + Awesomebar — Soft pill slot + ========================================================================== */ + +[data-jey-theme="silk"] .search-bar input, +[data-jey-theme="silk"] .navbar .search-bar .form-control { + background: rgba(255, 255, 255, 0.75) !important; + border: 1px solid var(--jey-line) !important; + box-shadow: inset 0 1px 2px rgba(120, 100, 60, 0.05) !important; + color: var(--jey-ink) !important; + border-radius: 999px !important; +} + +[data-jey-theme="silk"] .search-bar input:focus { + background: #ffffff !important; + border-color: var(--jey-gold-soft) !important; + box-shadow: 0 0 0 3px rgba(196, 160, 84, 0.18) !important; +} + +[data-jey-theme="silk"] .search-bar .search-icon { + color: var(--jey-gold-deep) !important; +} + +/* ========================================================================== + Sidebar — Cream panel, rounded white active pill + ========================================================================== */ + +[data-jey-theme="silk"] .body-sidebar-container { + background: rgba(247, 240, 227, 0.6) !important; + border-right: 1px solid rgba(235, 224, 205, 0.7) !important; + box-shadow: none !important; +} + +[data-jey-theme="silk"] .body-sidebar-container .body-sidebar, +[data-jey-theme="silk"] .body-sidebar-container .body-sidebar-top, +[data-jey-theme="silk"] .body-sidebar-container .body-sidebar-bottom, +[data-jey-theme="silk"] .body-sidebar-container .body-sidebar-cards { + background: transparent !important; +} + +[data-jey-theme="silk"] .body-sidebar .standard-sidebar-item .item-anchor { + border-radius: 12px; + transition: background 0.2s ease, box-shadow 0.2s ease; +} + +[data-jey-theme="silk"] .body-sidebar .standard-sidebar-item .item-anchor:hover { + background: rgba(255, 255, 255, 0.55) !important; +} + +[data-jey-theme="silk"] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor, +[data-jey-theme="silk"] .body-sidebar .standard-sidebar-item.selected .item-anchor { + background: #ffffff !important; + box-shadow: 0 2px 10px rgba(120, 100, 60, 0.1) !important; + border-radius: 12px; +} + +[data-jey-theme="silk"] .body-sidebar .standard-sidebar-item.active-sidebar .sidebar-item-label, +[data-jey-theme="silk"] .body-sidebar .standard-sidebar-item.selected .sidebar-item-label { + color: var(--jey-ink) !important; + font-weight: 600; +} + +[data-jey-theme="silk"] .body-sidebar .sidebar-item-icon, +[data-jey-theme="silk"] .body-sidebar .standard-sidebar-item.active-sidebar .sidebar-item-icon { + color: var(--jey-gold-deep) !important; +} + +/* Keep sidebar text neutral — gold is reserved for active/icons/accents, + not every anchor (the global `a` gold rule would otherwise bleed here). */ +[data-jey-theme="silk"] .body-sidebar-container a, +[data-jey-theme="silk"] .body-sidebar-container .sidebar-item-label, +[data-jey-theme="silk"] .body-sidebar-container .sidebar-item-control { + color: var(--text-color) !important; +} + +/* Sidebar header + context menu themed icons */ +[data-jey-theme="silk"] .sidebar-header .header-logo .jey-icon, +[data-jey-theme="silk"] .frappe-menu .menu-item-icon .jey-icon { + stroke: var(--jey-gold-deep) !important; + fill: none !important; + stroke-width: 1.7 !important; + stroke-linecap: round !important; + stroke-linejoin: round !important; +} + +/* ========================================================================== + Buttons + ========================================================================== */ + +[data-jey-theme="silk"] .btn-primary { + background: linear-gradient(180deg, #cfa863 0%, #bd9146 100%) !important; + color: #fffdf8 !important; + border: 1px solid #b0873f !important; + box-shadow: 0 2px 8px rgba(180, 140, 60, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.25) !important; + text-shadow: 0 -1px 0 rgba(120, 90, 30, 0.2); + border-radius: 10px !important; + transition: box-shadow 0.2s ease, transform 0.1s ease, background 0.2s ease !important; +} + +[data-jey-theme="silk"] .btn-primary:hover { + background: linear-gradient(180deg, #d6b170 0%, #c59a4f 100%) !important; + box-shadow: 0 4px 14px rgba(180, 140, 60, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.3) !important; +} + +[data-jey-theme="silk"] .btn-primary:active { + transform: translateY(1px); + box-shadow: 0 1px 4px rgba(180, 140, 60, 0.2), inset 0 2px 4px rgba(120, 90, 30, 0.18) !important; +} + +[data-jey-theme="silk"] .btn-default, +[data-jey-theme="silk"] .btn-secondary { + background: rgba(255, 255, 255, 0.85) !important; + border: 1px solid var(--jey-line) !important; + color: var(--jey-ink) !important; + box-shadow: 0 1px 3px rgba(120, 100, 60, 0.06) !important; + border-radius: 10px !important; + transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important; +} + +[data-jey-theme="silk"] .btn-default:hover, +[data-jey-theme="silk"] .btn-secondary:hover { + background: #ffffff !important; + border-color: var(--jey-gold-soft) !important; + box-shadow: 0 3px 10px rgba(120, 100, 60, 0.1) !important; +} + +[data-jey-theme="silk"] .btn-ghost:hover { + background: var(--jey-gold-tint) !important; +} + +/* ========================================================================== + Inputs + ========================================================================== */ + +[data-jey-theme="silk"] input.form-control:not([type="checkbox"]):not([type="radio"]), +[data-jey-theme="silk"] textarea.form-control, +[data-jey-theme="silk"] select.form-control, +[data-jey-theme="silk"] select.input-with-feedback { + background: rgba(255, 255, 255, 0.8) !important; + border: 1px solid var(--jey-line) !important; + color: var(--jey-ink) !important; + box-shadow: inset 0 1px 2px rgba(120, 100, 60, 0.04) !important; + border-radius: 10px !important; + transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease !important; +} + +[data-jey-theme="silk"] input.form-control:not([type="checkbox"]):not([type="radio"]):focus, +[data-jey-theme="silk"] textarea.form-control:focus, +[data-jey-theme="silk"] select.form-control:focus { + background: #ffffff !important; + border-color: var(--jey-gold-soft) !important; + box-shadow: 0 0 0 3px rgba(196, 160, 84, 0.18) !important; +} + +[data-jey-theme="silk"] .form-control:disabled, +[data-jey-theme="silk"] .form-control[disabled] { + background: #efe6d5 !important; + color: var(--text-light) !important; + box-shadow: none !important; +} + +[data-jey-theme="silk"] .frappe-control .control-label, +[data-jey-theme="silk"] .frappe-control label { + color: var(--jey-ink-soft) !important; +} + +/* ========================================================================== + Cards / Widgets — Soft frosted panels, generous rounding + ========================================================================== */ + +[data-jey-theme="silk"] .widget, +[data-jey-theme="silk"] .ce-block .links-widget-box, +[data-jey-theme="silk"] .ce-block .number-widget-box, +[data-jey-theme="silk"] .ce-block .chart-widget-box, +[data-jey-theme="silk"] .ce-block .shortcut-widget-box, +[data-jey-theme="silk"] .ce-block .onboarding-widget-box, +[data-jey-theme="silk"] .frappe-card { + /* Frosted glass: the "glassy" read comes from a bright, thin, CONTINUOUS + light rim around the whole perimeter (like light on the edge of a glass + pane) — not a top-only highlight. Strong blur + a milky fill keep the + surface even; the silk still whispers through. */ + background: linear-gradient(160deg, rgba(255, 255, 255, 0.46) 0%, rgba(255, 252, 245, 0.34) 55%, rgba(252, 246, 236, 0.40) 100%) !important; + backdrop-filter: blur(22px) saturate(1.2); + -webkit-backdrop-filter: blur(22px) saturate(1.2); + border: 1.5px solid rgba(255, 255, 255, 0.9) !important; + box-shadow: + 0 14px 34px rgba(74, 57, 35, 0.18), + 0 4px 10px rgba(74, 57, 35, 0.10), + inset 0 1px 1px rgba(255, 255, 255, 0.6) !important; + border-radius: 22px !important; + transition: box-shadow 0.25s ease, transform 0.2s ease !important; +} + +[data-jey-theme="silk"] .widget.onboarding-widget-box { + background: linear-gradient(160deg, rgba(255, 255, 255, 0.46) 0%, rgba(255, 252, 245, 0.34) 55%, rgba(252, 246, 236, 0.40) 100%) !important; +} + +[data-jey-theme="silk"] .ce-block .links-widget-box:hover, +[data-jey-theme="silk"] .ce-block .number-widget-box:hover, +[data-jey-theme="silk"] .ce-block .shortcut-widget-box:hover { + border-color: rgba(255, 255, 255, 1) !important; + box-shadow: + 0 22px 48px rgba(74, 57, 35, 0.24), + 0 6px 14px rgba(74, 57, 35, 0.13), + inset 0 1px 1px rgba(255, 255, 255, 0.7) !important; + transform: translateY(-3px); +} + +/* Widget titles */ +[data-jey-theme="silk"] .widget .widget-head .widget-title, +[data-jey-theme="silk"] .widget-group .widget-group-head .widget-group-title { + color: var(--jey-ink) !important; + font-weight: 600; +} + +/* Number card — big number in warm ink */ +[data-jey-theme="silk"] .number-widget-box .widget-content .number { + color: var(--jey-ink) !important; +} + +/* Shortcut icon chips — soft gold */ +[data-jey-theme="silk"] .shortcut-widget-box .indicator-pill, +[data-jey-theme="silk"] .widget .shortcut-icon { + color: var(--jey-gold-deep) !important; +} + +/* Form page + sections */ +[data-jey-theme="silk"] .form-page { + background: rgba(251, 248, 242, 0.9) !important; + border: 1px solid rgba(235, 224, 205, 0.8) !important; + box-shadow: var(--jey-shadow-card) !important; + border-radius: 16px !important; +} + +[data-jey-theme="silk"] .form-section .section-head { + color: var(--jey-ink) !important; + border-bottom: 1px solid var(--jey-line) !important; +} + +/* ========================================================================== + Charts — champagne gold line/area + ========================================================================== */ + +[data-jey-theme="silk"] .chart-container .line-chart-rect, +[data-jey-theme="silk"] .chart-container path.line-graph-path, +[data-jey-theme="silk"] .chart-container path.dataset-path { + stroke: var(--jey-gold) !important; +} + +[data-jey-theme="silk"] .chart-container .dataset-circle, +[data-jey-theme="silk"] .chart-container circle.fill { + fill: var(--jey-gold) !important; + stroke: var(--jey-gold) !important; +} + +[data-jey-theme="silk"] .chart-container path.region-fill { + fill: rgba(196, 160, 84, 0.12) !important; + stroke: none !important; +} + +/* ========================================================================== + Page Head + ========================================================================== */ + +[data-jey-theme="silk"] .page-head { + background: transparent !important; + border-bottom: none !important; + box-shadow: none !important; +} + +[data-jey-theme="silk"] .page-head .title-text, +[data-jey-theme="silk"] .page-title .title-text { + color: var(--jey-ink) !important; +} + +/* ========================================================================== + List View + ========================================================================== */ + +[data-jey-theme="silk"] .list-row-head { + background: rgba(244, 236, 222, 0.85) !important; + border-bottom: 1px solid var(--jey-line) !important; + box-shadow: none !important; + border-radius: 12px 12px 0 0; +} + +[data-jey-theme="silk"] .list-row-container .list-row { + border-bottom: 1px solid rgba(235, 224, 205, 0.7) !important; +} + +[data-jey-theme="silk"] .list-row-container:hover { + background: var(--jey-gold-tint) !important; +} + +[data-jey-theme="silk"] .layout-side-section { + border-right: 1px solid var(--jey-line) !important; +} + +/* ========================================================================== + Modals / Dialogs + ========================================================================== */ + +[data-jey-theme="silk"] .modal-content { + background: #fbf8f2 !important; + border: 1px solid var(--jey-line) !important; + box-shadow: 0 20px 48px rgba(90, 70, 40, 0.22) !important; + border-radius: 18px !important; +} + +[data-jey-theme="silk"] .modal-header { + background: transparent !important; + border-bottom: 1px solid var(--jey-line) !important; +} + +[data-jey-theme="silk"] .modal-header .modal-title { + color: var(--jey-ink) !important; +} + +[data-jey-theme="silk"] .modal-footer { + background: transparent !important; + border-top: 1px solid var(--jey-line) !important; +} + +[data-jey-theme="silk"] .modal-backdrop { + background-color: rgba(70, 55, 35, 0.4) !important; +} + +/* ========================================================================== + Dropdowns / Popovers + ========================================================================== */ + +[data-jey-theme="silk"] .dropdown-menu, +[data-jey-theme="silk"] .popover { + background: #fbf8f2 !important; + border: 1px solid var(--jey-line) !important; + box-shadow: 0 8px 24px rgba(120, 100, 60, 0.14) !important; + border-radius: 14px !important; +} + +[data-jey-theme="silk"] .dropdown-item { + color: var(--jey-ink-soft) !important; + border-radius: 8px; +} + +[data-jey-theme="silk"] .dropdown-item:hover, +[data-jey-theme="silk"] .dropdown-item:focus { + background: var(--jey-gold-tint) !important; + color: var(--jey-ink) !important; +} + +[data-jey-theme="silk"] .dropdown-divider { + border-top-color: var(--jey-line) !important; +} + +/* ========================================================================== + Tabs + ========================================================================== */ + +[data-jey-theme="silk"] .form-tabs .nav-link { + color: var(--jey-ink-soft) !important; +} + +[data-jey-theme="silk"] .form-tabs .nav-link:hover { + color: var(--jey-ink) !important; + background: var(--jey-gold-tint) !important; + border-radius: 8px; +} + +[data-jey-theme="silk"] .form-tabs .nav-link.active { + color: var(--jey-gold-deep) !important; +} + +[data-jey-theme="silk"] .form-tabs .nav-link::after { + background: var(--jey-gold) !important; +} + +/* ========================================================================== + Links / Scrollbars + ========================================================================== */ + +[data-jey-theme="silk"] a { + color: var(--jey-gold-deep); +} + +[data-jey-theme="silk"] a:hover { + color: #8c6b2c; +} + +[data-jey-theme="silk"] ::-webkit-scrollbar { + width: 10px; + height: 10px; +} + +[data-jey-theme="silk"] ::-webkit-scrollbar-track { + background: #f1e8d8; +} + +[data-jey-theme="silk"] ::-webkit-scrollbar-thumb { + background: #dccba4; + border-radius: 5px; + border: 2px solid #f1e8d8; +} + +[data-jey-theme="silk"] ::-webkit-scrollbar-thumb:hover { + background: #cdb885; +} + +/* ========================================================================== + Desktop workspace icons — frosted glass square, gold icon + ========================================================================== */ + +[data-jey-theme="silk"] .jey-chrome { width: 72px; height: 72px; border-radius: 22px; position: relative; - background: rgba(255, 255, 255, 0.45); + background: rgba(255, 255, 255, 0.55); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); - border: 1px solid rgba(255, 255, 255, 0.6); - box-shadow: 0 4px 16px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04), inset 0 1px 0 rgba(255,255,255,0.8); + border: 1px solid rgba(255, 255, 255, 0.7); + box-shadow: 0 4px 16px rgba(120, 100, 60, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.85); transition: all 0.3s ease; } -[data-jey-theme="modern"] .desktop-icon:hover .jey-chrome { - box-shadow: 0 8px 24px rgba(0,0,0,0.1), 0 2px 6px rgba(0,0,0,0.06), inset 0 1px 0 rgba(255,255,255,0.9); +[data-jey-theme="silk"] .desktop-icon:hover .jey-chrome { + box-shadow: 0 8px 24px rgba(120, 100, 60, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.9); transform: translateY(-2px); } -/* Hide chrome ring layers */ -[data-jey-theme="modern"] .jey-chrome-ring, -[data-jey-theme="modern"] .jey-chrome-gap, -[data-jey-theme="modern"] .jey-chrome-ring-inner { +[data-jey-theme="silk"] .jey-chrome-ring, +[data-jey-theme="silk"] .jey-chrome-gap, +[data-jey-theme="silk"] .jey-chrome-ring-inner { display: none; } -/* Face fills rounded square */ -[data-jey-theme="modern"] .jey-chrome-face { +[data-jey-theme="silk"] .jey-chrome-face { position: absolute; inset: 0; border-radius: 22px; overflow: hidden; background: transparent; box-shadow: none; display: flex; align-items: center; justify-content: center; } -/* Bottom glow accent */ -[data-jey-theme="modern"] .jey-face-glow { +[data-jey-theme="silk"] .jey-face-glow { position: absolute; bottom: -4px; left: 16px; right: 16px; height: 20px; border-radius: 50%; - background: radial-gradient(ellipse, rgba(99, 102, 241, 0.35) 0%, transparent 70%); - animation: jey-modern-glow 4s ease-in-out infinite; + background: radial-gradient(ellipse, rgba(196, 160, 84, 0.4) 0%, transparent 70%); + animation: jey-silk-glow 4s ease-in-out infinite; pointer-events: none; z-index: 0; } -/* Top glass highlight */ -[data-jey-theme="modern"] .jey-face-reflection { +[data-jey-theme="silk"] .jey-face-reflection { position: absolute; top: 0; left: 0; right: 0; height: 50%; border-radius: 22px 22px 0 0; - background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%); + background: linear-gradient(180deg, rgba(255, 255, 255, 0.55) 0%, transparent 100%); pointer-events: none; z-index: 1; animation: none; } -/* Icon — indigo accent */ -[data-jey-theme="modern"] .jey-chrome-face .jey-icon { +[data-jey-theme="silk"] .jey-chrome-face .jey-icon { width: 26px !important; height: 26px !important; - stroke: #4f46e5 !important; fill: none !important; + stroke: #b58f47 !important; fill: none !important; stroke-width: 1.6 !important; stroke-linecap: round !important; stroke-linejoin: round !important; - filter: drop-shadow(0 1px 2px rgba(79, 70, 229, 0.2)) !important; + filter: drop-shadow(0 1px 2px rgba(180, 140, 60, 0.25)) !important; position: relative; z-index: 2; } -/* Rounded square container */ -[data-jey-theme="modern"] .icon-container.jey-chrome-done { +[data-jey-theme="silk"] .icon-container.jey-chrome-done { border-radius: 22px !important; } diff --git a/jey_theme/public/dist/css-rtl/jey_theme.bundle.4LQK3EX2.css b/jey_theme/public/dist/css-rtl/jey_theme.bundle.4LQK3EX2.css deleted file mode 100644 index a72a963..0000000 --- a/jey_theme/public/dist/css-rtl/jey_theme.bundle.4LQK3EX2.css +++ /dev/null @@ -1,2180 +0,0 @@ -/* ../../../../../tmp/tmp-16010-XQ467tJ01y5r/jey_theme/jey_theme/public/css/jey_theme.bundle.css */ -.splash img { - content: url(/assets/jey_theme/images/preloader.png); - max-width: 64px !important; - width: 64px !important; - height: auto; -} -.desktop-icon[data-id=Organization], -.desktop-icon[data-id=ERPNext] { - display: none !important; -} -.desktop-icon[data-id=Quality], -.desktop-icon[data-id="Quality Management"], -.desktop-icon[data-id=Subcontracting] { - display: none !important; -} -input[type=checkbox] { - -webkit-appearance: none !important; - -moz-appearance: none !important; - appearance: none !important; - width: 28px !important; - min-width: 28px !important; - height: 16px !important; - background-color: var(--gray-400, #c0c6cc) !important; - background-image: none !important; - border-radius: 999px !important; - border: none !important; - position: relative !important; - cursor: pointer !important; - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12) !important; - transition: background-color 0.25s ease !important; - vertical-align: middle !important; - margin: 0 !important; - margin-left: 8px !important; - outline: none !important; -} -input[type=checkbox]::after { - content: "" !important; - width: 12px !important; - height: 12px !important; - background-color: #fff !important; - border-radius: 50% !important; - position: absolute !important; - top: 2px !important; - right: 2px !important; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important; - transition: transform 0.25s ease !important; - border: none !important; -} -input[type=checkbox]:checked, -input[type=checkbox].disabled-selected { - background-color: #2da44e !important; - background-image: none !important; - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08) !important; -} -input[type=checkbox]:checked::after, -input[type=checkbox].disabled-selected::after { - transform: translateX(-12px) !important; -} -input[type=checkbox]:focus { - outline: none !important; - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(45, 164, 78, 0.25) !important; -} -input[type=checkbox]:disabled { - opacity: 0.5 !important; - cursor: not-allowed !important; - background-image: none !important; -} -input[type=checkbox].disabled-selected { - opacity: 0.7 !important; - cursor: not-allowed !important; -} -.row-check input[type=checkbox], -.grid-row-check { - width: var(--checkbox-size, 14px) !important; - min-width: var(--checkbox-size, 14px) !important; - height: var(--checkbox-size, 14px) !important; - border-radius: 4px !important; - border: 1px solid var(--gray-500) !important; - background-color: transparent !important; - background-image: none !important; - box-shadow: none !important; - margin-left: 0 !important; - transition: none !important; -} -.row-check input[type=checkbox]::after, -.grid-row-check::after { - content: "" !important; - width: auto !important; - height: auto !important; - background: none !important; - border-radius: 0 !important; - position: absolute !important; - top: auto !important; - right: auto !important; - box-shadow: none !important; - transition: none !important; - transform: none !important; - inset: -8px !important; - opacity: 0 !important; -} -.row-check input[type=checkbox]:checked, -.grid-row-check:checked { - background-color: var(--primary) !important; - background-image: url("data:image/svg+xml, "), var(--checkbox-gradient) !important; - background-size: 57%, 100% !important; - background-repeat: no-repeat !important; - background-position: center !important; - border: none !important; - box-shadow: none !important; -} -.row-check input[type=checkbox]:checked::after, -.grid-row-check:checked::after { - transform: none !important; -} -.datatable input[type=checkbox] { - -webkit-appearance: none !important; - -moz-appearance: none !important; - appearance: none !important; - width: var(--checkbox-size, 14px) !important; - min-width: var(--checkbox-size, 14px) !important; - height: var(--checkbox-size, 14px) !important; - margin: 0 !important; - padding: 0 !important; - border: 1px solid var(--gray-500) !important; - border-radius: 4px !important; - background-color: transparent !important; - background-image: none !important; - box-shadow: none !important; - cursor: pointer !important; - vertical-align: middle !important; - transition: none !important; -} -.datatable input[type=checkbox]::after { - content: none !important; - display: none !important; -} -.datatable input[type=checkbox]:checked { - background-color: var(--primary) !important; - background-image: url("data:image/svg+xml, ") !important; - background-size: 57% !important; - background-repeat: no-repeat !important; - background-position: center !important; - border: none !important; -} -.datatable input[type=checkbox]:disabled { - opacity: 0.5 !important; - cursor: not-allowed !important; -} -.datatable .dt-cell__content:has(> input[type="checkbox"]:only-child) { - display: flex !important; - align-items: center !important; - justify-content: flex-start !important; -} -.datatable .dt-row-filter .dt-cell__content { - display: flex !important; - align-items: center !important; - gap: 2px; -} -.datatable .dt-row-filter .dt-filter.dt-input { - flex: 1 1 0 !important; - min-width: 0 !important; -} -.datatable .dt-row-filter .comparison-help-icon { - flex: 0 0 auto; -} -input.list-row-checkbox::after, -input.list-header-checkbox::after { - inset: auto !important; - width: 12px !important; - height: 12px !important; - background-color: #fff !important; - border-radius: 50% !important; - position: absolute !important; - top: 2px !important; - right: 2px !important; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important; - transition: transform 0.25s ease !important; - opacity: 1 !important; -} -input.list-row-checkbox:checked::after, -input.list-header-checkbox:checked::after { - transform: translateX(-12px) !important; -} -.frappe-control[data-fieldtype=Check] .checkbox label { - align-items: center !important; -} -.frappe-control[data-fieldtype=Check] .checkbox .input-area:not(.hide) { - padding-top: 0 !important; - display: flex !important; - align-items: center !important; -} -.filter-section { - display: flex !important; -} -.filter-section .sort-selector { - order: -1 !important; - margin-left: 8px !important; -} -.form-grid { - overflow-x: scroll !important; - padding-bottom: 12px !important; - scrollbar-width: auto !important; -} -.form-grid::-webkit-scrollbar { - height: 10px !important; -} -.form-grid::-webkit-scrollbar-track { - background: var(--gray-100, #f5f5f5) !important; -} -.form-grid::-webkit-scrollbar-thumb { - background: var(--gray-400, #c0c6cc) !important; - border-radius: 5px !important; - border: 2px solid var(--gray-100, #f5f5f5) !important; -} -.form-grid::-webkit-scrollbar-thumb:hover { - background: var(--gray-500, #98a2ab) !important; -} -.jey-col-resize { - position: absolute; - top: 0; - left: -2px; - width: 5px; - height: 100%; - cursor: col-resize; - z-index: 2; - background: transparent; - transition: background 0.15s; -} -.jey-col-resize:hover, -.jey-col-resize:active { - background: var(--primary, #2490ef); - opacity: 0.5; -} -.grid-heading-row .grid-static-col[data-jey-draggable] { - cursor: grab; -} -.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-left { - box-shadow: inset -3px 0 0 var(--primary, #2490ef); - background: rgba(36, 144, 239, 0.05); -} -.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-right { - box-shadow: inset 3px 0 0 var(--primary, #2490ef); - background: rgba(36, 144, 239, 0.05); -} -.list-row-head .list-row-col { - position: relative; -} -.list-row-head .list-row-col:not(:last-child) { - border-left: 1px solid var(--border-color, #e2e6e9); -} -.list-row-head .jey-col-resize { - position: absolute; - top: 0; - left: -2px; - width: 5px; - height: 100%; - cursor: col-resize; - z-index: 3; - background: transparent; - transition: background 0.15s; -} -.list-row-head .jey-col-resize:hover, -.list-row-head .jey-col-resize:active { - background: var(--primary, #2490ef); - opacity: 0.5; -} -.list-row-head .list-row-col[data-jey-draggable]:not(.list-subject) { - cursor: grab; -} -.list-row-head .list-row-col.jey-drop-target.jey-drop-left { - box-shadow: inset -3px 0 0 var(--primary, #2490ef); - background: rgba(36, 144, 239, 0.05); -} -.list-row-head .list-row-col.jey-drop-target.jey-drop-right { - box-shadow: inset 3px 0 0 var(--primary, #2490ef); - background: rgba(36, 144, 239, 0.05); -} -.body-sidebar .body-sidebar-bottom { - min-width: 0; -} -.jey-fullwidth-link, -.jey-theme-switch-link, -.jey-collapse-link { - text-decoration: none; - font-size: var(--text-sm); - display: flex; - align-items: center; - cursor: pointer; - margin-bottom: 8px; - width: 100%; - overflow: hidden; -} -.jey-fullwidth-link svg, -.jey-theme-switch-link svg, -.jey-collapse-link svg { - margin: 0; - flex: 0 0 auto; -} -.jey-fullwidth-link span, -.jey-theme-switch-link span, -.jey-collapse-link span { - margin-right: 10px; - max-width: 200px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - transition: max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1), margin-right 0.3s cubic-bezier(0.4, 0, 0.2, 1); -} -.body-sidebar-container:not(.expanded) .jey-fullwidth-link span, -.body-sidebar-container:not(.expanded) .jey-theme-switch-link span, -.body-sidebar-container:not(.expanded) .jey-collapse-link span { - max-width: 0; - margin-right: 0; -} -.body-sidebar .sidebar-bottom-actions { - display: none !important; -} -.body-sidebar .nav-item { - transition: padding 0.3s cubic-bezier(0.4, 0, 0.2, 1); -} -.modal.fade .modal-dialog { - transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) !important; - transform: translateY(-24px) scale(0.97); - opacity: 0; -} -.modal.show .modal-dialog { - transform: none; - opacity: 1; -} -@keyframes jey-section-in { - from { - top: -12px; - } - to { - top: 0; - } -} -.form-layout .form-section .section-head, -.form-layout .form-section .section-body { - position: relative; - animation: jey-section-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both; -} -.form-layout .form-section:nth-child(1) .section-head, -.form-layout .form-section:nth-child(1) .section-body { - animation-delay: 0.04s; -} -.form-layout .form-section:nth-child(2) .section-head, -.form-layout .form-section:nth-child(2) .section-body { - animation-delay: 0.10s; -} -.form-layout .form-section:nth-child(3) .section-head, -.form-layout .form-section:nth-child(3) .section-body { - animation-delay: 0.16s; -} -.form-layout .form-section:nth-child(4) .section-head, -.form-layout .form-section:nth-child(4) .section-body { - animation-delay: 0.22s; -} -.form-layout .form-section:nth-child(5) .section-head, -.form-layout .form-section:nth-child(5) .section-body { - animation-delay: 0.28s; -} -.form-layout .form-section:nth-child(6) .section-head, -.form-layout .form-section:nth-child(6) .section-body { - animation-delay: 0.34s; -} -.form-layout .form-section:nth-child(7) .section-head, -.form-layout .form-section:nth-child(7) .section-body { - animation-delay: 0.40s; -} -.form-layout .form-section:nth-child(8) .section-head, -.form-layout .form-section:nth-child(8) .section-body { - animation-delay: 0.46s; -} -.form-layout .form-section:nth-child(9) .section-head, -.form-layout .form-section:nth-child(9) .section-body { - animation-delay: 0.52s; -} -.form-layout .form-section:nth-child(10) .section-head, -.form-layout .form-section:nth-child(10) .section-body { - animation-delay: 0.58s; -} -.form-layout .form-section:nth-child(11) .section-head, -.form-layout .form-section:nth-child(11) .section-body { - animation-delay: 0.64s; -} -.form-layout .form-section:nth-child(12) .section-head, -.form-layout .form-section:nth-child(12) .section-body { - animation-delay: 0.70s; -} -.form-tabs .nav-link { - position: relative; - border-bottom: none !important; - transition: color 0.3s ease; -} -.form-tabs .nav-link::after { - content: ""; - position: absolute; - bottom: 0; - right: 0; - left: 0; - height: 2px; - background: var(--text-color); - transform: scaleX(0); - transform-origin: center; - transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1); -} -.form-tabs .nav-link.active::after { - transform: scaleX(1); -} -.dropdown-menu { - display: block !important; - visibility: hidden; - opacity: 0; - pointer-events: none; -} -.dropdown-menu.show { - visibility: visible; - opacity: 1; - pointer-events: auto; - animation: jey-dropdown-in 0.2s ease; -} -.dropdown-menu.jey-dropdown-hiding { - visibility: visible !important; - pointer-events: none; - animation: jey-dropdown-out 0.2s ease forwards; -} -@keyframes jey-dropdown-in { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes jey-dropdown-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@media (min-width: 576px) { - .body-sidebar-container { - width: 50px; - transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); - } - .body-sidebar-container.expanded { - width: var(--sidebar-width); - } -} -.body-sidebar .sidebar-header { - padding-right: 0 !important; - padding-left: 0 !important; -} -.body-sidebar-container.expanded .sidebar-user-button { - padding: 0 !important; -} -.body-sidebar .standard-sidebar-item .item-anchor { - transition: padding-right 0.4s cubic-bezier(0.22, 1, 0.36, 1), background 0.4s ease; -} -.body-sidebar .standard-sidebar-item .item-anchor:hover { - padding-right: calc(var(--padding-xs, 8px) + 4px); -} -.body-sidebar .standard-sidebar-item .sidebar-item-icon { - transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); -} -.body-sidebar .standard-sidebar-item .item-anchor:hover .sidebar-item-icon { - transform: scale(1.15); -} -.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor { - position: relative; -} -.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor::before { - content: ""; - position: absolute; - right: 0; - top: 20%; - bottom: 20%; - width: 3px; - border-radius: 3px 0 0 3px; - background: var(--primary, #2490ef); - opacity: 0.8; -} -@keyframes jey-list-row-in { - from { - opacity: 0; - transform: translateX(16px); - } - to { - opacity: 1; - transform: translateX(0); - } -} -.frappe-list .result .list-row-container:not(:first-child) { - animation: jey-list-row-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both; -} -.frappe-list .result .list-row-container:nth-child(2) { - animation-delay: 0.03s; -} -.frappe-list .result .list-row-container:nth-child(3) { - animation-delay: 0.05s; -} -.frappe-list .result .list-row-container:nth-child(4) { - animation-delay: 0.07s; -} -.frappe-list .result .list-row-container:nth-child(5) { - animation-delay: 0.09s; -} -.frappe-list .result .list-row-container:nth-child(6) { - animation-delay: 0.11s; -} -.frappe-list .result .list-row-container:nth-child(7) { - animation-delay: 0.13s; -} -.frappe-list .result .list-row-container:nth-child(8) { - animation-delay: 0.15s; -} -.frappe-list .result .list-row-container:nth-child(9) { - animation-delay: 0.17s; -} -.frappe-list .result .list-row-container:nth-child(10) { - animation-delay: 0.19s; -} -.frappe-list .result .list-row-container:nth-child(11) { - animation-delay: 0.21s; -} -.frappe-list .result .list-row-container:nth-child(12) { - animation-delay: 0.23s; -} -.frappe-list .result .list-row-container:nth-child(13) { - animation-delay: 0.25s; -} -.frappe-list .result .list-row-container:nth-child(14) { - animation-delay: 0.27s; -} -.frappe-list .result .list-row-container:nth-child(15) { - animation-delay: 0.29s; -} -.frappe-list .result .list-row-container:nth-child(16) { - animation-delay: 0.31s; -} -.frappe-list .result .list-row-container:nth-child(17) { - animation-delay: 0.33s; -} -.frappe-list .result .list-row-container:nth-child(18) { - animation-delay: 0.35s; -} -.frappe-list .result .list-row-container:nth-child(19) { - animation-delay: 0.37s; -} -.frappe-list .result .list-row-container:nth-child(20) { - animation-delay: 0.39s; -} -.frappe-list .result .list-row-container:nth-child(21) { - animation-delay: 0.41s; -} -.modal:has(.cool-awesomebar-modal-footer) { - display: block !important; - visibility: hidden; - opacity: 0; - pointer-events: none; - transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.5s; -} -.modal:has(.cool-awesomebar-modal-footer) .modal-dialog { - transform: translateY(-30px); - transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); -} -.modal.show:has(.cool-awesomebar-modal-footer) { - visibility: visible; - opacity: 1; - pointer-events: auto; -} -.modal.show:has(.cool-awesomebar-modal-footer) .modal-dialog { - transform: none; -} -@keyframes jey-summary-in { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -.report-summary .summary-item { - animation: jey-summary-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both; -} -.report-summary .summary-item:nth-child(1) { - animation-delay: 0.05s; -} -.report-summary .summary-item:nth-child(2) { - animation-delay: 0.10s; -} -.report-summary .summary-item:nth-child(3) { - animation-delay: 0.15s; -} -.report-summary .summary-item:nth-child(4) { - animation-delay: 0.20s; -} -.report-summary .summary-item:nth-child(5) { - animation-delay: 0.25s; -} -.report-summary .summary-item:nth-child(6) { - animation-delay: 0.30s; -} -.form-section .collapse-indicator { - transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); - display: inline-block; -} -.form-section .section-head.collapsed .collapse-indicator { - transform: rotate(90deg); -} -.form-section .section-head.collapsible + .section-body { - display: flex !important; - flex-wrap: wrap; - transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out; -} -.form-section .section-head.collapsed + .section-body { - max-height: 0 !important; - padding-top: 0 !important; - padding-bottom: 0 !important; - overflow: hidden; - transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out; -} -.awesomplete > [role=listbox] { - animation: jey-awesomplete-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both; -} -.awesomplete > [role=listbox].jey-awesomplete-hiding { - display: block !important; - pointer-events: none; - animation: jey-awesomplete-out 0.2s ease forwards; -} -@keyframes jey-awesomplete-in { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes jey-awesomplete-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -.awesomplete > ul[role=listbox]:not([hidden]) { - z-index: 10; -} -input.form-control:not([type="checkbox"]):not([type="radio"]), -textarea.form-control, -.frappe-control input:not([type="checkbox"]):not([type="radio"]), -.frappe-control textarea { - transition: background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1); -} -input.form-control:not([type="checkbox"]):not([type="radio"]):focus, -textarea.form-control:focus, -.frappe-control input:not([type="checkbox"]):not([type="radio"]):focus, -.frappe-control textarea:focus { - border-color: var(--gray-500, #a8b0b8) !important; - outline: none; -} -.btn { - position: relative; - overflow: hidden; - transition: - box-shadow 0.4s ease, - background-color 0.3s ease, - color 0.3s ease; -} -.btn::after { - content: ""; - position: absolute; - inset: 0; - background: linear-gradient(-105deg, transparent 35%, rgba(255, 255, 255, 0.25) 45%, rgba(255, 255, 255, 0.25) 55%, transparent 65%); - transform: translateX(110%); - transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); - pointer-events: none; -} -.btn:hover::after { - transform: translateX(-110%); -} -.btn:active { - box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.2) !important; -} -.dropdown-menu-item[onclick*=toggle_full_width], -.dropdown-menu-item[onclick*=clear_cache], -.dropdown-menu-item[onclick*=ThemeSwitcher], -.dropdown-menu-item[data-name=website], -.dropdown-menu-item.jey-hidden-item { - display: none !important; -} -.desktop-icon:hover { - transform: translateY(-2px) !important; -} -.desktop-icon:active { - transform: scale(0.97) !important; -} -.icon-container.jey-chrome-done { - width: 72px !important; - height: 72px !important; - padding: 0 !important; - border-radius: 50% !important; - background: none !important; - overflow: visible !important; - position: relative !important; -} -.icon-container.jey-chrome-done:hover { - transform: none !important; -} -.icon-container.folder-icon.jey-chrome-done { - box-shadow: none !important; -} -#desktop-modal .icons-container .icons { - gap: 12px 8px !important; - padding: 12px 0 !important; -} -#desktop-modal .desktop-icon { - min-width: 0 !important; - display: flex !important; - flex-direction: column !important; - align-items: center !important; - text-align: center !important; -} -#desktop-modal .desktop-icon .icon-caption { - width: 100% !important; - max-width: 100% !important; - padding: 0 4px !important; - margin-top: 14px !important; -} -#desktop-modal .desktop-icon .icon-title { - width: 100% !important; - max-width: 100% !important; - display: -webkit-box !important; - -webkit-line-clamp: 2; - line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden !important; - text-overflow: ellipsis !important; - overflow-wrap: anywhere !important; - word-break: break-word !important; - line-height: 1.25 !important; - white-space: normal !important; -} -#desktop-modal .modal-header.desktop-modal-heading { - background: transparent !important; - border-bottom: 0 !important; - box-shadow: none !important; -} -#desktop-modal .modal-header.desktop-modal-heading .modal-title, -#desktop-modal .modal-header.desktop-modal-heading .title-input-label span { - background: transparent !important; - box-shadow: none !important; - text-shadow: none !important; -} -#desktop-modal .icon-title, -#desktop-modal .icon-caption { - text-shadow: none !important; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -#desktop-modal .modal-body.desktop-modal-body { - overflow: visible !important; - max-height: none !important; -} -#desktop-modal .icons-container { - overflow: visible !important; - max-height: none !important; -} -.ico-framework { - animation: ico-float 5s ease-in-out infinite; - transform-origin: center; -} -@keyframes ico-float { - 0%, 100% { - transform: translateY(0) rotate(0deg); - opacity: 0.85; - } - 30% { - transform: translateY(-2px) rotate(-0.8deg); - opacity: 1; - } - 70% { - transform: translateY(0.5px) rotate(0.4deg); - opacity: 0.9; - } -} -.ico-org { - animation: ico-org 6s ease-in-out infinite; - transform-origin: center bottom; -} -@keyframes ico-org { - 0%, 100% { - transform: scaleY(1) scaleX(1); - } - 25% { - transform: scaleY(1.03) scaleX(0.99); - } - 50% { - transform: scaleY(1.05) scaleX(0.98); - } - 75% { - transform: scaleY(1.02) scaleX(1); - } -} -.ico-acc .acc-btn { - animation: ico-press 3s ease-in-out infinite; -} -@keyframes ico-press { - 0%, 25%, 100% { - opacity: 0.5; - stroke-width: 2.5; - } - 12% { - opacity: 1; - stroke-width: 3.2; - } -} -.ico-assets { - animation: ico-safe 6s ease-in-out infinite; - transform-origin: center; -} -.ico-assets .lock-dot { - animation: ico-blink 5s ease-in-out infinite; -} -@keyframes ico-safe { - 0%, 100% { - transform: translateY(0); - } - 40% { - transform: translateY(-0.6px); - } - 60% { - transform: translateY(0.3px); - } -} -@keyframes ico-blink { - 0%, 35%, 65%, 100% { - opacity: 1; - } - 50% { - opacity: 0.15; - } -} -.ico-buying { - animation: ico-cart 6s ease-in-out infinite; - transform-origin: 12px 21px; -} -@keyframes ico-cart { - 0%, 100% { - transform: translateX(0) rotate(0deg); - } - 20% { - transform: translateX(-1.5px) rotate(-0.8deg); - } - 50% { - transform: translateX(0.5px) rotate(0.3deg); - } - 80% { - transform: translateX(-0.8px) rotate(-0.4deg); - } -} -.ico-mfg .gear1 { - animation: ico-spin 9s linear infinite; - transform-origin: 9px 12px; -} -.ico-mfg .gear2 { - animation: ico-spin-r 7s linear infinite; - transform-origin: 17px 8px; -} -@keyframes ico-spin { - to { - transform: rotate(-360deg); - } -} -@keyframes ico-spin-r { - to { - transform: rotate(360deg); - } -} -.ico-proj .col1 { - animation: ico-g1 5s ease-in-out infinite; - transform-origin: 5.5px 21px; -} -.ico-proj .col2 { - animation: ico-g2 5s ease-in-out infinite 0.5s; - transform-origin: 12.5px 15px; -} -.ico-proj .col3 { - animation: ico-g3 5s ease-in-out infinite 1s; - transform-origin: 19.5px 18px; -} -@keyframes ico-g1 { - 0%, 100% { - transform: scaleY(1); - opacity: 0.75; - } - 50% { - transform: scaleY(0.85); - opacity: 1; - } -} -@keyframes ico-g2 { - 0%, 100% { - transform: scaleY(1); - opacity: 0.75; - } - 50% { - transform: scaleY(1.15); - opacity: 1; - } -} -@keyframes ico-g3 { - 0%, 100% { - transform: scaleY(1); - opacity: 0.75; - } - 50% { - transform: scaleY(0.88); - opacity: 1; - } -} -.ico-quality { - animation: ico-shield 6s ease-in-out infinite; - transform-origin: 12px 14px; -} -@keyframes ico-shield { - 0%, 100% { - transform: rotate(0deg) scale(1); - } - 15% { - transform: rotate(-1.5deg) scale(1.03); - } - 35% { - transform: rotate(0.5deg) scale(1.01); - } - 55% { - transform: rotate(1.5deg) scale(1.03); - } - 75% { - transform: rotate(-0.5deg) scale(1.01); - } -} -.ico-selling { - animation: ico-sell 4s ease-in-out infinite; - transform-origin: center; -} -.ico-selling .arrow-head { - animation: ico-up 4s ease-in-out infinite; -} -@keyframes ico-sell { - 0%, 100% { - opacity: 0.8; - } - 50% { - opacity: 1; - } -} -@keyframes ico-up { - 0%, 100% { - transform: translate(0, 0); - } - 30% { - transform: translate(-1px, -1.5px); - } - 60% { - transform: translate(-2px, -2.5px); - } -} -.ico-stock { - animation: ico-bob 5s ease-in-out infinite; - transform-origin: center; -} -@keyframes ico-bob { - 0%, 100% { - transform: rotate(0deg) translateY(0); - } - 20% { - transform: rotate(-2deg) translateY(-0.7px); - } - 50% { - transform: rotate(1deg) translateY(0.3px); - } - 80% { - transform: rotate(-1.5deg) translateY(-0.4px); - } -} -.ico-sub .person-l { - animation: ico-rl 6s ease-in-out infinite; - transform-origin: 8px 12px; -} -.ico-sub .person-r { - animation: ico-rr 6s ease-in-out infinite; - transform-origin: 16px 12px; -} -@keyframes ico-rl { - 0%, 100% { - transform: translateX(0) rotate(0deg); - } - 30% { - transform: translateX(-1px) rotate(-1deg); - } - 60% { - transform: translateX(-1.5px) rotate(-0.5deg); - } -} -@keyframes ico-rr { - 0%, 100% { - transform: translateX(0) rotate(0deg); - } - 30% { - transform: translateX(1px) rotate(1deg); - } - 60% { - transform: translateX(1.5px) rotate(0.5deg); - } -} -.ico-settings { - animation: ico-gear-main 12s linear infinite; - transform-origin: center; -} -@keyframes ico-gear-main { - to { - transform: rotate(-360deg); - } -} -.ico-hr .plus-v { - animation: ico-pv 4s ease-in-out infinite; - transform-origin: center; -} -.ico-hr .plus-h { - animation: ico-ph 4s ease-in-out infinite 0.3s; - transform-origin: center; -} -@keyframes ico-pv { - 0%, 100% { - opacity: 0.4; - stroke-width: 1.8; - } - 50% { - opacity: 1; - stroke-width: 2.4; - } -} -@keyframes ico-ph { - 0%, 100% { - opacity: 0.4; - stroke-width: 1.8; - } - 50% { - opacity: 1; - stroke-width: 2.4; - } -} -.jey-theme-grid { - display: flex; - gap: 20px; - padding: 20px; - justify-content: center; -} -.jey-theme-card { - cursor: pointer; - text-align: center; - padding: 16px; - border-radius: 12px; - border: 2px solid transparent; - transition: border-color 0.2s, background 0.2s; - min-width: 140px; -} -.jey-theme-card:hover { - background: var(--subtle-fg, #f5f5f5); -} -.jey-theme-card.selected { - border-color: var(--primary, #2490ef); - background: var(--subtle-fg, #f5f5f5); -} -.jey-theme-preview { - width: 72px; - height: 72px; - border-radius: 50%; - margin: 0 auto 12px; - position: relative; - overflow: hidden; -} -.jey-theme-preview--chrome { - background: conic-gradient(from -140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg); - box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15), inset 0 1px 1px rgba(255, 255, 255, 0.5); -} -.jey-theme-preview--chrome .jey-theme-preview-icon { - position: absolute; - inset: 9px; - border-radius: 50%; - background: linear-gradient(-168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%); -} -.jey-theme-preview--modern { - border-radius: 16px; - background: rgba(255, 255, 255, 0.4); - -webkit-backdrop-filter: blur(6px); - backdrop-filter: blur(6px); - border: 1px solid rgba(255, 255, 255, 0.5); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); -} -.jey-theme-preview--modern .jey-theme-preview-icon { - position: absolute; - inset: 22px; - border-radius: 6px; - background: #4f46e5; - opacity: 0.25; -} -.jey-theme-label { - font-weight: 600; - font-size: var(--text-base); - margin-bottom: 2px; -} -.jey-theme-info { - font-size: var(--text-sm); - color: var(--text-muted); -} -.ce-block .links-widget-box, -.ce-block .number-widget-box { - opacity: 0; - transform: translateY(24px) scale(0.97); - animation: jey-card-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards; - border-radius: var(--border-radius-lg, 12px); - transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease; - position: relative; -} -@keyframes jey-number-in { - from { - opacity: 0; - transform: translateY(6px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -.number-widget-box .widget-content .number { - animation: jey-number-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both; -} -.ce-block .links-widget-box .widget-control .dropdown-menu, -.ce-block .number-widget-box .widget-control .dropdown-menu { - z-index: 1050; -} -.ce-block:nth-child(1) .links-widget-box, -.ce-block:nth-child(1) .number-widget-box { - animation-delay: 0.00s; -} -.ce-block:nth-child(2) .links-widget-box, -.ce-block:nth-child(2) .number-widget-box { - animation-delay: 0.06s; -} -.ce-block:nth-child(3) .links-widget-box, -.ce-block:nth-child(3) .number-widget-box { - animation-delay: 0.12s; -} -.ce-block:nth-child(4) .links-widget-box, -.ce-block:nth-child(4) .number-widget-box { - animation-delay: 0.18s; -} -.ce-block:nth-child(5) .links-widget-box, -.ce-block:nth-child(5) .number-widget-box { - animation-delay: 0.24s; -} -.ce-block:nth-child(6) .links-widget-box, -.ce-block:nth-child(6) .number-widget-box { - animation-delay: 0.30s; -} -.ce-block:nth-child(7) .links-widget-box, -.ce-block:nth-child(7) .number-widget-box { - animation-delay: 0.36s; -} -.ce-block:nth-child(8) .links-widget-box, -.ce-block:nth-child(8) .number-widget-box { - animation-delay: 0.42s; -} -.ce-block:nth-child(9) .links-widget-box, -.ce-block:nth-child(9) .number-widget-box { - animation-delay: 0.48s; -} -.ce-block:nth-child(10) .links-widget-box, -.ce-block:nth-child(10) .number-widget-box { - animation-delay: 0.54s; -} -.ce-block:nth-child(11) .links-widget-box, -.ce-block:nth-child(11) .number-widget-box { - animation-delay: 0.60s; -} -.ce-block:nth-child(12) .links-widget-box, -.ce-block:nth-child(12) .number-widget-box { - animation-delay: 0.66s; -} -@keyframes jey-card-in { - from { - opacity: 0; - transform: translateY(24px) scale(0.97); - } - to { - opacity: 1; - transform: none; - } -} -.ce-block .links-widget-box::after, -.ce-block .number-widget-box::after { - content: ""; - position: absolute; - bottom: 0; - right: 10%; - left: 10%; - height: 2.5px; - border-radius: 2px 2px 0 0; - background: var(--primary, #2490ef); - transform: scaleX(0); - transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1); - transform-origin: center; -} -.ce-block .links-widget-box:hover::after, -.ce-block .number-widget-box:hover::after { - transform: scaleX(1); -} -.ce-block .links-widget-box:hover, -.ce-block .number-widget-box:hover { - transform: translateY(-3px); - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08), 0 2px 6px rgba(0, 0, 0, 0.04); -} -.ce-block .links-widget-box:hover, -.ce-block .number-widget-box:hover, -.ce-block .links-widget-box:focus-within, -.ce-block .number-widget-box:focus-within { - z-index: 100; -} -.ce-block .links-widget-box:has(.dropdown-menu.show), -.ce-block .number-widget-box:has(.dropdown-menu.show) { - z-index: 200; -} -.links-widget-box .link-item { - position: relative; - transition: background 0.25s ease, transform 0.25s ease; - border-radius: var(--border-radius, 8px); - overflow: hidden; -} -.links-widget-box .link-item:hover { - transform: translateX(-6px); - background: var(--subtle-fg, rgba(0, 0, 0, 0.02)); -} -.links-widget-box .link-item .es-icon { - display: none !important; -} -.select-icon svg { - display: none !important; -} -.select-icon { - top: 0 !important; - bottom: 0 !important; - display: flex !important; - align-items: center !important; -} -.select-icon::after { - content: "" !important; - display: block; - width: 12px; - height: 12px; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); - background-size: contain; - background-repeat: no-repeat; - background-position: center; -} -.msg-box .icon-xl { - display: none !important; -} -.msg-box .mb-4 { - display: flex; - justify-content: center; -} -.msg-box .mb-4::after { - content: "" !important; - display: block; - width: 48px; - height: 48px; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b0b8c0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 16 12 14 15 10 15 8 12 2 12'/%3E%3Cpath d='M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E"); - background-size: contain; - background-repeat: no-repeat; - background-position: center; -} -.user-onboarding { - display: none !important; -} -.comment-count svg { - fill: none !important; - stroke: currentColor !important; - stroke-width: 1.5 !important; - stroke-linecap: round; - stroke-linejoin: round; -} -.new-timeline .activity-title, -.new-timeline .timeline-actions, -.comment-box, -.comment-input-wrapper, -.comment-input-wrapper .ql-container, -.comment-input-wrapper .frappe-control .ql-editor { - background: transparent !important; - border-color: transparent !important; - box-shadow: none !important; -} -.standard-filter-section .frappe-control.jey-period-filter { - flex: 0 0 auto; - min-width: 200px; -} -.standard-filter-section .frappe-control.jey-period-filter input { - min-width: 200px; -} -.control-input.fields_order { - height: auto !important; - min-height: 32px; - display: flex; - align-items: center; -} -.control-input.fields_order > .row { - width: 100%; - align-items: center; - margin: 0; -} -.control-input.fields_order > .row > [class*=col-] { - padding-top: 0 !important; - margin-top: 0 !important; -} -@keyframes jey-chrome-rotate-glow { - from { - transform: rotate(0deg); - } - to { - transform: rotate(-360deg); - } -} -@keyframes jey-chrome-face-light { - 0% { - background: radial-gradient(circle at 25% 20%, rgba(255, 255, 255, 0.5) 0%, transparent 55%); - } - 25% { - background: radial-gradient(circle at 75% 25%, rgba(255, 255, 255, 0.5) 0%, transparent 55%); - } - 50% { - background: radial-gradient(circle at 70% 75%, rgba(255, 255, 255, 0.35) 0%, transparent 55%); - } - 75% { - background: radial-gradient(circle at 25% 70%, rgba(255, 255, 255, 0.35) 0%, transparent 55%); - } - 100% { - background: radial-gradient(circle at 25% 20%, rgba(255, 255, 255, 0.5) 0%, transparent 55%); - } -} -@keyframes jey-chrome-refl-drift { - 0%, 100% { - top: 12%; - opacity: 0.7; - } - 50% { - top: 18%; - opacity: 0.5; - } -} -[data-jey-theme=chrome] .jey-chrome { - width: 72px; - height: 72px; - border-radius: 50%; - position: relative; - background: radial-gradient(ellipse at 35% 20%, rgba(255, 255, 255, 0.7) 0%, transparent 55%), linear-gradient(-180deg, #e0e0e0 0%, #b8b8b8 100%); - box-shadow: - 0 4px 10px rgba(0, 0, 0, 0.18), - 0 1px 3px rgba(0, 0, 0, 0.1), - inset 0 1px 1px rgba(255, 255, 255, 0.7); - transition: box-shadow 0.3s ease; -} -[data-jey-theme=chrome] .desktop-icon:hover .jey-chrome { - box-shadow: - 0 6px 16px rgba(0, 0, 0, 0.22), - 0 1px 3px rgba(0, 0, 0, 0.12), - 0 0 14px rgba(255, 255, 255, 0.2), - inset 0 1px 1px rgba(255, 255, 255, 0.7); -} -[data-jey-theme=chrome] .jey-chrome-ring { - position: absolute; - inset: 2px; - border-radius: 50%; - background: conic-gradient(from -140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); - overflow: hidden; -} -[data-jey-theme=chrome] .jey-ring-glow { - position: absolute; - inset: -10px; - border-radius: 50%; - background: conic-gradient(from 0deg, transparent 0deg, transparent 140deg, rgba(255, 255, 255, 0.55) 165deg, rgba(255, 255, 255, 0.8) 180deg, rgba(255, 255, 255, 0.55) 195deg, transparent 220deg, transparent 360deg); - animation: jey-chrome-rotate-glow 8s linear infinite; - pointer-events: none; -} -[data-jey-theme=chrome] .jey-chrome-gap { - position: absolute; - inset: 5px; - border-radius: 50%; - background: linear-gradient(-180deg, #888 0%, #aaa 50%, #999 100%); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.35), inset 0 -1px 1px rgba(255, 255, 255, 0.2); -} -[data-jey-theme=chrome] .jey-chrome-ring-inner { - position: absolute; - inset: 6px; - border-radius: 50%; - background: conic-gradient(from -200deg, #b0b0b0 0deg, #eee 30deg, #999 70deg, #ddd 110deg, #aaa 160deg, #f0f0f0 200deg, #909090 250deg, #ccc 300deg, #b0b0b0 360deg); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.15); -} -[data-jey-theme=chrome] .jey-chrome-face { - position: absolute; - inset: 9px; - border-radius: 50%; - overflow: hidden; - background: linear-gradient(-168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%); - box-shadow: inset 0 3px 7px rgba(255, 255, 255, 0.7), inset 0 -3px 6px rgba(0, 0, 0, 0.06); - display: flex; - align-items: center; - justify-content: center; -} -[data-jey-theme=chrome] .jey-face-glow { - position: absolute; - inset: 0; - border-radius: 50%; - animation: jey-chrome-face-light 8s ease-in-out infinite; - pointer-events: none; - z-index: 1; -} -[data-jey-theme=chrome] .jey-face-reflection { - position: absolute; - top: 15%; - right: 10%; - width: 80%; - height: 30%; - background: linear-gradient(-180deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.15) 60%, transparent 100%); - border-radius: 50%; - pointer-events: none; - z-index: 1; - animation: jey-chrome-refl-drift 10s ease-in-out infinite; -} -[data-jey-theme=chrome] .jey-chrome-face .jey-icon { - width: 24px !important; - height: 24px !important; - stroke: #505050 !important; - fill: none !important; - stroke-width: 1.8 !important; - stroke-linecap: round !important; - stroke-linejoin: round !important; - filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.5)) !important; - position: relative; - z-index: 2; -} -@keyframes jey-chrome-shine { - 0% { - transform: translateX(100%) skewX(15deg); - } - 100% { - transform: translateX(-200%) skewX(15deg); - } -} -[data-jey-theme=chrome] { - --bg-color: #d8d8d8; - --fg-color: #e8e8e8; - --card-bg: #e0e0e0; - --subtle-accent: #d4d4d4; - --subtle-fg: #d0d0d0; - --fg-hover-color: #ccc; - --highlight-color: #d4d4d4; - --navbar-bg: #d0d0d0; - --modal-bg: #ddd; - --toast-bg: #ddd; - --popover-bg: #e0e0e0; - --control-bg: #d5d5d5; - --control-bg-on-gray: #ccc; - --awesomebar-focus-bg: #e8e8e8; - --disabled-control-bg: #d0d0d0; - --skeleton-bg: #c8c8c8; - --surface-menu-bar: #d4d4d4; - --surface-white: #e0e0e0; - --surface-gray-1: #d8d8d8; - --surface-gray-2: #d0d0d0; - --surface-gray-3: #c8c8c8; - --surface-gray-4: #bbb; - --surface-modal: #ddd; - --placeholder-color: #ccc; - --sidebar-hover-color: #c8c8c8; - --sidebar-active-color: #d8d8d8; - --sidebar-border-color: #aaa; - --divider-color: #b0b0b0; - --heading-color: #333; - --text-color: #404040; - --text-neutral: #333; - --text-muted: #666; - --text-light: #888; - --text-dark: #f0f0f0; - --disabled-text-color: #888; - --ink-gray-7: #555; - --ink-gray-8: #404040; - --ink-gray-9: #333; - --border-color: #aaa; - --dark-border-color: #999; - --table-border-color: #aaa; - --btn-group-border-color: #999; - --outline-gray-1: #b0b0b0; - --outline-gray-2: #999; - --outline-gray-modals: #aaa; - --primary: #555; - --brand-color: #555; - --btn-primary: #777; - --btn-default-bg: #ccc; - --btn-default-hover-bg: #bbb; - --btn-ghost-hover-bg: #c0c0c0; - --border-primary: #777; - --shadow-xs: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.5); - --shadow-sm: 1px 1px 3px rgba(0,0,0,0.18), -1px -1px 2px rgba(255,255,255,0.45); - --shadow-base: 2px 2px 4px rgba(0,0,0,0.15), -1px -1px 2px rgba(255,255,255,0.4); - --shadow-md: 2px 2px 6px rgba(0,0,0,0.18), -1px -1px 3px rgba(255,255,255,0.35); - --shadow-lg: 3px 3px 10px rgba(0,0,0,0.15), -2px -2px 5px rgba(255,255,255,0.3); - --shadow-xl: 4px 4px 16px rgba(0,0,0,0.18), -2px -2px 6px rgba(255,255,255,0.25); - --shadow-2xl: 6px 6px 24px rgba(0,0,0,0.2), -3px -3px 8px rgba(255,255,255,0.2); - --shadow-inset: inset 0px -1px 0px #999; - --btn-shadow: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.4); - --card-shadow: 2px 2px 6px rgba(0,0,0,0.12), -1px -1px 3px rgba(255,255,255,0.4); - --modal-shadow: 6px 6px 30px rgba(0,0,0,0.3), -3px -3px 10px rgba(255,255,255,0.15); - --awesomebar-shadow: 3px 3px 12px rgba(0,0,0,0.15), -2px -2px 6px rgba(255,255,255,0.3); - --focus-default: 0 0 0 2px rgba(150,150,150,0.5); - --scrollbar-thumb-color: #999; - --scrollbar-track-color: #c8c8c8; - --switch-bg: #aaa; - --checkbox-color: #555; - --checkbox-gradient: linear-gradient(180deg, #777 0%, #666 100%); - --timeline-badge-color: #555; - --timeline-badge-bg: #ccc; - --date-active-bg: #777; - --date-active-text: #f0f0f0; - --date-range-bg: #ccc; - --progress-bar-bg: #777; - --code-block-bg: #444; - --code-block-text: #ccc; -} -[data-jey-theme=chrome] body { - background: - radial-gradient(ellipse at 25% 15%, rgba(255, 255, 255, 0.45) 0%, transparent 50%), - radial-gradient(ellipse at 80% 80%, rgba(255, 255, 255, 0.2) 0%, transparent 45%), - radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, 0.03) 0%, transparent 70%), - linear-gradient(-168deg, #d8d8d8 0%, #c4c4c4 40%, #b8b8b8 70%, #c8c8c8 100%) !important; - background-attachment: fixed !important; -} -[data-jey-theme=chrome] .page-container { - background: transparent !important; -} -[data-jey-theme=chrome] .navbar { - background: linear-gradient(-45deg, #aaa 2%, #ddd 8%, #bbb 18%, #e8e8e8 30%, #ccc 45%, #eee 55%, #bbb 68%, #ddd 80%, #aaa 95%) !important; - border-bottom: 1px solid #888 !important; - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.7), - inset 0 -1px 0 rgba(0, 0, 0, 0.08), - 0 2px 4px rgba(0, 0, 0, 0.15) !important; -} -[data-jey-theme=chrome] .navbar .navbar-nav .nav-link { - color: #444 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -[data-jey-theme=chrome] .navbar .navbar-nav .nav-link:hover { - color: #222 !important; - background: linear-gradient(-180deg, rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.1) 100%) !important; - border-radius: 6px; -} -[data-jey-theme=chrome] .search-bar input { - background: linear-gradient(-180deg, #c0c0c0 0%, #d0d0d0 100%) !important; - border: 1px solid #999 !important; - box-shadow: - inset 0 2px 4px rgba(0, 0, 0, 0.15), - inset 0 0 0 1px rgba(0, 0, 0, 0.05), - 0 1px 0 rgba(255, 255, 255, 0.5) !important; - color: #333 !important; - border-radius: 6px !important; -} -[data-jey-theme=chrome] .search-bar input:focus { - background: linear-gradient(-180deg, #d5d5d5 0%, #e0e0e0 100%) !important; - border-color: #888 !important; - box-shadow: - inset 0 1px 3px rgba(0, 0, 0, 0.1), - 0 0 0 2px rgba(150, 150, 150, 0.3), - 0 1px 0 rgba(255, 255, 255, 0.4) !important; -} -[data-jey-theme=chrome] .search-bar .search-icon { - color: #777 !important; -} -[data-jey-theme=chrome] .body-sidebar-container { - background: linear-gradient(-160deg, #b8b8b8 0%, #f0f0f0 12%, #c0c0c0 28%, #f4f4f4 42%, #b8b8b8 58%, #ededed 72%, #aaa 88%, #ddd 100%) !important; - border-left: 1px solid #888 !important; - box-shadow: - inset 1px 0 0 rgba(255, 255, 255, 0.6), - inset 0 1px 0 rgba(255, 255, 255, 0.7), - inset 0 -1px 0 rgba(0, 0, 0, 0.1), - -2px 0 8px rgba(0, 0, 0, 0.12) !important; -} -[data-jey-theme=chrome] .body-sidebar-container .body-sidebar, -[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-top, -[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-bottom, -[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-cards { - background: transparent !important; -} -[data-jey-theme=chrome] .body-sidebar .standard-sidebar-item .item-anchor:hover { - background: linear-gradient(-90deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.05) 100%) !important; -} -[data-jey-theme=chrome] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor { - background: linear-gradient(-45deg, #bbb 5%, #ddd 30%, #ccc 60%, #ddd 90%) !important; - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.6), - inset 0 -1px 0 rgba(0, 0, 0, 0.08), - -1px 1px 2px rgba(0, 0, 0, 0.1), - 1px -1px 1px rgba(255, 255, 255, 0.3) !important; - border-radius: 8px; -} -[data-jey-theme=chrome] .body-sidebar .sidebar-item-icon { - color: #666 !important; - filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.5)); -} -[data-jey-theme=chrome] .frappe-menu .menu-item-icon .jey-icon { - width: 20px !important; - height: 20px !important; - stroke: #555 !important; - fill: none !important; - stroke-width: 1.8 !important; - stroke-linecap: round !important; - stroke-linejoin: round !important; - filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.4)) !important; -} -[data-jey-theme=chrome] .sidebar-header .header-logo .jey-icon { - width: 22px !important; - height: 22px !important; - stroke: #555 !important; - fill: none !important; - stroke-width: 1.8 !important; - stroke-linecap: round !important; - stroke-linejoin: round !important; - filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.4)) !important; -} -[data-jey-theme=chrome] .btn-primary { - background: linear-gradient(-45deg, #666 5%, #aaa 10%, #888 30%, #999 50%, #888 70%, #aaa 85%, #666 95%) !important; - color: #f0f0f0 !important; - border: 1px solid #555 !important; - box-shadow: - -2px 2px 4px rgba(0, 0, 0, 0.2), - 1px -1px 2px rgba(255, 255, 255, 0.15), - inset 0 1px 0 rgba(255, 255, 255, 0.3), - inset 0 -1px 0 rgba(0, 0, 0, 0.15), - inset -2px 2px 5px rgba(0, 0, 0, 0), - inset 1px -1px 2px rgba(255, 255, 255, 0) !important; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - position: relative; - overflow: hidden; - transition: box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important; -} -[data-jey-theme=chrome] .btn-primary::before { - content: ""; - position: absolute; - top: 0; - right: -50%; - width: 30%; - height: 100%; - background: linear-gradient(-90deg, transparent, rgba(255, 255, 255, 0.25), transparent); - transform: skewX(15deg); - transition: right 0.4s ease; - pointer-events: none; -} -[data-jey-theme=chrome] .btn-primary:hover::before { - right: 120%; -} -[data-jey-theme=chrome] .btn-primary:hover { - background: linear-gradient(-45deg, #777 5%, #bbb 10%, #999 30%, #aaa 50%, #999 70%, #bbb 85%, #777 95%) !important; - box-shadow: - -2px 2px 6px rgba(0, 0, 0, 0.25), - 1px -1px 3px rgba(255, 255, 255, 0.2), - inset 0 1px 0 rgba(255, 255, 255, 0.35), - inset 0 -1px 0 rgba(0, 0, 0, 0.15), - inset -2px 2px 5px rgba(0, 0, 0, 0), - inset 1px -1px 2px rgba(255, 255, 255, 0) !important; -} -[data-jey-theme=chrome] .btn-primary:active { - background: linear-gradient(-45deg, #555 5%, #888 10%, #777 30%, #888 50%, #777 70%, #888 85%, #555 95%) !important; - box-shadow: - -2px 2px 4px rgba(0, 0, 0, 0), - 1px -1px 2px rgba(255, 255, 255, 0), - inset 0 1px 0 rgba(255, 255, 255, 0), - inset 0 -1px 0 rgba(0, 0, 0, 0.05), - inset -3px 3px 7px rgba(0, 0, 0, 0.35), - inset 1px -1px 2px rgba(255, 255, 255, 0.12) !important; - transition: box-shadow 0.08s ease-out !important; -} -[data-jey-theme=chrome] .btn-default, -[data-jey-theme=chrome] .btn-secondary { - background: linear-gradient(-45deg, #bbb 5%, #eee 10%, #ccc 30%, #e0e0e0 50%, #ccc 70%, #eee 85%, #bbb 95%) !important; - border: 1px solid #999 !important; - color: #444 !important; - box-shadow: - -1px 1px 3px rgba(0, 0, 0, 0.12), - 1px -1px 2px rgba(255, 255, 255, 0.4), - inset 0 1px 0 rgba(255, 255, 255, 0.6), - inset 0 -1px 0 rgba(0, 0, 0, 0.06), - inset -2px 2px 4px rgba(0, 0, 0, 0), - inset 1px -1px 1px rgba(255, 255, 255, 0) !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - transition: box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important; -} -[data-jey-theme=chrome] .btn-default:hover, -[data-jey-theme=chrome] .btn-secondary:hover { - background: linear-gradient(-45deg, #c0c0c0 5%, #f2f2f2 10%, #d4d4d4 30%, #e8e8e8 50%, #d4d4d4 70%, #f2f2f2 85%, #c0c0c0 95%) !important; - border-color: #888 !important; - box-shadow: - -2px 2px 4px rgba(0, 0, 0, 0.15), - 1px -1px 2px rgba(255, 255, 255, 0.4), - inset 0 1px 0 rgba(255, 255, 255, 0.7), - inset 0 -1px 0 rgba(0, 0, 0, 0.06), - inset -2px 2px 4px rgba(0, 0, 0, 0), - inset 1px -1px 1px rgba(255, 255, 255, 0) !important; -} -[data-jey-theme=chrome] .btn-default:active, -[data-jey-theme=chrome] .btn-secondary:active { - background: linear-gradient(-45deg, #aaa 5%, #d8d8d8 10%, #bbb 30%, #ccc 50%, #bbb 70%, #d8d8d8 85%, #aaa 95%) !important; - box-shadow: - -1px 1px 3px rgba(0, 0, 0, 0), - 1px -1px 2px rgba(255, 255, 255, 0), - inset 0 1px 0 rgba(255, 255, 255, 0), - inset 0 -1px 0 rgba(0, 0, 0, 0.05), - inset -3px 3px 6px rgba(0, 0, 0, 0.3), - inset 1px -1px 1px rgba(255, 255, 255, 0.15) !important; - transition: box-shadow 0.08s ease-out !important; -} -[data-jey-theme=chrome] .btn-danger { - background: linear-gradient(-45deg, #b33 5%, #e88 10%, #c55 30%, #d77 50%, #c55 70%, #e88 85%, #b33 95%) !important; - color: #fff !important; - border: 1px solid #944 !important; - box-shadow: - -2px 2px 4px rgba(0, 0, 0, 0.2), - 1px -1px 2px rgba(255, 255, 255, 0.1), - inset 0 1px 0 rgba(255, 255, 255, 0.25) !important; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); -} -[data-jey-theme=chrome] .btn-danger:hover { - background: linear-gradient(-45deg, #c44 5%, #f99 10%, #d66 30%, #e88 50%, #d66 70%, #f99 85%, #c44 95%) !important; -} -[data-jey-theme=chrome] .btn-ghost:hover { - background: linear-gradient(-180deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.05) 100%) !important; -} -[data-jey-theme=chrome] input.form-control:not([type="checkbox"]):not([type="radio"]), -[data-jey-theme=chrome] textarea.form-control { - background: #d0d0d0 !important; - border: 1px solid #999 !important; - color: #333 !important; - box-shadow: - inset -1px 1px 2px rgba(0, 0, 0, 0.10), - inset 1px -1px 1px rgba(255, 255, 255, 0.25), - inset 0 1px 1px rgba(0, 0, 0, 0.04) !important; - transition: - background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1), - border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1), - box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important; -} -[data-jey-theme=chrome] input.form-control:not([type="checkbox"]):not([type="radio"]):focus, -[data-jey-theme=chrome] textarea.form-control:focus { - background: #cbcbcb !important; - border-color: #777 !important; - box-shadow: - inset -4px 4px 8px rgba(0, 0, 0, 0.28), - inset 1px -1px 1px rgba(255, 255, 255, 0.15), - inset 0 3px 5px rgba(0, 0, 0, 0.18) !important; -} -[data-jey-theme=chrome] .form-control:disabled, -[data-jey-theme=chrome] .form-control[disabled] { - background: #d8d8d8 !important; - color: #888 !important; - box-shadow: inset -1px 1px 2px rgba(0, 0, 0, 0.06) !important; -} -[data-jey-theme=chrome] .frappe-control .control-label, -[data-jey-theme=chrome] .frappe-control label { - color: #444 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -[data-jey-theme=chrome] select.form-control, -[data-jey-theme=chrome] select.input-with-feedback { - background: #d0d0d0 !important; -} -[data-jey-theme=chrome] .form-page { - background: linear-gradient(-45deg, #ccc 3%, #e8e8e8 10%, #d5d5d5 25%, #eee 45%, #d8d8d8 60%, #e8e8e8 80%, #ccc 97%) !important; - border: 1px solid #aaa !important; - box-shadow: - -3px 3px 8px rgba(0, 0, 0, 0.12), - 2px -2px 4px rgba(255, 255, 255, 0.4), - inset 0 1px 0 rgba(255, 255, 255, 0.7), - inset 0 -1px 0 rgba(0, 0, 0, 0.05) !important; - border-radius: var(--border-radius-lg) !important; -} -[data-jey-theme=chrome] .form-section .section-head { - color: #444 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - border-bottom: 1px solid #b0b0b0 !important; - position: relative; -} -[data-jey-theme=chrome] .frappe-card { - background: linear-gradient(-45deg, #c8c8c8 3%, #e5e5e5 12%, #d4d4d4 30%, #eaeaea 50%, #d4d4d4 70%, #e5e5e5 88%, #c8c8c8 97%) !important; - border: 1px solid #aaa !important; - box-shadow: - -2px 2px 6px rgba(0, 0, 0, 0.1), - 1px -1px 3px rgba(255, 255, 255, 0.4), - inset 0 1px 0 rgba(255, 255, 255, 0.6) !important; -} -[data-jey-theme=chrome] .form-sidebar { - border-right: 1px solid #aaa !important; -} -[data-jey-theme=chrome] .form-sidebar .sidebar-section { - border-bottom: 1px solid #b0b0b0 !important; -} -[data-jey-theme=chrome] .modal-content { - background: linear-gradient(-45deg, #ccc 3%, #e8e8e8 12%, #d5d5d5 30%, #eee 50%, #d5d5d5 70%, #e8e8e8 88%, #ccc 97%) !important; - border: 1px solid #999 !important; - box-shadow: - -6px 6px 24px rgba(0, 0, 0, 0.25), - 3px -3px 8px rgba(255, 255, 255, 0.15), - inset 0 1px 0 rgba(255, 255, 255, 0.6), - inset 0 0 0 1px rgba(255, 255, 255, 0.35) !important; -} -[data-jey-theme=chrome] .modal-header { - background: linear-gradient(-45deg, #b0b0b0 5%, #ddd 12%, #c0c0c0 30%, #e5e5e5 50%, #c0c0c0 70%, #ddd 88%, #b0b0b0 95%) !important; - border-bottom: 1px solid #999 !important; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 -1px 0 rgba(0, 0, 0, 0.06) !important; -} -[data-jey-theme=chrome] .modal-header .modal-title { - color: #333 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -[data-jey-theme=chrome] .modal-footer { - background: linear-gradient(-45deg, #b8b8b8 5%, #d8d8d8 20%, #c0c0c0 50%, #d8d8d8 80%, #b8b8b8 95%) !important; - border-top: 1px solid #999 !important; -} -[data-jey-theme=chrome] .modal-backdrop { - background-color: rgba(40, 40, 40, 0.55) !important; -} -[data-jey-theme=chrome] .page-head { - background: linear-gradient(-45deg, #b8b8b8 3%, #e0e0e0 10%, #c8c8c8 25%, #eaeaea 45%, #ccc 60%, #e0e0e0 80%, #b8b8b8 97%) !important; - border-bottom: 1px solid #999 !important; - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.6), - inset 0 -1px 0 rgba(0, 0, 0, 0.06), - 0 2px 4px rgba(0, 0, 0, 0.08) !important; -} -[data-jey-theme=chrome] .page-head .title-text { - color: #333 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -[data-jey-theme=chrome] .list-row-head { - background: linear-gradient(-45deg, #aaa 3%, #d8d8d8 10%, #bbb 25%, #e0e0e0 45%, #bbb 60%, #d8d8d8 80%, #aaa 97%) !important; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 -1px 0 rgba(0, 0, 0, 0.06) !important; -} -[data-jey-theme=chrome] .list-row-container .list-row { - border-bottom: 1px solid #b8b8b8 !important; -} -[data-jey-theme=chrome] .list-row-container:hover { - background: linear-gradient(-90deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.05) 100%) !important; -} -[data-jey-theme=chrome] .result .list-row-container .level-left .list-row--col .level-left .ellipsis { - color: #404040 !important; -} -[data-jey-theme=chrome] .frappe-list .list-row .level-right, -[data-jey-theme=chrome] .frappe-list .list-row-head .level-right { - background: linear-gradient(-90deg, rgba(216, 216, 216, 0.85) 0%, rgba(208, 208, 208, 0.88) 100%) !important; - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(3px); - border-right: 1px solid #a0a0a0 !important; - box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.5) !important; -} -[data-jey-theme=chrome] .frappe-list .list-row-container:hover .level-right { - background: linear-gradient(-90deg, rgba(224, 224, 224, 0.9) 0%, rgba(216, 216, 216, 0.92) 100%) !important; - box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.55), 6px 0 10px rgba(0, 0, 0, 0.05) !important; -} -[data-jey-theme=chrome] .layout-side-section { - border-left: 1px solid #aaa !important; -} -[data-jey-theme=chrome] .frappe-control[data-fieldtype=Table] .form-grid { - border: 1px solid #999 !important; -} -[data-jey-theme=chrome] .grid-heading-row { - background: linear-gradient(-45deg, #aaa 3%, #d5d5d5 10%, #bbb 30%, #ddd 50%, #bbb 70%, #d5d5d5 90%, #aaa 97%) !important; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 -1px 0 rgba(0, 0, 0, 0.06) !important; -} -[data-jey-theme=chrome] .grid-heading-row .static-area { - color: #444 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -[data-jey-theme=chrome] .rows .grid-row:hover { - background: linear-gradient(-90deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.05) 100%) !important; -} -[data-jey-theme=chrome] .rows .grid-row { - border-bottom: 1px solid #b8b8b8 !important; -} -[data-jey-theme=chrome] .grid-footer { - background: transparent !important; - border-top: 1px solid #999 !important; -} -[data-jey-theme=chrome] .rows .grid-row.editable-row, -[data-jey-theme=chrome] .rows .grid-row:has(.editable-row) { - border-bottom: 1px solid #b8b8b8 !important; -} -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"]), -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control, -[data-jey-theme=chrome] .grid-row > .data-row select.form-control, -[data-jey-theme=chrome] .grid-row > .data-row select.input-with-feedback, -[data-jey-theme=chrome] .grid-row > .data-row .awesomplete input, -[data-jey-theme=chrome] .grid-row > .data-row .like-disabled-input { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; - outline: none !important; - color: #333 !important; - transition: box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1), background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important; -} -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"]):focus, -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control:focus, -[data-jey-theme=chrome] .grid-row > .data-row select.form-control:focus, -[data-jey-theme=chrome] .grid-row > .data-row select.input-with-feedback:focus, -[data-jey-theme=chrome] .grid-row > .data-row .awesomplete input:focus { - background: linear-gradient(-45deg, #bbb 5%, #d8d8d8 10%, #c4c4c4 30%, #d0d0d0 50%, #c4c4c4 70%, #d8d8d8 85%, #bbb 95%) !important; - border: 0 !important; - outline: none !important; - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0), - inset 0 -1px 0 rgba(0, 0, 0, 0.05), - inset -3px 3px 6px rgba(0, 0, 0, 0.3), - inset 1px -1px 1px rgba(255, 255, 255, 0.15) !important; - transition: box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1), background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important; -} -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"]):disabled, -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"])[disabled], -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"])[readonly], -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control:disabled, -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control[readonly], -[data-jey-theme=chrome] .grid-row > .data-row select.form-control:disabled, -[data-jey-theme=chrome] .grid-row > .data-row select.input-with-feedback:disabled { - background: #d8d8d8 !important; - box-shadow: none !important; - color: #666 !important; -} -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"]):disabled:focus, -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"])[disabled]:focus, -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"])[readonly]:focus, -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control:disabled:focus, -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control[readonly]:focus, -[data-jey-theme=chrome] .grid-row > .data-row select.form-control:disabled:focus { - background: #d8d8d8 !important; - box-shadow: none !important; -} -[data-jey-theme=chrome] .grid-row .editable-row .form-control { - padding-top: 10px !important; - padding-bottom: 10px !important; - height: auto !important; -} -[data-jey-theme=chrome] .form-tabs .nav-link { - color: #666 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); -} -[data-jey-theme=chrome] .form-tabs .nav-link:hover { - color: #444 !important; - background: linear-gradient(-180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.05) 100%) !important; -} -[data-jey-theme=chrome] .form-tabs .nav-link.active { - color: #333 !important; - background: linear-gradient(-180deg, rgba(255, 255, 255, 0.2) 0%, transparent 100%) !important; -} -[data-jey-theme=chrome] .form-tabs .nav-link::after { - background: #777; -} -[data-jey-theme=chrome] .dropdown-menu { - background: linear-gradient(-45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important; - border: 1px solid #999 !important; - box-shadow: - -4px 4px 12px rgba(0, 0, 0, 0.18), - 2px -2px 4px rgba(255, 255, 255, 0.15), - inset 0 1px 0 rgba(255, 255, 255, 0.6) !important; -} -[data-jey-theme=chrome] .dropdown-item { - color: #444 !important; -} -[data-jey-theme=chrome] .dropdown-item:hover, -[data-jey-theme=chrome] .dropdown-item:focus { - background: linear-gradient(-90deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.05) 100%) !important; - color: #222 !important; -} -[data-jey-theme=chrome] .dropdown-divider { - border-top-color: #aaa !important; -} -[data-jey-theme=chrome] .desk-alert { - background: linear-gradient(-45deg, #c0c0c0 5%, #e5e5e5 15%, #d0d0d0 40%, #e8e8e8 60%, #d0d0d0 85%, #c0c0c0 95%) !important; - border: 1px solid #999 !important; - box-shadow: - -3px 3px 8px rgba(0, 0, 0, 0.12), - 1px -1px 3px rgba(255, 255, 255, 0.3), - inset 0 1px 0 rgba(255, 255, 255, 0.5) !important; -} -[data-jey-theme=chrome] .breadcrumb-container a { - color: #666 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); -} -[data-jey-theme=chrome] .breadcrumb-container a:hover { - color: #333 !important; -} -[data-jey-theme=chrome] .new-timeline::before { - border-right-color: #aaa !important; -} -[data-jey-theme=chrome] .timeline-dot { - background: linear-gradient(-45deg, #bbb, #ddd, #bbb) !important; - border: 1px solid #999 !important; - box-shadow: -1px 1px 2px rgba(0, 0, 0, 0.1), 1px -1px 1px rgba(255, 255, 255, 0.3); -} -[data-jey-theme=chrome] .indicator-pill { - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), -1px 1px 1px rgba(0, 0, 0, 0.08); -} -[data-jey-theme=chrome] .popover { - background: linear-gradient(-45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important; - border: 1px solid #999 !important; - box-shadow: - -4px 4px 12px rgba(0, 0, 0, 0.15), - 2px -2px 4px rgba(255, 255, 255, 0.2), - inset 0 1px 0 rgba(255, 255, 255, 0.5) !important; -} -[data-jey-theme=chrome] .popover .popover-body { - color: #404040 !important; -} -[data-jey-theme=chrome] .ce-block .links-widget-box, -[data-jey-theme=chrome] .ce-block .number-widget-box { - background: linear-gradient(-45deg, #c0c0c0 3%, #e5e5e5 12%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 88%, #c0c0c0 97%) !important; - border: 1px solid #aaa !important; - box-shadow: - -2px 2px 6px rgba(0, 0, 0, 0.1), - 1px -1px 3px rgba(255, 255, 255, 0.35), - inset 0 1px 0 rgba(255, 255, 255, 0.6) !important; -} -[data-jey-theme=chrome] .ce-block .links-widget-box::after, -[data-jey-theme=chrome] .ce-block .number-widget-box::after { - background: conic-gradient(from -140deg, #a0a0a0, #e0e0e0, #888, #d0d0d0, #a0a0a0) !important; -} -[data-jey-theme=chrome] .ce-block .links-widget-box:hover, -[data-jey-theme=chrome] .ce-block .number-widget-box:hover { - box-shadow: - -3px 3px 10px rgba(0, 0, 0, 0.14), - 2px -2px 5px rgba(255, 255, 255, 0.3), - inset 0 1px 0 rgba(255, 255, 255, 0.7) !important; -} -[data-jey-theme=chrome] ::-webkit-scrollbar { - width: 10px; - height: 10px; -} -[data-jey-theme=chrome] ::-webkit-scrollbar-track { - background: linear-gradient(-90deg, #c0c0c0, #d0d0d0, #c0c0c0); -} -[data-jey-theme=chrome] ::-webkit-scrollbar-thumb { - background: linear-gradient(-90deg, #888, #bbb, #999, #bbb, #888); - border-radius: 5px; - border: 1px solid #999; -} -[data-jey-theme=chrome] ::-webkit-scrollbar-thumb:hover { - background: linear-gradient(-90deg, #777, #aaa, #888, #aaa, #777); -} -[data-jey-theme=chrome] a { - color: #555; -} -[data-jey-theme=chrome] a:hover { - color: #333; -} -@media print { - [data-jey-theme=chrome] body, - [data-jey-theme=chrome] .page-container, - [data-jey-theme=chrome] .form-page, - [data-jey-theme=chrome] .frappe-card, - [data-jey-theme=chrome] .modal-content, - [data-jey-theme=chrome] .navbar { - background: white !important; - box-shadow: none !important; - border-color: #ddd !important; - text-shadow: none !important; - } - [data-jey-theme=chrome] .btn-primary { - background: #333 !important; - text-shadow: none !important; - } -} -@keyframes jey-modern-glow { - 0%, 100% { - opacity: 0.4; - } - 50% { - opacity: 0.7; - } -} -[data-jey-theme=modern] .jey-chrome { - width: 72px; - height: 72px; - border-radius: 22px; - position: relative; - background: rgba(255, 255, 255, 0.45); - backdrop-filter: blur(12px); - -webkit-backdrop-filter: blur(12px); - border: 1px solid rgba(255, 255, 255, 0.6); - box-shadow: - 0 4px 16px rgba(0, 0, 0, 0.06), - 0 1px 3px rgba(0, 0, 0, 0.04), - inset 0 1px 0 rgba(255, 255, 255, 0.8); - transition: all 0.3s ease; -} -[data-jey-theme=modern] .desktop-icon:hover .jey-chrome { - box-shadow: - 0 8px 24px rgba(0, 0, 0, 0.1), - 0 2px 6px rgba(0, 0, 0, 0.06), - inset 0 1px 0 rgba(255, 255, 255, 0.9); - transform: translateY(-2px); -} -[data-jey-theme=modern] .jey-chrome-ring, -[data-jey-theme=modern] .jey-chrome-gap, -[data-jey-theme=modern] .jey-chrome-ring-inner { - display: none; -} -[data-jey-theme=modern] .jey-chrome-face { - position: absolute; - inset: 0; - border-radius: 22px; - overflow: hidden; - background: transparent; - box-shadow: none; - display: flex; - align-items: center; - justify-content: center; -} -[data-jey-theme=modern] .jey-face-glow { - position: absolute; - bottom: -4px; - right: 16px; - left: 16px; - height: 20px; - border-radius: 50%; - background: radial-gradient(ellipse, rgba(99, 102, 241, 0.35) 0%, transparent 70%); - animation: jey-modern-glow 4s ease-in-out infinite; - pointer-events: none; - z-index: 0; -} -[data-jey-theme=modern] .jey-face-reflection { - position: absolute; - top: 0; - right: 0; - left: 0; - height: 50%; - border-radius: 22px 22px 0 0; - background: linear-gradient(-180deg, rgba(255, 255, 255, 0.5) 0%, transparent 100%); - pointer-events: none; - z-index: 1; - animation: none; -} -[data-jey-theme=modern] .jey-chrome-face .jey-icon { - width: 26px !important; - height: 26px !important; - stroke: #4f46e5 !important; - fill: none !important; - stroke-width: 1.6 !important; - stroke-linecap: round !important; - stroke-linejoin: round !important; - filter: drop-shadow(0 1px 2px rgba(79, 70, 229, 0.2)) !important; - position: relative; - z-index: 2; -} -[data-jey-theme=modern] .icon-container.jey-chrome-done { - border-radius: 22px !important; -} -/*# sourceMappingURL=jey_theme.bundle.4LQK3EX2.css.map */ diff --git a/jey_theme/public/dist/css-rtl/jey_theme.bundle.4LQK3EX2.css.map b/jey_theme/public/dist/css-rtl/jey_theme.bundle.4LQK3EX2.css.map deleted file mode 100644 index ee7aff7..0000000 --- a/jey_theme/public/dist/css-rtl/jey_theme.bundle.4LQK3EX2.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../../../../../tmp/tmp-16010-XQ467tJ01y5r/jey_theme/jey_theme/public/css/jey_theme.bundle.css"], - "sourcesContent": ["/* Bundled theme styles (was 3 raw app_include_css/web_include_css entries).\n One hashed bundle -> smaller preload header + auto cache-busting.\n Order preserved: shared -> theme_chrome -> theme_modern. */\n\n/* ===== shared.css ===== */\n/* ==========================================================================\n Jey Theme \u2014 Shared Styles (theme-independent)\n ========================================================================== */\n\n/* Override Frappe's default desk splash image (the blue \"E\").\n Splash markup is in templates/includes/splash_screen.html and gets removed\n by Frappe once the desk boots, so this only shows during page load. */\n.splash img {\n\tcontent: url(\"/assets/jey_theme/images/preloader.png\");\n\tmax-width: 64px !important;\n\twidth: 64px !important;\n\theight: auto;\n}\n\n/* Hide Organization desktop icon by default */\n.desktop-icon[data-id=\"Organization\"],\n.desktop-icon[data-id=\"ERPNext\"] {\n\tdisplay: none !important;\n}\n\n/* Fallback hide for blocked modules (main filtering happens in access_control.py).\n Desktop Icon records use label \"Quality\" and \"Subcontracting\" \u2014 match those. */\n.desktop-icon[data-id=\"Quality\"],\n.desktop-icon[data-id=\"Quality Management\"],\n.desktop-icon[data-id=\"Subcontracting\"] {\n\tdisplay: none !important;\n}\n\n/* ==========================================================================\n Toggle Switch Checkboxes\n ========================================================================== */\n\ninput[type=\"checkbox\"] {\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n appearance: none !important;\n width: 28px !important;\n min-width: 28px !important;\n height: 16px !important;\n background-color: var(--gray-400, #c0c6cc) !important;\n background-image: none !important;\n border-radius: 999px !important;\n border: none !important;\n position: relative !important;\n cursor: pointer !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12) !important;\n transition: background-color 0.25s ease !important;\n vertical-align: middle !important;\n margin: 0 !important;\n margin-left: 8px !important;\n outline: none !important;\n}\n\ninput[type=\"checkbox\"]::after {\n content: \"\" !important;\n width: 12px !important;\n height: 12px !important;\n background-color: #fff !important;\n border-radius: 50% !important;\n position: absolute !important;\n top: 2px !important;\n right: 2px !important;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;\n transition: transform 0.25s ease !important;\n border: none !important;\n}\n\ninput[type=\"checkbox\"]:checked,\ninput[type=\"checkbox\"].disabled-selected {\n background-color: #2da44e !important;\n background-image: none !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08) !important;\n}\n\ninput[type=\"checkbox\"]:checked::after,\ninput[type=\"checkbox\"].disabled-selected::after {\n transform: translateX(-12px) !important;\n}\n\ninput[type=\"checkbox\"]:focus {\n outline: none !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(45, 164, 78, 0.25) !important;\n}\n\ninput[type=\"checkbox\"]:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n background-image: none !important;\n}\n\ninput[type=\"checkbox\"].disabled-selected {\n opacity: 0.7 !important;\n cursor: not-allowed !important;\n}\n\n\n/* ==========================================================================\n Table Grid \u2014 restore Frappe default checkboxes\n ========================================================================== */\n\n.row-check input[type=\"checkbox\"],\n.grid-row-check {\n width: var(--checkbox-size, 14px) !important;\n min-width: var(--checkbox-size, 14px) !important;\n height: var(--checkbox-size, 14px) !important;\n border-radius: 4px !important;\n border: 1px solid var(--gray-500) !important;\n background-color: transparent !important;\n background-image: none !important;\n box-shadow: none !important;\n margin-left: 0 !important;\n transition: none !important;\n}\n\n.row-check input[type=\"checkbox\"]::after,\n.grid-row-check::after {\n content: \"\" !important;\n width: auto !important;\n height: auto !important;\n background: none !important;\n border-radius: 0 !important;\n position: absolute !important;\n top: auto !important;\n right: auto !important;\n box-shadow: none !important;\n transition: none !important;\n transform: none !important;\n inset: -8px !important;\n opacity: 0 !important;\n}\n\n.row-check input[type=\"checkbox\"]:checked,\n.grid-row-check:checked {\n background-color: var(--primary) !important;\n background-image: url(\"data:image/svg+xml, \"), var(--checkbox-gradient) !important;\n background-size: 57%, 100% !important;\n background-repeat: no-repeat !important;\n background-position: center !important;\n border: none !important;\n box-shadow: none !important;\n}\n\n.row-check input[type=\"checkbox\"]:checked::after,\n.grid-row-check:checked::after {\n transform: none !important;\n}\n\n/* ==========================================================================\n Report View (frappe-datatable) \u2014 compact themed checkboxes\n The global toggle-switch styling (28\u00D716) doesn't fit the 32px select\n column or the 37px row-number column, so content gets clipped. Use the\n same compact square style as child-table grids (.row-check) \u2014 themed,\n not native.\n ========================================================================== */\n\n.datatable input[type=\"checkbox\"] {\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n appearance: none !important;\n width: var(--checkbox-size, 14px) !important;\n min-width: var(--checkbox-size, 14px) !important;\n height: var(--checkbox-size, 14px) !important;\n margin: 0 !important;\n padding: 0 !important;\n border: 1px solid var(--gray-500) !important;\n border-radius: 4px !important;\n background-color: transparent !important;\n background-image: none !important;\n box-shadow: none !important;\n cursor: pointer !important;\n vertical-align: middle !important;\n transition: none !important;\n}\n\n.datatable input[type=\"checkbox\"]::after {\n content: none !important;\n display: none !important;\n}\n\n.datatable input[type=\"checkbox\"]:checked {\n background-color: var(--primary) !important;\n background-image: url(\"data:image/svg+xml, \") !important;\n background-size: 57% !important;\n background-repeat: no-repeat !important;\n background-position: center !important;\n border: none !important;\n}\n\n.datatable input[type=\"checkbox\"]:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n}\n\n/* Centre the checkbox vertically in its cell \u2014 vertical-align:middle on the\n input alone isn't enough because datatable cells have their own line-box\n rules that anchor the box to the baseline. */\n.datatable .dt-cell__content:has(> input[type=\"checkbox\"]:only-child) {\n display: flex !important;\n align-items: center !important;\n justify-content: flex-start !important;\n}\n\n/* Filter row: input + help-icon squash each other in narrow columns. Let\n the input flex-shrink instead of overflowing its siblings. */\n.datatable .dt-row-filter .dt-cell__content {\n display: flex !important;\n align-items: center !important;\n gap: 2px;\n}\n\n.datatable .dt-row-filter .dt-filter.dt-input {\n flex: 1 1 0 !important;\n min-width: 0 !important;\n}\n\n.datatable .dt-row-filter .comparison-help-icon {\n flex: 0 0 auto;\n}\n\n/* ==========================================================================\n List View \u2014 restore toggle knob\n ========================================================================== */\n\ninput.list-row-checkbox::after,\ninput.list-header-checkbox::after {\n inset: auto !important;\n width: 12px !important;\n height: 12px !important;\n background-color: #fff !important;\n border-radius: 50% !important;\n position: absolute !important;\n top: 2px !important;\n right: 2px !important;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;\n transition: transform 0.25s ease !important;\n opacity: 1 !important;\n}\n\ninput.list-row-checkbox:checked::after,\ninput.list-header-checkbox:checked::after {\n transform: translateX(-12px) !important;\n}\n\n\n.frappe-control[data-fieldtype=\"Check\"] .checkbox label {\n align-items: center !important;\n}\n\n.frappe-control[data-fieldtype=\"Check\"] .checkbox .input-area:not(.hide) {\n padding-top: 0 !important;\n display: flex !important;\n align-items: center !important;\n}\n\n/* ==========================================================================\n List View \u2014 swap filter and sort order\n ========================================================================== */\n\n.filter-section {\n display: flex !important;\n}\n\n.filter-section .sort-selector {\n order: -1 !important;\n margin-left: 8px !important;\n}\n\n/* ==========================================================================\n Table Horizontal Scrollbar \u2014 thicker & easier to grab\n ========================================================================== */\n\n/* Force scrollbar always visible & push it below table content */\n.form-grid {\n overflow-x: scroll !important;\n padding-bottom: 12px !important;\n scrollbar-width: auto !important;\n}\n\n.form-grid::-webkit-scrollbar {\n height: 10px !important;\n}\n\n.form-grid::-webkit-scrollbar-track {\n background: var(--gray-100, #f5f5f5) !important;\n}\n\n.form-grid::-webkit-scrollbar-thumb {\n background: var(--gray-400, #c0c6cc) !important;\n border-radius: 5px !important;\n border: 2px solid var(--gray-100, #f5f5f5) !important;\n}\n\n.form-grid::-webkit-scrollbar-thumb:hover {\n background: var(--gray-500, #98a2ab) !important;\n}\n\n\n/* ==========================================================================\n Grid Column Resize Handles\n ========================================================================== */\n\n.jey-col-resize {\n position: absolute;\n top: 0;\n left: -2px;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n z-index: 2;\n background: transparent;\n transition: background 0.15s;\n}\n\n.jey-col-resize:hover,\n.jey-col-resize:active {\n background: var(--primary, #2490ef);\n opacity: 0.5;\n}\n\n/* Column drag & drop */\n.grid-heading-row .grid-static-col[data-jey-draggable] {\n cursor: grab;\n}\n\n.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-left {\n box-shadow: inset -3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-right {\n box-shadow: inset 3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n/* ==========================================================================\n List View Column Resize + Reorder\n ========================================================================== */\n\n.list-row-head .list-row-col {\n position: relative;\n}\n\n/* Column dividers \u2014 hint that headers can be resized / reordered. */\n.list-row-head .list-row-col:not(:last-child) {\n border-left: 1px solid var(--border-color, #e2e6e9);\n}\n\n.list-row-head .jey-col-resize {\n position: absolute;\n top: 0;\n left: -2px;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n z-index: 3;\n background: transparent;\n transition: background 0.15s;\n}\n\n.list-row-head .jey-col-resize:hover,\n.list-row-head .jey-col-resize:active {\n background: var(--primary, #2490ef);\n opacity: 0.5;\n}\n\n.list-row-head .list-row-col[data-jey-draggable]:not(.list-subject) {\n cursor: grab;\n}\n\n.list-row-head .list-row-col.jey-drop-target.jey-drop-left {\n box-shadow: inset -3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n.list-row-head .list-row-col.jey-drop-target.jey-drop-right {\n box-shadow: inset 3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n/* ==========================================================================\n Sidebar \u2014 Full Width button\n ========================================================================== */\n\n/* .body-sidebar-bottom is a flex item of .body-sidebar (column flex).\n By default min-width:auto resolves to min-content, so it refuses to\n shrink below the natural width of its widest text \u2014 and our buttons'\n labels poke past the collapsed sidebar's right edge. Force min-width:0\n so it can match the cross-axis (50px collapsed) and clip properly. */\n.body-sidebar .body-sidebar-bottom {\n min-width: 0;\n}\n\n.jey-fullwidth-link,\n.jey-theme-switch-link,\n.jey-collapse-link {\n text-decoration: none;\n font-size: var(--text-sm);\n display: flex;\n align-items: center;\n cursor: pointer;\n margin-bottom: 8px;\n width: 100%;\n overflow: hidden;\n}\n\n.jey-fullwidth-link svg,\n.jey-theme-switch-link svg,\n.jey-collapse-link svg {\n margin: 0;\n flex: 0 0 auto;\n}\n\n.jey-fullwidth-link span,\n.jey-theme-switch-link span,\n.jey-collapse-link span {\n margin-right: 10px;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1),\n margin-right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* When sidebar is collapsed, animate the label to zero width + zero\n margin so it smoothly slides under the icon instead of leaving a\n single ellipsized letter at the edge. */\n.body-sidebar-container:not(.expanded) .jey-fullwidth-link span,\n.body-sidebar-container:not(.expanded) .jey-theme-switch-link span,\n.body-sidebar-container:not(.expanded) .jey-collapse-link span {\n max-width: 0;\n margin-right: 0;\n}\n\n/* Hide the v16.17 native bottom row (about + collapse icon-buttons).\n Our labeled .jey-collapse-link replaces it. */\n.body-sidebar .sidebar-bottom-actions {\n display: none !important;\n}\n\n/* Frappe v16 toggles .nav-item padding 0\u21928px instantly between\n collapsed/expanded, while the sidebar width itself transitions over\n 0.3s \u2014 making the user/account button visibly jump 8px. Animate the\n padding so it stays in sync with the width. */\n.body-sidebar .nav-item {\n transition: padding 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* ==========================================================================\n Modal / Dialog \u2014 Smooth Entrance\n ========================================================================== */\n\n.modal.fade .modal-dialog {\n transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) !important;\n transform: translateY(-24px) scale(0.97);\n opacity: 0;\n}\n\n.modal.show .modal-dialog {\n transform: none;\n opacity: 1;\n}\n\n\n/* ==========================================================================\n Form Sections \u2014 Cascade Entrance\n ========================================================================== */\n\n@keyframes jey-section-in {\n from { top: -12px; }\n to { top: 0; }\n}\n\n/* Slide-only entrance \u2014 animating `opacity` here would create a persistent\n stacking context on .section-body (Firefox keeps the compositing layer\n alive after the animation completes when `fill-mode: both` keeps opacity\n fill-forward, even though opacity reaches 1). That stacking context traps\n Frappe's child-table row form (.form-in-grid, z-index 1021) under the\n freeze backdrop (#freeze.modal-backdrop, z-index 1020): the row form\n visually disappears behind the backdrop, every mouse click is captured by\n #freeze (whose handler closes the row form), and only keyboard nav works.\n Same reason we slide via `top` instead of `transform: translateY()` \u2014\n `transform` would also leave behind a stacking context.\n `position: relative` alone (without z-index) does NOT create one. */\n.form-layout .form-section .section-head,\n.form-layout .form-section .section-body {\n position: relative;\n animation: jey-section-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.form-layout .form-section:nth-child(1) .section-head,\n.form-layout .form-section:nth-child(1) .section-body { animation-delay: 0.04s; }\n.form-layout .form-section:nth-child(2) .section-head,\n.form-layout .form-section:nth-child(2) .section-body { animation-delay: 0.10s; }\n.form-layout .form-section:nth-child(3) .section-head,\n.form-layout .form-section:nth-child(3) .section-body { animation-delay: 0.16s; }\n.form-layout .form-section:nth-child(4) .section-head,\n.form-layout .form-section:nth-child(4) .section-body { animation-delay: 0.22s; }\n.form-layout .form-section:nth-child(5) .section-head,\n.form-layout .form-section:nth-child(5) .section-body { animation-delay: 0.28s; }\n.form-layout .form-section:nth-child(6) .section-head,\n.form-layout .form-section:nth-child(6) .section-body { animation-delay: 0.34s; }\n.form-layout .form-section:nth-child(7) .section-head,\n.form-layout .form-section:nth-child(7) .section-body { animation-delay: 0.40s; }\n.form-layout .form-section:nth-child(8) .section-head,\n.form-layout .form-section:nth-child(8) .section-body { animation-delay: 0.46s; }\n.form-layout .form-section:nth-child(9) .section-head,\n.form-layout .form-section:nth-child(9) .section-body { animation-delay: 0.52s; }\n.form-layout .form-section:nth-child(10) .section-head,\n.form-layout .form-section:nth-child(10) .section-body { animation-delay: 0.58s; }\n.form-layout .form-section:nth-child(11) .section-head,\n.form-layout .form-section:nth-child(11) .section-body { animation-delay: 0.64s; }\n.form-layout .form-section:nth-child(12) .section-head,\n.form-layout .form-section:nth-child(12) .section-body { animation-delay: 0.70s; }\n\n\n/* ==========================================================================\n Form Tabs \u2014 Sliding Active Indicator\n ========================================================================== */\n\n.form-tabs .nav-link {\n position: relative;\n border-bottom: none !important;\n transition: color 0.3s ease;\n}\n\n.form-tabs .nav-link::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n right: 0;\n left: 0;\n height: 2px;\n background: var(--text-color);\n transform: scaleX(0);\n transform-origin: center;\n transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.form-tabs .nav-link.active::after {\n transform: scaleX(1);\n}\n\n\n/* ==========================================================================\n Dropdown Animations\n ========================================================================== */\n\n.dropdown-menu {\n display: block !important;\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n}\n\n.dropdown-menu.show {\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n animation: jey-dropdown-in 0.2s ease;\n}\n\n/* Applied by JS during Bootstrap hide so Popper's transform reset\n doesn't move the menu mid-fade. See \"Dropdown fade-out\" in jey_theme.js. */\n.dropdown-menu.jey-dropdown-hiding {\n visibility: visible !important;\n pointer-events: none;\n animation: jey-dropdown-out 0.2s ease forwards;\n}\n\n@keyframes jey-dropdown-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes jey-dropdown-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n/* ==========================================================================\n Sidebar \u2014 Smooth Collapse / Expand\n Frappe toggles .body-sidebar-placeholder between display:none and display:flex,\n so the container's fit-content width snaps on expand (the inner sidebar goes\n position:absolute, placeholder appears at 220px instantly). The collapse path\n keeps the sidebar in flow, so its width transition is already smooth.\n Override the container with an explicit width transition to make expand\n symmetric with collapse.\n ========================================================================== */\n\n@media (min-width: 576px) {\n .body-sidebar-container {\n width: 50px;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .body-sidebar-container.expanded {\n width: var(--sidebar-width);\n }\n}\n\n/* ==========================================================================\n Sidebar \u2014 No Alignment Shift Between States\n Regular items land at 15px from the sidebar's left edge (sidebar padding 8\n + icon padding 7). Two state-dependent paddings break that alignment in\n expanded mode:\n 1. Frappe's sidebar_header.js sets inline padding-left/right: 8px on\n .sidebar-header when expanded, 0 when collapsed \u2014 pushes the logo to\n 23px in expanded. Override inline style with !important.\n 2. SCSS mixin body-sidebar-expanded gives .sidebar-user-button\n padding: var(--padding-sm) only when .expanded \u2014 pushes the avatar\n to 23px and makes the button taller, which shifts the Jey buttons\n above it vertically. Zero out the padding.\n Zeroing both keeps every icon/avatar at 15px and button heights constant\n across expand/collapse, so nothing jumps on toggle.\n ========================================================================== */\n\n.body-sidebar .sidebar-header {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.body-sidebar-container.expanded .sidebar-user-button {\n padding: 0 !important;\n}\n\n/* ==========================================================================\n Sidebar \u2014 Hover Effects\n ========================================================================== */\n\n.body-sidebar .standard-sidebar-item .item-anchor {\n transition: padding-right 0.4s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.4s ease;\n}\n\n.body-sidebar .standard-sidebar-item .item-anchor:hover {\n padding-right: calc(var(--padding-xs, 8px) + 4px);\n}\n\n.body-sidebar .standard-sidebar-item .sidebar-item-icon {\n transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.body-sidebar .standard-sidebar-item .item-anchor:hover .sidebar-item-icon {\n transform: scale(1.15);\n}\n\n/* Active item \u2014 subtle left accent bar */\n.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor {\n position: relative;\n}\n\n.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor::before {\n content: \"\";\n position: absolute;\n right: 0;\n top: 20%;\n bottom: 20%;\n width: 3px;\n border-radius: 3px 0 0 3px;\n background: var(--primary, #2490ef);\n opacity: 0.8;\n}\n\n\n/* ==========================================================================\n List View \u2014 Row Entrance Animation\n ========================================================================== */\n\n@keyframes jey-list-row-in {\n from {\n opacity: 0;\n transform: translateX(16px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n.frappe-list .result .list-row-container:not(:first-child) {\n animation: jey-list-row-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.frappe-list .result .list-row-container:nth-child(2) { animation-delay: 0.03s; }\n.frappe-list .result .list-row-container:nth-child(3) { animation-delay: 0.05s; }\n.frappe-list .result .list-row-container:nth-child(4) { animation-delay: 0.07s; }\n.frappe-list .result .list-row-container:nth-child(5) { animation-delay: 0.09s; }\n.frappe-list .result .list-row-container:nth-child(6) { animation-delay: 0.11s; }\n.frappe-list .result .list-row-container:nth-child(7) { animation-delay: 0.13s; }\n.frappe-list .result .list-row-container:nth-child(8) { animation-delay: 0.15s; }\n.frappe-list .result .list-row-container:nth-child(9) { animation-delay: 0.17s; }\n.frappe-list .result .list-row-container:nth-child(10) { animation-delay: 0.19s; }\n.frappe-list .result .list-row-container:nth-child(11) { animation-delay: 0.21s; }\n.frappe-list .result .list-row-container:nth-child(12) { animation-delay: 0.23s; }\n.frappe-list .result .list-row-container:nth-child(13) { animation-delay: 0.25s; }\n.frappe-list .result .list-row-container:nth-child(14) { animation-delay: 0.27s; }\n.frappe-list .result .list-row-container:nth-child(15) { animation-delay: 0.29s; }\n.frappe-list .result .list-row-container:nth-child(16) { animation-delay: 0.31s; }\n.frappe-list .result .list-row-container:nth-child(17) { animation-delay: 0.33s; }\n.frappe-list .result .list-row-container:nth-child(18) { animation-delay: 0.35s; }\n.frappe-list .result .list-row-container:nth-child(19) { animation-delay: 0.37s; }\n.frappe-list .result .list-row-container:nth-child(20) { animation-delay: 0.39s; }\n.frappe-list .result .list-row-container:nth-child(21) { animation-delay: 0.41s; }\n\n\n/* ==========================================================================\n Search Dialog \u2014 Fade In / Out\n ========================================================================== */\n\n.modal:has(.cool-awesomebar-modal-footer) {\n display: block !important;\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n visibility 0.5s;\n}\n\n.modal:has(.cool-awesomebar-modal-footer) .modal-dialog {\n transform: translateY(-30px);\n transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.modal.show:has(.cool-awesomebar-modal-footer) {\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n}\n\n.modal.show:has(.cool-awesomebar-modal-footer) .modal-dialog {\n transform: none;\n}\n\n\n/* ==========================================================================\n Report Summary \u2014 Card Cascade\n ========================================================================== */\n\n@keyframes jey-summary-in {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.report-summary .summary-item {\n animation: jey-summary-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.report-summary .summary-item:nth-child(1) { animation-delay: 0.05s; }\n.report-summary .summary-item:nth-child(2) { animation-delay: 0.10s; }\n.report-summary .summary-item:nth-child(3) { animation-delay: 0.15s; }\n.report-summary .summary-item:nth-child(4) { animation-delay: 0.20s; }\n.report-summary .summary-item:nth-child(5) { animation-delay: 0.25s; }\n.report-summary .summary-item:nth-child(6) { animation-delay: 0.30s; }\n\n\n/* ==========================================================================\n Form Section Collapse / Expand \u2014 Smooth\n ========================================================================== */\n\n.form-section .collapse-indicator {\n transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n display: inline-block;\n}\n\n.form-section .section-head.collapsed .collapse-indicator {\n transform: rotate(90deg);\n}\n\n/* Expanded section-body has no `overflow: hidden` \u2014 so Link-field autocomplete\n dropdowns (and any other overflow) are not clipped by the section boundary.\n `overflow: hidden` is applied via JS only during the collapse/expand\n transition (see jey_theme.js), then removed once the animation finishes. */\n.form-section .section-head.collapsible + .section-body {\n display: flex !important;\n flex-wrap: wrap;\n transition: max-height 0.5s ease-in-out,\n padding 0.5s ease-in-out;\n}\n\n.form-section .section-head.collapsed + .section-body {\n max-height: 0 !important;\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n overflow: hidden;\n transition: max-height 0.5s ease-in-out,\n padding 0.5s ease-in-out;\n}\n\n\n\n/* ==========================================================================\n Link Field \u2014 Awesomplete Dropdown Fade\n ========================================================================== */\n\n.awesomplete > [role=\"listbox\"] {\n animation: jey-awesomplete-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n/* Applied by JS on awesomplete-close so the listbox fades instead of\n vanishing when [hidden] is set. See \"Awesomplete fade-out\" in jey_theme.js. */\n.awesomplete > [role=\"listbox\"].jey-awesomplete-hiding {\n display: block !important;\n pointer-events: none;\n animation: jey-awesomplete-out 0.2s ease forwards;\n}\n\n@keyframes jey-awesomplete-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes jey-awesomplete-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n/* Lift the open autocomplete listbox above its siblings so the dropdown can\n spill past the section boundary without being painted over by later\n sections (which naturally paint above earlier ones in DOM order).\n Lift only the listbox itself, NOT the surrounding .form-section, because a\n z-index on the section creates a stacking context that traps Frappe's\n child-table row form (.form-in-grid, z-index 1021) below the freeze\n backdrop (#freeze.modal-backdrop, z-index 1020), leaving the screen\n unclickable when editing a row. */\n.awesomplete > ul[role=\"listbox\"]:not([hidden]) {\n z-index: 10;\n}\n\n\n/* ==========================================================================\n Input Focus \u2014 Inset Press\n ========================================================================== */\n\ninput.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\ntextarea.form-control,\n.frappe-control input:not([type=\"checkbox\"]):not([type=\"radio\"]),\n.frappe-control textarea {\n transition:\n background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\ninput.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\ntextarea.form-control:focus,\n.frappe-control input:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n.frappe-control textarea:focus {\n border-color: var(--gray-500, #a8b0b8) !important;\n outline: none;\n}\n\n\n/* ==========================================================================\n Buttons \u2014 Shine on Hover, Press on Click\n ========================================================================== */\n\n.btn {\n position: relative;\n overflow: hidden;\n transition: box-shadow 0.4s ease, background-color 0.3s ease, color 0.3s ease;\n}\n\n.btn::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: linear-gradient(-105deg,\n transparent 35%,\n rgba(255, 255, 255, 0.25) 45%,\n rgba(255, 255, 255, 0.25) 55%,\n transparent 65%);\n transform: translateX(110%);\n transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);\n pointer-events: none;\n}\n\n.btn:hover::after {\n transform: translateX(-110%);\n}\n\n.btn:active {\n box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.2) !important;\n}\n\n\n/* Hide dropdown items now surfaced as sidebar buttons */\n.dropdown-menu-item[onclick*=\"toggle_full_width\"],\n.dropdown-menu-item[onclick*=\"clear_cache\"],\n.dropdown-menu-item[onclick*=\"ThemeSwitcher\"],\n.dropdown-menu-item[data-name=\"website\"],\n.dropdown-menu-item.jey-hidden-item {\n display: none !important;\n}\n\n\n/* ==========================================================================\n Desktop Icons \u2014 Shared base (all themes)\n ========================================================================== */\n\n.desktop-icon:hover {\n transform: translateY(-2px) !important;\n}\n\n.desktop-icon:active {\n transform: scale(0.97) !important;\n}\n\n.icon-container.jey-chrome-done {\n width: 72px !important;\n height: 72px !important;\n padding: 0 !important;\n border-radius: 50% !important;\n background: none !important;\n overflow: visible !important;\n position: relative !important;\n}\n\n.icon-container.jey-chrome-done:hover {\n transform: none !important;\n}\n\n.icon-container.folder-icon.jey-chrome-done {\n box-shadow: none !important;\n}\n\n/* ==========================================================================\n Desktop Modal (module icons picker) \u2014 caption overflow + clean heading\n ========================================================================== */\n\n/* Give the 4-col icon grid room between cells so captions don't collide */\n#desktop-modal .icons-container .icons {\n gap: 12px 8px !important;\n padding: 12px 0 !important;\n}\n\n/* Each icon: constrain to its grid track and center contents */\n#desktop-modal .desktop-icon {\n min-width: 0 !important;\n display: flex !important;\n flex-direction: column !important;\n align-items: center !important;\n text-align: center !important;\n}\n\n/* Caption wraps to 2 lines max, truncates with ellipsis, never overflows column */\n#desktop-modal .desktop-icon .icon-caption {\n width: 100% !important;\n max-width: 100% !important;\n padding: 0 4px !important;\n margin-top: 14px !important;\n}\n\n#desktop-modal .desktop-icon .icon-title {\n width: 100% !important;\n max-width: 100% !important;\n display: -webkit-box !important;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n overflow-wrap: anywhere !important;\n word-break: break-word !important;\n line-height: 1.25 !important;\n white-space: normal !important;\n}\n\n/* Strip the themed gradient/border off the desktop-modal header \u2014 title only, no bar */\n#desktop-modal .modal-header.desktop-modal-heading {\n background: transparent !important;\n border-bottom: 0 !important;\n box-shadow: none !important;\n}\n\n#desktop-modal .modal-header.desktop-modal-heading .modal-title,\n#desktop-modal .modal-header.desktop-modal-heading .title-input-label span {\n background: transparent !important;\n box-shadow: none !important;\n text-shadow: none !important;\n}\n\n/* Everything inside the desktop-modal renders text crisply \u2014 no inherited blur */\n#desktop-modal .icon-title,\n#desktop-modal .icon-caption {\n text-shadow: none !important;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* Grow to content: no inner scrollbar when icons fit */\n#desktop-modal .modal-body.desktop-modal-body {\n overflow: visible !important;\n max-height: none !important;\n}\n\n#desktop-modal .icons-container {\n overflow: visible !important;\n max-height: none !important;\n}\n\n/* ==========================================================================\n Icon Animations \u2014 Shared (all themes)\n ========================================================================== */\n\n/* Framework \u2014 gentle float */\n.ico-framework { animation: ico-float 5s ease-in-out infinite; transform-origin: center; }\n@keyframes ico-float {\n 0%,100% { transform: translateY(0) rotate(0deg); opacity: 0.85; }\n 30% { transform: translateY(-2px) rotate(-0.8deg); opacity: 1; }\n 70% { transform: translateY(0.5px) rotate(0.4deg); opacity: 0.9; }\n}\n\n.ico-org { animation: ico-org 6s ease-in-out infinite; transform-origin: center bottom; }\n@keyframes ico-org {\n 0%,100% { transform: scaleY(1) scaleX(1); }\n 25% { transform: scaleY(1.03) scaleX(0.99); }\n 50% { transform: scaleY(1.05) scaleX(0.98); }\n 75% { transform: scaleY(1.02) scaleX(1); }\n}\n\n.ico-acc .acc-btn { animation: ico-press 3s ease-in-out infinite; }\n@keyframes ico-press { 0%,25%,100% { opacity: 0.5; stroke-width: 2.5; } 12% { opacity: 1; stroke-width: 3.2; } }\n\n.ico-assets { animation: ico-safe 6s ease-in-out infinite; transform-origin: center; }\n.ico-assets .lock-dot { animation: ico-blink 5s ease-in-out infinite; }\n@keyframes ico-safe { 0%,100% { transform: translateY(0); } 40% { transform: translateY(-0.6px); } 60% { transform: translateY(0.3px); } }\n@keyframes ico-blink { 0%,35%,65%,100% { opacity: 1; } 50% { opacity: 0.15; } }\n\n.ico-buying { animation: ico-cart 6s ease-in-out infinite; transform-origin: 12px 21px; }\n@keyframes ico-cart { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-1.5px) rotate(-0.8deg); } 50% { transform: translateX(0.5px) rotate(0.3deg); } 80% { transform: translateX(-0.8px) rotate(-0.4deg); } }\n\n.ico-mfg .gear1 { animation: ico-spin 9s linear infinite; transform-origin: 9px 12px; }\n.ico-mfg .gear2 { animation: ico-spin-r 7s linear infinite; transform-origin: 17px 8px; }\n@keyframes ico-spin { to { transform: rotate(-360deg); } }\n@keyframes ico-spin-r { to { transform: rotate(360deg); } }\n\n.ico-proj .col1 { animation: ico-g1 5s ease-in-out infinite; transform-origin: 5.5px 21px; }\n.ico-proj .col2 { animation: ico-g2 5s ease-in-out infinite 0.5s; transform-origin: 12.5px 15px; }\n.ico-proj .col3 { animation: ico-g3 5s ease-in-out infinite 1s; transform-origin: 19.5px 18px; }\n@keyframes ico-g1 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(0.85); opacity: 1; } }\n@keyframes ico-g2 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(1.15); opacity: 1; } }\n@keyframes ico-g3 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(0.88); opacity: 1; } }\n\n.ico-quality { animation: ico-shield 6s ease-in-out infinite; transform-origin: 12px 14px; }\n@keyframes ico-shield { 0%,100% { transform: rotate(0deg) scale(1); } 15% { transform: rotate(-1.5deg) scale(1.03); } 35% { transform: rotate(0.5deg) scale(1.01); } 55% { transform: rotate(1.5deg) scale(1.03); } 75% { transform: rotate(-0.5deg) scale(1.01); } }\n\n.ico-selling { animation: ico-sell 4s ease-in-out infinite; transform-origin: center; }\n.ico-selling .arrow-head { animation: ico-up 4s ease-in-out infinite; }\n@keyframes ico-sell { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }\n@keyframes ico-up { 0%,100% { transform: translate(0,0); } 30% { transform: translate(-1px, -1.5px); } 60% { transform: translate(-2px, -2.5px); } }\n\n.ico-stock { animation: ico-bob 5s ease-in-out infinite; transform-origin: center; }\n@keyframes ico-bob { 0%,100% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(-2deg) translateY(-0.7px); } 50% { transform: rotate(1deg) translateY(0.3px); } 80% { transform: rotate(-1.5deg) translateY(-0.4px); } }\n\n.ico-sub .person-l { animation: ico-rl 6s ease-in-out infinite; transform-origin: 8px 12px; }\n.ico-sub .person-r { animation: ico-rr 6s ease-in-out infinite; transform-origin: 16px 12px; }\n@keyframes ico-rl { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-1px) rotate(-1deg); } 60% { transform: translateX(-1.5px) rotate(-0.5deg); } }\n@keyframes ico-rr { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(1px) rotate(1deg); } 60% { transform: translateX(1.5px) rotate(0.5deg); } }\n\n.ico-settings { animation: ico-gear-main 12s linear infinite; transform-origin: center; }\n@keyframes ico-gear-main { to { transform: rotate(-360deg); } }\n\n/* HR \u2014 plus sign pulsing */\n.ico-hr .plus-v { animation: ico-pv 4s ease-in-out infinite; transform-origin: center; }\n.ico-hr .plus-h { animation: ico-ph 4s ease-in-out infinite 0.3s; transform-origin: center; }\n@keyframes ico-pv { 0%,100% { opacity: 0.4; stroke-width: 1.8; } 50% { opacity: 1; stroke-width: 2.4; } }\n@keyframes ico-ph { 0%,100% { opacity: 0.4; stroke-width: 1.8; } 50% { opacity: 1; stroke-width: 2.4; } }\n\n/* ==========================================================================\n Theme Switcher Dialog\n ========================================================================== */\n\n.jey-theme-grid {\n display: flex;\n gap: 20px;\n padding: 20px;\n justify-content: center;\n}\n\n.jey-theme-card {\n cursor: pointer;\n text-align: center;\n padding: 16px;\n border-radius: 12px;\n border: 2px solid transparent;\n transition: border-color 0.2s, background 0.2s;\n min-width: 140px;\n}\n\n.jey-theme-card:hover {\n background: var(--subtle-fg, #f5f5f5);\n}\n\n.jey-theme-card.selected {\n border-color: var(--primary, #2490ef);\n background: var(--subtle-fg, #f5f5f5);\n}\n\n.jey-theme-preview {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n margin: 0 auto 12px;\n position: relative;\n overflow: hidden;\n}\n\n.jey-theme-preview--chrome {\n background: conic-gradient(from -140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg);\n box-shadow: 0 3px 8px rgba(0,0,0,0.15), inset 0 1px 1px rgba(255,255,255,0.5);\n}\n\n.jey-theme-preview--chrome .jey-theme-preview-icon {\n position: absolute;\n inset: 9px;\n border-radius: 50%;\n background: linear-gradient(-168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%);\n}\n\n.jey-theme-preview--modern {\n border-radius: 16px;\n background: rgba(255, 255, 255, 0.4);\n -webkit-backdrop-filter: blur(6px);\n backdrop-filter: blur(6px);\n border: 1px solid rgba(255, 255, 255, 0.5);\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n}\n\n.jey-theme-preview--modern .jey-theme-preview-icon {\n position: absolute;\n inset: 22px;\n border-radius: 6px;\n background: #4f46e5;\n opacity: 0.25;\n}\n\n.jey-theme-label {\n font-weight: 600;\n font-size: var(--text-base);\n margin-bottom: 2px;\n}\n\n.jey-theme-info {\n font-size: var(--text-sm);\n color: var(--text-muted);\n}\n\n/* ==========================================================================\n Module Widget Cards \u2014 Entrance & Hover Animations\n ========================================================================== */\n\n/* --- Animation variant #2 (final): Slide-up entrance + Accent Bar hover --- */\n\n/* Entrance: fade-in slide-up (from variant #1) */\n.ce-block .links-widget-box,\n.ce-block .number-widget-box {\n opacity: 0;\n transform: translateY(24px) scale(0.97);\n animation: jey-card-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;\n border-radius: var(--border-radius-lg, 12px);\n transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 0.35s ease;\n position: relative;\n}\n\n/* Number card value \u2014 delayed fade-in after card entrance */\n@keyframes jey-number-in {\n from { opacity: 0; transform: translateY(6px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n.number-widget-box .widget-content .number {\n animation: jey-number-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both;\n}\n\n/* Allow dropdown menus (card actions) to escape the widget box.\n Without this, .widget-control .dropdown-menu is clipped/hidden behind\n the widget because Popper renders it as a sibling inside the box. */\n.ce-block .links-widget-box .widget-control .dropdown-menu,\n.ce-block .number-widget-box .widget-control .dropdown-menu {\n z-index: 1050;\n}\n\n/* Stagger delays */\n.ce-block:nth-child(1) .links-widget-box,\n.ce-block:nth-child(1) .number-widget-box { animation-delay: 0.00s; }\n.ce-block:nth-child(2) .links-widget-box,\n.ce-block:nth-child(2) .number-widget-box { animation-delay: 0.06s; }\n.ce-block:nth-child(3) .links-widget-box,\n.ce-block:nth-child(3) .number-widget-box { animation-delay: 0.12s; }\n.ce-block:nth-child(4) .links-widget-box,\n.ce-block:nth-child(4) .number-widget-box { animation-delay: 0.18s; }\n.ce-block:nth-child(5) .links-widget-box,\n.ce-block:nth-child(5) .number-widget-box { animation-delay: 0.24s; }\n.ce-block:nth-child(6) .links-widget-box,\n.ce-block:nth-child(6) .number-widget-box { animation-delay: 0.30s; }\n.ce-block:nth-child(7) .links-widget-box,\n.ce-block:nth-child(7) .number-widget-box { animation-delay: 0.36s; }\n.ce-block:nth-child(8) .links-widget-box,\n.ce-block:nth-child(8) .number-widget-box { animation-delay: 0.42s; }\n.ce-block:nth-child(9) .links-widget-box,\n.ce-block:nth-child(9) .number-widget-box { animation-delay: 0.48s; }\n.ce-block:nth-child(10) .links-widget-box,\n.ce-block:nth-child(10) .number-widget-box { animation-delay: 0.54s; }\n.ce-block:nth-child(11) .links-widget-box,\n.ce-block:nth-child(11) .number-widget-box { animation-delay: 0.60s; }\n.ce-block:nth-child(12) .links-widget-box,\n.ce-block:nth-child(12) .number-widget-box { animation-delay: 0.66s; }\n\n@keyframes jey-card-in {\n from {\n opacity: 0;\n transform: translateY(24px) scale(0.97);\n }\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n/* Hover: soft bottom accent line + lift */\n.ce-block .links-widget-box::after,\n.ce-block .number-widget-box::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n right: 10%;\n left: 10%;\n height: 2.5px;\n border-radius: 2px 2px 0 0;\n background: var(--primary, #2490ef);\n transform: scaleX(0);\n transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);\n transform-origin: center;\n}\n\n.ce-block .links-widget-box:hover::after,\n.ce-block .number-widget-box:hover::after {\n transform: scaleX(1);\n}\n\n.ce-block .links-widget-box:hover,\n.ce-block .number-widget-box:hover {\n transform: translateY(-3px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08),\n 0 2px 6px rgba(0, 0, 0, 0.04);\n}\n\n/* Lift widget above its siblings while hovered or while its card-actions\n dropdown is open, so the dropdown menu (which lives inside the widget's\n own stacking context due to transform) is not covered by neighbours. */\n.ce-block .links-widget-box:hover,\n.ce-block .number-widget-box:hover,\n.ce-block .links-widget-box:focus-within,\n.ce-block .number-widget-box:focus-within {\n z-index: 100;\n}\n\n.ce-block .links-widget-box:has(.dropdown-menu.show),\n.ce-block .number-widget-box:has(.dropdown-menu.show) {\n z-index: 200;\n}\n\n\n/* Link items: colored left accent bar slides in */\n.links-widget-box .link-item {\n position: relative;\n transition: background 0.25s ease, transform 0.25s ease;\n border-radius: var(--border-radius, 8px);\n overflow: hidden;\n}\n\n.links-widget-box .link-item:hover {\n transform: translateX(-6px);\n background: var(--subtle-fg, rgba(0, 0, 0, 0.02));\n}\n\n.links-widget-box .link-item .es-icon {\n display: none !important;\n}\n\n\n/* ==========================================================================\n Select Field \u2014 Custom chevron icon\n ========================================================================== */\n\n.select-icon svg {\n display: none !important;\n}\n\n.select-icon {\n top: 0 !important;\n bottom: 0 !important;\n display: flex !important;\n align-items: center !important;\n}\n\n.select-icon::after {\n content: \"\" !important;\n display: block;\n width: 12px;\n height: 12px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n/* ==========================================================================\n Empty State \u2014 Custom folder icon\n ========================================================================== */\n\n.msg-box .icon-xl {\n display: none !important;\n}\n\n.msg-box .mb-4 {\n display: flex;\n justify-content: center;\n}\n\n.msg-box .mb-4::after {\n content: \"\" !important;\n display: block;\n width: 48px;\n height: 48px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b0b8c0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 16 12 14 15 10 15 8 12 2 12'/%3E%3Cpath d='M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E\");\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n/* ==========================================================================\n Hide \"Getting Started\" onboarding panels\n ========================================================================== */\n\n.user-onboarding {\n display: none !important;\n}\n\n/* ==========================================================================\n Comment-count icon override\n jey_theme.js swaps the sprite href from #es-line-chat-alt (filled)\n to a lucide stroke-based icon. The SVG element still carries .es-icon\n (fill: currentColor; stroke-width: 0), which would render the new\n icon as a solid black shape \u2014 force stroke rendering here.\n ========================================================================== */\n.comment-count svg {\n fill: none !important;\n stroke: currentColor !important;\n stroke-width: 1.5 !important;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n/* ==========================================================================\n Activity panel & comment input \u2014 transparent background\n Frappe core paints .activity-title / .timeline-actions with var(--bg-color),\n .frappe-control .ql-editor with var(--control-bg), and the form footer's\n .comment-box wraps the input area; strip them all so the activity panel\n and comment composer blend with the form background.\n ========================================================================== */\n.new-timeline .activity-title,\n.new-timeline .timeline-actions,\n.comment-box,\n.comment-input-wrapper,\n.comment-input-wrapper .ql-container,\n.comment-input-wrapper .frappe-control .ql-editor {\n background: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n}\n\n/* List view \u2014 period (Between) filter sized to fit \"DD/MM/YYYY to DD/MM/YYYY\". */\n.standard-filter-section .frappe-control.jey-period-filter {\n flex: 0 0 auto;\n min-width: 200px;\n}\n.standard-filter-section .frappe-control.jey-period-filter input {\n min-width: 200px;\n}\n\n/* Grid \"Configure Columns\" dialog \u2014 let rows grow when label wraps.\n Frappe hardcodes height:32px inline on each .fields_order row in\n grid_row.js, which clips long translated labels (eg. Azerbaijani\n \"\u018Fsas Tarif (Anbar \u00D6l\u00E7\u00FC Vahidin\u0259 g\u00F6r\u0259)\") so the wrapped portion\n overflows into the next row and into the help text below. Switch\n to flex centering with min-height so rows grow with content. */\n.control-input.fields_order {\n height: auto !important;\n min-height: 32px;\n display: flex;\n align-items: center;\n}\n.control-input.fields_order > .row {\n width: 100%;\n align-items: center;\n margin: 0;\n}\n.control-input.fields_order > .row > [class*=\"col-\"] {\n padding-top: 0 !important;\n margin-top: 0 !important;\n}\n\n/* ===== theme_chrome.css ===== */\n/* ==========================================================================\n THEME: Chrome [data-jey-theme=\"chrome\"]\n Metallic chrome button with conic-gradient rings and rotating glow.\n ========================================================================== */\n\n@keyframes jey-chrome-rotate-glow {\n from { transform: rotate(0deg); }\n to { transform: rotate(-360deg); }\n}\n\n@keyframes jey-chrome-face-light {\n 0% { background: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n 25% { background: radial-gradient(circle at 75% 25%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n 50% { background: radial-gradient(circle at 70% 75%, rgba(255,255,255,0.35) 0%, transparent 55%); }\n 75% { background: radial-gradient(circle at 25% 70%, rgba(255,255,255,0.35) 0%, transparent 55%); }\n 100% { background: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n}\n\n@keyframes jey-chrome-refl-drift {\n 0%, 100% { top: 12%; opacity: 0.7; }\n 50% { top: 18%; opacity: 0.5; }\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome {\n width: 72px; height: 72px; border-radius: 50%; position: relative;\n background: radial-gradient(ellipse at 35% 20%, rgba(255,255,255,0.7) 0%, transparent 55%), linear-gradient(-180deg, #e0e0e0 0%, #b8b8b8 100%);\n box-shadow: 0 4px 10px rgba(0,0,0,0.18), 0 1px 3px rgba(0,0,0,0.1), inset 0 1px 1px rgba(255,255,255,0.7);\n transition: box-shadow 0.3s ease;\n}\n\n[data-jey-theme=\"chrome\"] .desktop-icon:hover .jey-chrome {\n box-shadow: 0 6px 16px rgba(0,0,0,0.22), 0 1px 3px rgba(0,0,0,0.12), 0 0 14px rgba(255,255,255,0.2), inset 0 1px 1px rgba(255,255,255,0.7);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-ring {\n position: absolute; inset: 2px; border-radius: 50%;\n background: conic-gradient(from -140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg);\n box-shadow: inset 0 1px 2px rgba(0,0,0,0.2); overflow: hidden;\n}\n\n[data-jey-theme=\"chrome\"] .jey-ring-glow {\n position: absolute; inset: -10px; border-radius: 50%;\n background: conic-gradient(from 0deg, transparent 0deg, transparent 140deg, rgba(255,255,255,0.55) 165deg, rgba(255,255,255,0.8) 180deg, rgba(255,255,255,0.55) 195deg, transparent 220deg, transparent 360deg);\n animation: jey-chrome-rotate-glow 8s linear infinite; pointer-events: none;\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-gap {\n position: absolute; inset: 5px; border-radius: 50%;\n background: linear-gradient(-180deg, #888 0%, #aaa 50%, #999 100%);\n box-shadow: inset 0 1px 3px rgba(0,0,0,0.35), inset 0 -1px 1px rgba(255,255,255,0.2);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-ring-inner {\n position: absolute; inset: 6px; border-radius: 50%;\n background: conic-gradient(from -200deg, #b0b0b0 0deg, #eee 30deg, #999 70deg, #ddd 110deg, #aaa 160deg, #f0f0f0 200deg, #909090 250deg, #ccc 300deg, #b0b0b0 360deg);\n box-shadow: inset 0 1px 1px rgba(0,0,0,0.15);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-face {\n position: absolute; inset: 9px; border-radius: 50%; overflow: hidden;\n background: linear-gradient(-168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%);\n box-shadow: inset 0 3px 7px rgba(255,255,255,0.7), inset 0 -3px 6px rgba(0,0,0,0.06);\n display: flex; align-items: center; justify-content: center;\n}\n\n[data-jey-theme=\"chrome\"] .jey-face-glow {\n position: absolute; inset: 0; border-radius: 50%;\n animation: jey-chrome-face-light 8s ease-in-out infinite;\n pointer-events: none; z-index: 1;\n}\n\n[data-jey-theme=\"chrome\"] .jey-face-reflection {\n position: absolute; top: 15%; right: 10%; width: 80%; height: 30%;\n background: linear-gradient(-180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.15) 60%, transparent 100%);\n border-radius: 50%; pointer-events: none; z-index: 1;\n animation: jey-chrome-refl-drift 10s ease-in-out infinite;\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-face .jey-icon {\n width: 24px !important; height: 24px !important;\n stroke: #505050 !important; fill: none !important;\n stroke-width: 1.8 !important; stroke-linecap: round !important; stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.5)) !important;\n position: relative; z-index: 2;\n}\n\n\n/* ==========================================================================\n FULL APP CHROME THEME\n Real metallic chrome with 45\u00B0 multi-stop reflective gradients,\n brushed metal textures, beveled edges, and conic-gradient accents.\n ========================================================================== */\n\n/* --- Shine sweep animation for interactive elements --- */\n@keyframes jey-chrome-shine {\n 0% { transform: translateX(100%) skewX(15deg); }\n 100% { transform: translateX(-200%) skewX(15deg); }\n}\n\n/* ==========================================================================\n CSS Variable Overrides\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] {\n /* --- Surfaces --- */\n --bg-color: #d8d8d8;\n --fg-color: #e8e8e8;\n --card-bg: #e0e0e0;\n --subtle-accent: #d4d4d4;\n --subtle-fg: #d0d0d0;\n --fg-hover-color: #ccc;\n --highlight-color: #d4d4d4;\n --navbar-bg: #d0d0d0;\n --modal-bg: #ddd;\n --toast-bg: #ddd;\n --popover-bg: #e0e0e0;\n --control-bg: #d5d5d5;\n --control-bg-on-gray: #ccc;\n --awesomebar-focus-bg: #e8e8e8;\n --disabled-control-bg: #d0d0d0;\n --skeleton-bg: #c8c8c8;\n --surface-menu-bar: #d4d4d4;\n --surface-white: #e0e0e0;\n --surface-gray-1: #d8d8d8;\n --surface-gray-2: #d0d0d0;\n --surface-gray-3: #c8c8c8;\n --surface-gray-4: #bbb;\n --surface-modal: #ddd;\n --placeholder-color: #ccc;\n\n /* --- Sidebar --- */\n --sidebar-hover-color: #c8c8c8;\n --sidebar-active-color: #d8d8d8;\n --sidebar-border-color: #aaa;\n --divider-color: #b0b0b0;\n\n /* --- Text --- */\n --heading-color: #333;\n --text-color: #404040;\n --text-neutral: #333;\n --text-muted: #666;\n --text-light: #888;\n --text-dark: #f0f0f0;\n --disabled-text-color: #888;\n --ink-gray-7: #555;\n --ink-gray-8: #404040;\n --ink-gray-9: #333;\n\n /* --- Borders --- */\n --border-color: #aaa;\n --dark-border-color: #999;\n --table-border-color: #aaa;\n --btn-group-border-color: #999;\n --outline-gray-1: #b0b0b0;\n --outline-gray-2: #999;\n --outline-gray-modals: #aaa;\n\n /* --- Primary / Buttons --- */\n --primary: #555;\n --brand-color: #555;\n --btn-primary: #777;\n --btn-default-bg: #ccc;\n --btn-default-hover-bg: #bbb;\n --btn-ghost-hover-bg: #c0c0c0;\n --border-primary: #777;\n\n /* --- Shadows (beveled metallic) --- */\n --shadow-xs: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.5);\n --shadow-sm: 1px 1px 3px rgba(0,0,0,0.18), -1px -1px 2px rgba(255,255,255,0.45);\n --shadow-base: 2px 2px 4px rgba(0,0,0,0.15), -1px -1px 2px rgba(255,255,255,0.4);\n --shadow-md: 2px 2px 6px rgba(0,0,0,0.18), -1px -1px 3px rgba(255,255,255,0.35);\n --shadow-lg: 3px 3px 10px rgba(0,0,0,0.15), -2px -2px 5px rgba(255,255,255,0.3);\n --shadow-xl: 4px 4px 16px rgba(0,0,0,0.18), -2px -2px 6px rgba(255,255,255,0.25);\n --shadow-2xl: 6px 6px 24px rgba(0,0,0,0.2), -3px -3px 8px rgba(255,255,255,0.2);\n --shadow-inset: inset 0px -1px 0px #999;\n --btn-shadow: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.4);\n --card-shadow: 2px 2px 6px rgba(0,0,0,0.12), -1px -1px 3px rgba(255,255,255,0.4);\n --modal-shadow: 6px 6px 30px rgba(0,0,0,0.3), -3px -3px 10px rgba(255,255,255,0.15);\n --awesomebar-shadow: 3px 3px 12px rgba(0,0,0,0.15), -2px -2px 6px rgba(255,255,255,0.3);\n\n /* --- Focus rings --- */\n --focus-default: 0 0 0 2px rgba(150,150,150,0.5);\n\n /* --- Scrollbar --- */\n --scrollbar-thumb-color: #999;\n --scrollbar-track-color: #c8c8c8;\n\n /* --- Checkbox / Switch --- */\n --switch-bg: #aaa;\n --checkbox-color: #555;\n --checkbox-gradient: linear-gradient(180deg, #777 0%, #666 100%);\n\n /* --- Timeline --- */\n --timeline-badge-color: #555;\n --timeline-badge-bg: #ccc;\n\n /* --- Date picker --- */\n --date-active-bg: #777;\n --date-active-text: #f0f0f0;\n --date-range-bg: #ccc;\n\n /* --- Progress / Misc --- */\n --progress-bar-bg: #777;\n --code-block-bg: #444;\n --code-block-text: #ccc;\n}\n\n\n/* ==========================================================================\n Body \u2014 Brushed Metal Background\n 3 layered repeating-gradients at different lengths = realistic grain\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] body {\n background:\n radial-gradient(ellipse at 25% 15%, rgba(255,255,255,0.45) 0%, transparent 50%),\n radial-gradient(ellipse at 80% 80%, rgba(255,255,255,0.2) 0%, transparent 45%),\n radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.03) 0%, transparent 70%),\n linear-gradient(-168deg, #d8d8d8 0%, #c4c4c4 40%, #b8b8b8 70%, #c8c8c8 100%) !important;\n background-attachment: fixed !important;\n}\n\n[data-jey-theme=\"chrome\"] .page-container {\n background: transparent !important;\n}\n\n\n/* ==========================================================================\n Navbar \u2014 Reflective Chrome Bar\n 45\u00B0 multi-stop gradient simulating polished metal reflection\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .navbar {\n background:\n linear-gradient(-45deg, #aaa 2%, #ddd 8%, #bbb 18%, #e8e8e8 30%, #ccc 45%, #eee 55%, #bbb 68%, #ddd 80%, #aaa 95%) !important;\n border-bottom: 1px solid #888 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.08),\n 0 2px 4px rgba(0,0,0,0.15) !important;\n}\n\n[data-jey-theme=\"chrome\"] .navbar .navbar-nav .nav-link {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .navbar .navbar-nav .nav-link:hover {\n color: #222 !important;\n background: linear-gradient(-180deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.1) 100%) !important;\n border-radius: 6px;\n}\n\n\n/* ==========================================================================\n Awesomebar \u2014 Sunken Metal Slot\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .search-bar input {\n background: linear-gradient(-180deg, #c0c0c0 0%, #d0d0d0 100%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n inset 0 2px 4px rgba(0,0,0,0.15),\n inset 0 0 0 1px rgba(0,0,0,0.05),\n 0 1px 0 rgba(255,255,255,0.5) !important;\n color: #333 !important;\n border-radius: 6px !important;\n}\n\n[data-jey-theme=\"chrome\"] .search-bar input:focus {\n background: linear-gradient(-180deg, #d5d5d5 0%, #e0e0e0 100%) !important;\n border-color: #888 !important;\n box-shadow:\n inset 0 1px 3px rgba(0,0,0,0.1),\n 0 0 0 2px rgba(150,150,150,0.3),\n 0 1px 0 rgba(255,255,255,0.4) !important;\n}\n\n[data-jey-theme=\"chrome\"] .search-bar .search-icon {\n color: #777 !important;\n}\n\n\n/* ==========================================================================\n Sidebar \u2014 Brushed Metal Panel\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .body-sidebar-container {\n background: linear-gradient(-160deg, #b8b8b8 0%, #f0f0f0 12%, #c0c0c0 28%, #f4f4f4 42%, #b8b8b8 58%, #ededed 72%, #aaa 88%, #ddd 100%) !important;\n border-left: 1px solid #888 !important;\n box-shadow:\n inset 1px 0 0 rgba(255,255,255,0.6),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.1),\n -2px 0 8px rgba(0,0,0,0.12) !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-top,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-bottom,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-cards {\n background: transparent !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .standard-sidebar-item .item-anchor:hover {\n background: linear-gradient(-90deg, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor {\n background: linear-gradient(-45deg, #bbb 5%, #ddd 30%, #ccc 60%, #ddd 90%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.08),\n -1px 1px 2px rgba(0,0,0,0.1),\n 1px -1px 1px rgba(255,255,255,0.3) !important;\n border-radius: 8px;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .sidebar-item-icon {\n color: #666 !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.5));\n}\n\n\n/* ==========================================================================\n Context Menu \u2014 Themed icons\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .frappe-menu .menu-item-icon .jey-icon {\n width: 20px !important;\n height: 20px !important;\n stroke: #555 !important;\n fill: none !important;\n stroke-width: 1.8 !important;\n stroke-linecap: round !important;\n stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.4)) !important;\n}\n\n\n/* ==========================================================================\n Sidebar Header \u2014 Themed icon\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .sidebar-header .header-logo .jey-icon {\n width: 22px !important;\n height: 22px !important;\n stroke: #555 !important;\n fill: none !important;\n stroke-width: 1.8 !important;\n stroke-linecap: round !important;\n stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.4)) !important;\n}\n\n\n/* ==========================================================================\n Primary Buttons \u2014 Polished Chrome with Shine\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .btn-primary {\n background: linear-gradient(-45deg, #666 5%, #aaa 10%, #888 30%, #999 50%, #888 70%, #aaa 85%, #666 95%) !important;\n color: #f0f0f0 !important;\n border: 1px solid #555 !important;\n box-shadow:\n -2px 2px 4px rgba(0,0,0,0.2),\n 1px -1px 2px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.3),\n inset 0 -1px 0 rgba(0,0,0,0.15),\n inset -2px 2px 5px rgba(0,0,0,0),\n inset 1px -1px 2px rgba(255,255,255,0) !important;\n text-shadow: 0 -1px 0 rgba(0,0,0,0.25);\n position: relative;\n overflow: hidden;\n transition:\n box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary::before {\n content: \"\";\n position: absolute;\n top: 0; right: -50%; width: 30%; height: 100%;\n background: linear-gradient(-90deg, transparent, rgba(255,255,255,0.25), transparent);\n transform: skewX(15deg);\n transition: right 0.4s ease;\n pointer-events: none;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:hover::before {\n right: 120%;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:hover {\n background: linear-gradient(-45deg, #777 5%, #bbb 10%, #999 30%, #aaa 50%, #999 70%, #bbb 85%, #777 95%) !important;\n box-shadow:\n -2px 2px 6px rgba(0,0,0,0.25),\n 1px -1px 3px rgba(255,255,255,0.2),\n inset 0 1px 0 rgba(255,255,255,0.35),\n inset 0 -1px 0 rgba(0,0,0,0.15),\n inset -2px 2px 5px rgba(0,0,0,0),\n inset 1px -1px 2px rgba(255,255,255,0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:active {\n background: linear-gradient(-45deg, #555 5%, #888 10%, #777 30%, #888 50%, #777 70%, #888 85%, #555 95%) !important;\n box-shadow:\n -2px 2px 4px rgba(0,0,0,0),\n 1px -1px 2px rgba(255,255,255,0),\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset -3px 3px 7px rgba(0,0,0,0.35),\n inset 1px -1px 2px rgba(255,255,255,0.12) !important;\n transition: box-shadow 0.08s ease-out !important;\n}\n\n\n/* ==========================================================================\n Default/Secondary Buttons \u2014 Brushed Metal\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .btn-default,\n[data-jey-theme=\"chrome\"] .btn-secondary {\n background: linear-gradient(-45deg, #bbb 5%, #eee 10%, #ccc 30%, #e0e0e0 50%, #ccc 70%, #eee 85%, #bbb 95%) !important;\n border: 1px solid #999 !important;\n color: #444 !important;\n box-shadow:\n -1px 1px 3px rgba(0,0,0,0.12),\n 1px -1px 2px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n inset -2px 2px 4px rgba(0,0,0,0),\n inset 1px -1px 1px rgba(255,255,255,0) !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n transition:\n box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-default:hover,\n[data-jey-theme=\"chrome\"] .btn-secondary:hover {\n background: linear-gradient(-45deg, #c0c0c0 5%, #f2f2f2 10%, #d4d4d4 30%, #e8e8e8 50%, #d4d4d4 70%, #f2f2f2 85%, #c0c0c0 95%) !important;\n border-color: #888 !important;\n box-shadow:\n -2px 2px 4px rgba(0,0,0,0.15),\n 1px -1px 2px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n inset -2px 2px 4px rgba(0,0,0,0),\n inset 1px -1px 1px rgba(255,255,255,0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-default:active,\n[data-jey-theme=\"chrome\"] .btn-secondary:active {\n background: linear-gradient(-45deg, #aaa 5%, #d8d8d8 10%, #bbb 30%, #ccc 50%, #bbb 70%, #d8d8d8 85%, #aaa 95%) !important;\n box-shadow:\n -1px 1px 3px rgba(0,0,0,0),\n 1px -1px 2px rgba(255,255,255,0),\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset -3px 3px 6px rgba(0,0,0,0.3),\n inset 1px -1px 1px rgba(255,255,255,0.15) !important;\n transition: box-shadow 0.08s ease-out !important;\n}\n\n/* Danger */\n[data-jey-theme=\"chrome\"] .btn-danger {\n background: linear-gradient(-45deg, #b33 5%, #e88 10%, #c55 30%, #d77 50%, #c55 70%, #e88 85%, #b33 95%) !important;\n color: #fff !important;\n border: 1px solid #944 !important;\n box-shadow:\n -2px 2px 4px rgba(0,0,0,0.2),\n 1px -1px 2px rgba(255,255,255,0.1),\n inset 0 1px 0 rgba(255,255,255,0.25) !important;\n text-shadow: 0 -1px 0 rgba(0,0,0,0.2);\n}\n\n[data-jey-theme=\"chrome\"] .btn-danger:hover {\n background: linear-gradient(-45deg, #c44 5%, #f99 10%, #d66 30%, #e88 50%, #d66 70%, #f99 85%, #c44 95%) !important;\n}\n\n/* Ghost */\n[data-jey-theme=\"chrome\"] .btn-ghost:hover {\n background: linear-gradient(-180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n\n/* ==========================================================================\n Input Fields \u2014 Sunken Metal Inset\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\n[data-jey-theme=\"chrome\"] textarea.form-control {\n background: #d0d0d0 !important;\n border: 1px solid #999 !important;\n color: #333 !important;\n box-shadow:\n inset -1px 1px 2px rgba(0,0,0,0.10),\n inset 1px -1px 1px rgba(255,255,255,0.25),\n inset 0 1px 1px rgba(0,0,0,0.04) !important;\n transition:\n background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n[data-jey-theme=\"chrome\"] textarea.form-control:focus {\n background: #cbcbcb !important;\n border-color: #777 !important;\n box-shadow:\n inset -4px 4px 8px rgba(0,0,0,0.28),\n inset 1px -1px 1px rgba(255,255,255,0.15),\n inset 0 3px 5px rgba(0,0,0,0.18) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-control:disabled,\n[data-jey-theme=\"chrome\"] .form-control[disabled] {\n background: #d8d8d8 !important;\n color: #888 !important;\n box-shadow: inset -1px 1px 2px rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-control .control-label,\n[data-jey-theme=\"chrome\"] .frappe-control label {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] select.form-control,\n[data-jey-theme=\"chrome\"] select.input-with-feedback {\n background: #d0d0d0 !important;\n}\n\n\n/* ==========================================================================\n Forms / Cards \u2014 Raised Metal Panels\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .form-page {\n background:\n linear-gradient(-45deg, #ccc 3%, #e8e8e8 10%, #d5d5d5 25%, #eee 45%, #d8d8d8 60%, #e8e8e8 80%, #ccc 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n -3px 3px 8px rgba(0,0,0,0.12),\n 2px -2px 4px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.05) !important;\n border-radius: var(--border-radius-lg) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-section .section-head {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n border-bottom: 1px solid #b0b0b0 !important;\n position: relative;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-card {\n background: linear-gradient(-45deg, #c8c8c8 3%, #e5e5e5 12%, #d4d4d4 30%, #eaeaea 50%, #d4d4d4 70%, #e5e5e5 88%, #c8c8c8 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n -2px 2px 6px rgba(0,0,0,0.1),\n 1px -1px 3px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n/* Form sidebar */\n[data-jey-theme=\"chrome\"] .form-sidebar {\n border-right: 1px solid #aaa !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-sidebar .sidebar-section {\n border-bottom: 1px solid #b0b0b0 !important;\n}\n\n\n/* ==========================================================================\n Modals / Dialogs \u2014 Chrome Frame with Conic-Gradient Border\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .modal-content {\n background: linear-gradient(-45deg, #ccc 3%, #e8e8e8 12%, #d5d5d5 30%, #eee 50%, #d5d5d5 70%, #e8e8e8 88%, #ccc 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n -6px 6px 24px rgba(0,0,0,0.25),\n 3px -3px 8px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 0 0 1px rgba(255,255,255,0.35) !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-header {\n background: linear-gradient(-45deg, #b0b0b0 5%, #ddd 12%, #c0c0c0 30%, #e5e5e5 50%, #c0c0c0 70%, #ddd 88%, #b0b0b0 95%) !important;\n border-bottom: 1px solid #999 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-header .modal-title {\n color: #333 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .modal-footer {\n background: linear-gradient(-45deg, #b8b8b8 5%, #d8d8d8 20%, #c0c0c0 50%, #d8d8d8 80%, #b8b8b8 95%) !important;\n border-top: 1px solid #999 !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-backdrop {\n background-color: rgba(40,40,40,0.55) !important;\n}\n\n\n/* ==========================================================================\n Page Head \u2014 Chrome Title Bar\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .page-head {\n background: linear-gradient(-45deg, #b8b8b8 3%, #e0e0e0 10%, #c8c8c8 25%, #eaeaea 45%, #ccc 60%, #e0e0e0 80%, #b8b8b8 97%) !important;\n border-bottom: 1px solid #999 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n 0 2px 4px rgba(0,0,0,0.08) !important;\n}\n\n[data-jey-theme=\"chrome\"] .page-head .title-text {\n color: #333 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n\n/* ==========================================================================\n List View \u2014 Metal Table\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .list-row-head {\n background: linear-gradient(-45deg, #aaa 3%, #d8d8d8 10%, #bbb 25%, #e0e0e0 45%, #bbb 60%, #d8d8d8 80%, #aaa 97%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .list-row-container .list-row {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n[data-jey-theme=\"chrome\"] .list-row-container:hover {\n background: linear-gradient(-90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .result .list-row-container .level-left .list-row--col .level-left .ellipsis {\n color: #404040 !important;\n}\n\n/* Sticky right column: blend with metallic body + visible separator.\n Uses a translucent bg so it reads continuous with body gradient while\n still covering horizontally-overflowing columns under it. */\n[data-jey-theme=\"chrome\"] .frappe-list .list-row .level-right,\n[data-jey-theme=\"chrome\"] .frappe-list .list-row-head .level-right {\n background: linear-gradient(-90deg,\n rgba(216,216,216,0.85) 0%,\n rgba(208,208,208,0.88) 100%) !important;\n backdrop-filter: blur(3px);\n -webkit-backdrop-filter: blur(3px);\n border-right: 1px solid #a0a0a0 !important;\n box-shadow: inset -1px 0 0 rgba(255,255,255,0.5) !important;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-list .list-row-container:hover .level-right {\n background: linear-gradient(-90deg,\n rgba(224,224,224,0.9) 0%,\n rgba(216,216,216,0.92) 100%) !important;\n box-shadow:\n inset -1px 0 0 rgba(255,255,255,0.55),\n 6px 0 10px rgba(0,0,0,0.05) !important;\n}\n\n/* List sidebar */\n[data-jey-theme=\"chrome\"] .layout-side-section {\n border-left: 1px solid #aaa !important;\n}\n\n\n/* ==========================================================================\n Tables / Grids \u2014 Metallic Header & Rows\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .frappe-control[data-fieldtype=\"Table\"] .form-grid {\n border: 1px solid #999 !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-heading-row {\n background: linear-gradient(-45deg, #aaa 3%, #d5d5d5 10%, #bbb 30%, #ddd 50%, #bbb 70%, #d5d5d5 90%, #aaa 97%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-heading-row .static-area {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .rows .grid-row:hover {\n background: linear-gradient(-90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .rows .grid-row {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-footer {\n background: transparent !important;\n border-top: 1px solid #999 !important;\n}\n\n/* --- Active (edit-mode) grid cells: identical look to the static row --- */\n/* Keep the row's bottom border visible even when in edit mode */\n[data-jey-theme=\"chrome\"] .rows .grid-row.editable-row,\n[data-jey-theme=\"chrome\"] .rows .grid-row:has(.editable-row) {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n/* Flatten every form control inside a grid row \u2014 no bg, no border, no shadow.\n Scoped to .data-row so the row-edit modal (`.form-in-grid`, which is a\n sibling of .data-row inside .grid-row) keeps its normal field styling. */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .awesomplete input,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .like-disabled-input {\n background: transparent !important;\n border: 0 !important;\n box-shadow: none !important;\n outline: none !important;\n color: #333 !important;\n transition:\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n/* Focused cell: pressed-in look \u2014 same shadow pattern as .btn-default:active */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .awesomplete input:focus {\n background: linear-gradient(-45deg, #bbb 5%, #d8d8d8 10%, #c4c4c4 30%, #d0d0d0 50%, #c4c4c4 70%, #d8d8d8 85%, #bbb 95%) !important;\n border: 0 !important;\n outline: none !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset -3px 3px 6px rgba(0,0,0,0.3),\n inset 1px -1px 1px rgba(255,255,255,0.15) !important;\n transition:\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n/* Read-only cells \u2014 darker grey bg. Specificity matches the \"flatten\" rule above\n (tag.class + two :not()), so it wins over `background: transparent`. Frappe hides\n .field-area on inactive rows, so the tint only shows on the currently-active row. */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[disabled],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[readonly],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control[readonly],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback:disabled {\n background: #d8d8d8 !important;\n box-shadow: none !important;\n color: #666 !important;\n}\n\n/* No pressed-in effect on focus for read-only cells */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):disabled:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[disabled]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[readonly]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:disabled:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control[readonly]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:disabled:focus {\n background: #d8d8d8 !important;\n box-shadow: none !important;\n}\n\n/* Match static-row cell height: static cells use padding 10px 8px; form-control in\n Frappe uses padding-top:10px, padding-bottom: calc(--padding-md - 3px). Equalise so\n the active row doesn't grow or shrink compared to an idle row. */\n[data-jey-theme=\"chrome\"] .grid-row .editable-row .form-control {\n padding-top: 10px !important;\n padding-bottom: 10px !important;\n height: auto !important;\n}\n\n\n/* ==========================================================================\n Tabs \u2014 Metallic Tab Strip\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link {\n color: #666 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.4);\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link:hover {\n color: #444 !important;\n background: linear-gradient(-180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link.active {\n color: #333 !important;\n background: linear-gradient(-180deg, rgba(255,255,255,0.2) 0%, transparent 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link::after {\n background: #777;\n}\n\n\n/* ==========================================================================\n Dropdowns \u2014 Chrome Panel\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .dropdown-menu {\n background: linear-gradient(-45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n -4px 4px 12px rgba(0,0,0,0.18),\n 2px -2px 4px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-item {\n color: #444 !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-item:hover,\n[data-jey-theme=\"chrome\"] .dropdown-item:focus {\n background: linear-gradient(-90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%) !important;\n color: #222 !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-divider {\n border-top-color: #aaa !important;\n}\n\n\n/* ==========================================================================\n Alerts / Toasts\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .desk-alert {\n background: linear-gradient(-45deg, #c0c0c0 5%, #e5e5e5 15%, #d0d0d0 40%, #e8e8e8 60%, #d0d0d0 85%, #c0c0c0 95%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n -3px 3px 8px rgba(0,0,0,0.12),\n 1px -1px 3px rgba(255,255,255,0.3),\n inset 0 1px 0 rgba(255,255,255,0.5) !important;\n}\n\n\n/* ==========================================================================\n Breadcrumbs\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .breadcrumb-container a {\n color: #666 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.4);\n}\n\n[data-jey-theme=\"chrome\"] .breadcrumb-container a:hover {\n color: #333 !important;\n}\n\n\n/* ==========================================================================\n Timeline\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .new-timeline::before {\n border-right-color: #aaa !important;\n}\n\n[data-jey-theme=\"chrome\"] .timeline-dot {\n background: linear-gradient(-45deg, #bbb, #ddd, #bbb) !important;\n border: 1px solid #999 !important;\n box-shadow: -1px 1px 2px rgba(0,0,0,0.1), 1px -1px 1px rgba(255,255,255,0.3);\n}\n\n\n/* ==========================================================================\n Badges / Indicators\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .indicator-pill {\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.3),\n -1px 1px 1px rgba(0,0,0,0.08);\n}\n\n\n/* ==========================================================================\n Popovers\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .popover {\n background: linear-gradient(-45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n -4px 4px 12px rgba(0,0,0,0.15),\n 2px -2px 4px rgba(255,255,255,0.2),\n inset 0 1px 0 rgba(255,255,255,0.5) !important;\n}\n\n[data-jey-theme=\"chrome\"] .popover .popover-body {\n color: #404040 !important;\n}\n\n\n/* ==========================================================================\n Module Widget Cards \u2014 Chrome Panels with Conic Border Accent\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box {\n background: linear-gradient(-45deg, #c0c0c0 3%, #e5e5e5 12%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 88%, #c0c0c0 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n -2px 2px 6px rgba(0,0,0,0.1),\n 1px -1px 3px rgba(255,255,255,0.35),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box::after,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box::after {\n background: conic-gradient(from -140deg, #a0a0a0, #e0e0e0, #888, #d0d0d0, #a0a0a0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box:hover,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box:hover {\n box-shadow:\n -3px 3px 10px rgba(0,0,0,0.14),\n 2px -2px 5px rgba(255,255,255,0.3),\n inset 0 1px 0 rgba(255,255,255,0.7) !important;\n}\n\n\n/* ==========================================================================\n Scrollbars \u2014 Metal Cylinder\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-track {\n background: linear-gradient(-90deg, #c0c0c0, #d0d0d0, #c0c0c0);\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-thumb {\n background: linear-gradient(-90deg, #888, #bbb, #999, #bbb, #888);\n border-radius: 5px;\n border: 1px solid #999;\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-thumb:hover {\n background: linear-gradient(-90deg, #777, #aaa, #888, #aaa, #777);\n}\n\n\n/* ==========================================================================\n Link Colors\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] a {\n color: #555;\n}\n\n[data-jey-theme=\"chrome\"] a:hover {\n color: #333;\n}\n\n\n/* ==========================================================================\n Print \u2014 Reset\n ========================================================================== */\n\n@media print {\n [data-jey-theme=\"chrome\"] body,\n [data-jey-theme=\"chrome\"] .page-container,\n [data-jey-theme=\"chrome\"] .form-page,\n [data-jey-theme=\"chrome\"] .frappe-card,\n [data-jey-theme=\"chrome\"] .modal-content,\n [data-jey-theme=\"chrome\"] .navbar {\n background: white !important;\n box-shadow: none !important;\n border-color: #ddd !important;\n text-shadow: none !important;\n }\n [data-jey-theme=\"chrome\"] .btn-primary {\n background: #333 !important;\n text-shadow: none !important;\n }\n}\n\n/* ===== theme_modern.css ===== */\n/* ==========================================================================\n THEME: Modern [data-jey-theme=\"modern\"]\n Frosted glass rounded squares with indigo accents.\n ========================================================================== */\n\n@keyframes jey-modern-glow {\n 0%, 100% { opacity: 0.4; }\n 50% { opacity: 0.7; }\n}\n\n/* Outer shell \u2014 frosted glass rounded square */\n[data-jey-theme=\"modern\"] .jey-chrome {\n width: 72px; height: 72px; border-radius: 22px; position: relative;\n background: rgba(255, 255, 255, 0.45);\n backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);\n border: 1px solid rgba(255, 255, 255, 0.6);\n box-shadow: 0 4px 16px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04), inset 0 1px 0 rgba(255,255,255,0.8);\n transition: all 0.3s ease;\n}\n\n[data-jey-theme=\"modern\"] .desktop-icon:hover .jey-chrome {\n box-shadow: 0 8px 24px rgba(0,0,0,0.1), 0 2px 6px rgba(0,0,0,0.06), inset 0 1px 0 rgba(255,255,255,0.9);\n transform: translateY(-2px);\n}\n\n/* Hide chrome ring layers */\n[data-jey-theme=\"modern\"] .jey-chrome-ring,\n[data-jey-theme=\"modern\"] .jey-chrome-gap,\n[data-jey-theme=\"modern\"] .jey-chrome-ring-inner {\n display: none;\n}\n\n/* Face fills rounded square */\n[data-jey-theme=\"modern\"] .jey-chrome-face {\n position: absolute; inset: 0; border-radius: 22px; overflow: hidden;\n background: transparent; box-shadow: none;\n display: flex; align-items: center; justify-content: center;\n}\n\n/* Bottom glow accent */\n[data-jey-theme=\"modern\"] .jey-face-glow {\n position: absolute; bottom: -4px; right: 16px; left: 16px; height: 20px;\n border-radius: 50%;\n background: radial-gradient(ellipse, rgba(99, 102, 241, 0.35) 0%, transparent 70%);\n animation: jey-modern-glow 4s ease-in-out infinite;\n pointer-events: none; z-index: 0;\n}\n\n/* Top glass highlight */\n[data-jey-theme=\"modern\"] .jey-face-reflection {\n position: absolute; top: 0; right: 0; left: 0; height: 50%;\n border-radius: 22px 22px 0 0;\n background: linear-gradient(-180deg, rgba(255,255,255,0.5) 0%, transparent 100%);\n pointer-events: none; z-index: 1; animation: none;\n}\n\n/* Icon \u2014 indigo accent */\n[data-jey-theme=\"modern\"] .jey-chrome-face .jey-icon {\n width: 26px !important; height: 26px !important;\n stroke: #4f46e5 !important; fill: none !important;\n stroke-width: 1.6 !important; stroke-linecap: round !important; stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 2px rgba(79, 70, 229, 0.2)) !important;\n position: relative; z-index: 2;\n}\n\n/* Rounded square container */\n[data-jey-theme=\"modern\"] .icon-container.jey-chrome-done {\n border-radius: 22px !important;\n}\n"], - "mappings": ";AAYA;AACC;AACA;AACA;AACA;AAAA;AAID;AAAA;AAEC;AAAA;AAKD;AAAA;AAAA;AAGC;AAAA;AAOD;AACQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AACQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AAAA;AAGR;AACQ;AACA;AAAA;AAGR;AACQ;AACA;AACA;AAAA;AAGR;AACQ;AACA;AAAA;AAQR;AAAA;AAEQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AAAA;AAWR;AACQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AACQ;AACA;AAAA;AAGR;AACQ;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AACQ;AACA;AAAA;AAMR;AACQ;AACA;AACA;AAAA;AAKR;AACQ;AACA;AACA;AAAA;AAGR;AACQ;AACA;AAAA;AAGR;AACQ;AAAA;AAOR;AAAA;AAEQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AAAA;AAIR;AACQ;AAAA;AAGR;AACQ;AACA;AACA;AAAA;AAOR;AACQ;AAAA;AAGR;AACQ;AACA;AAAA;AAQR;AACQ;AACA;AACA;AAAA;AAGR;AACQ;AAAA;AAGR;AACQ;AAAA;AAGR;AACQ;AACA;AACA;AAAA;AAGR;AACQ;AAAA;AAQR;AACQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AACA;AAAA;AAIR;AACQ;AAAA;AAGR;AACQ;AACA;AAAA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", - "names": [] -} diff --git a/jey_theme/public/dist/css-rtl/jey_theme.bundle.ELKGAGY2.css b/jey_theme/public/dist/css-rtl/jey_theme.bundle.ELKGAGY2.css new file mode 100644 index 0000000..f915169 --- /dev/null +++ b/jey_theme/public/dist/css-rtl/jey_theme.bundle.ELKGAGY2.css @@ -0,0 +1,2 @@ +.splash img{content:url(/assets/jey_theme/images/preloader.png);max-width:64px!important;width:64px!important;height:auto}.desktop-icon[data-id=Organization],.desktop-icon[data-id=ERPNext],.desktop-icon[data-id=Quality],.desktop-icon[data-id="Quality Management"],.desktop-icon[data-id=Subcontracting]{display:none!important}input[type=checkbox]{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;width:28px!important;min-width:28px!important;height:16px!important;background-color:var(--gray-400, #c0c6cc)!important;background-image:none!important;border-radius:999px!important;border:none!important;position:relative!important;cursor:pointer!important;box-shadow:inset 0 1px 3px #0000001f!important;transition:background-color .25s ease!important;vertical-align:middle!important;margin:0 0 0 8px!important;outline:none!important}input[type=checkbox]:after{content:""!important;width:12px!important;height:12px!important;background-color:#fff!important;border-radius:50%!important;position:absolute!important;top:2px!important;right:2px!important;box-shadow:0 1px 2px #00000040!important;transition:transform .25s ease!important;border:none!important}input[type=checkbox]:checked,input[type=checkbox].disabled-selected{background-color:#2da44e!important;background-image:none!important;box-shadow:inset 0 1px 3px #00000014!important}input[type=checkbox]:checked:after,input[type=checkbox].disabled-selected:after{transform:translate(-12px)!important}input[type=checkbox]:focus{outline:none!important;box-shadow:inset 0 1px 3px #0000001f,0 0 0 2px #2da44e40!important}input[type=checkbox]:disabled{opacity:.5!important;cursor:not-allowed!important;background-image:none!important}input[type=checkbox].disabled-selected{opacity:.7!important;cursor:not-allowed!important}.row-check input[type=checkbox],.grid-row-check{width:var(--checkbox-size, 14px)!important;min-width:var(--checkbox-size, 14px)!important;height:var(--checkbox-size, 14px)!important;border-radius:4px!important;border:1px solid var(--gray-500)!important;background-color:transparent!important;background-image:none!important;box-shadow:none!important;margin-left:0!important;transition:none!important}.row-check input[type=checkbox]:after,.grid-row-check:after{content:""!important;width:auto!important;height:auto!important;background:none!important;border-radius:0!important;position:absolute!important;box-shadow:none!important;transition:none!important;transform:none!important;inset:-8px!important;opacity:0!important}.row-check input[type=checkbox]:checked,.grid-row-check:checked{background-color:var(--primary)!important;background-image:url("data:image/svg+xml, "),var(--checkbox-gradient)!important;background-size:57%,100%!important;background-repeat:no-repeat!important;background-position:center!important;border:none!important;box-shadow:none!important}.row-check input[type=checkbox]:checked:after,.grid-row-check:checked:after{transform:none!important}.datatable input[type=checkbox]{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;width:var(--checkbox-size, 14px)!important;min-width:var(--checkbox-size, 14px)!important;height:var(--checkbox-size, 14px)!important;margin:0!important;padding:0!important;border:1px solid var(--gray-500)!important;border-radius:4px!important;background-color:transparent!important;background-image:none!important;box-shadow:none!important;cursor:pointer!important;vertical-align:middle!important;transition:none!important}.datatable input[type=checkbox]:after{content:none!important;display:none!important}.datatable input[type=checkbox]:checked{background-color:var(--primary)!important;background-image:url("data:image/svg+xml, ")!important;background-size:57%!important;background-repeat:no-repeat!important;background-position:center!important;border:none!important}.datatable input[type=checkbox]:disabled{opacity:.5!important;cursor:not-allowed!important}.datatable .dt-cell__content:has(> input[type="checkbox"]:only-child){display:flex!important;align-items:center!important;justify-content:flex-start!important}.datatable .dt-row-filter .dt-cell__content{display:flex!important;align-items:center!important;gap:2px}.datatable .dt-row-filter .dt-filter.dt-input{flex:1 1 0!important;min-width:0!important}.datatable .dt-row-filter .comparison-help-icon{flex:0 0 auto}input.list-row-checkbox:after,input.list-header-checkbox:after{inset:2px 2px auto auto!important;width:12px!important;height:12px!important;background-color:#fff!important;border-radius:50%!important;position:absolute!important;box-shadow:0 1px 2px #00000040!important;transition:transform .25s ease!important;opacity:1!important}input.list-row-checkbox:checked:after,input.list-header-checkbox:checked:after{transform:translate(-12px)!important}.frappe-control[data-fieldtype=Check] .checkbox label{align-items:center!important}.frappe-control[data-fieldtype=Check] .checkbox .input-area:not(.hide){padding-top:0!important;display:flex!important;align-items:center!important}.filter-section{display:flex!important}.filter-section .sort-selector{order:-1!important;margin-left:8px!important}.form-grid{overflow-x:scroll!important;padding-bottom:12px!important;scrollbar-width:auto!important}.form-grid::-webkit-scrollbar{height:10px!important}.form-grid::-webkit-scrollbar-track{background:var(--gray-100, #f5f5f5)!important}.form-grid::-webkit-scrollbar-thumb{background:var(--gray-400, #c0c6cc)!important;border-radius:5px!important;border:2px solid var(--gray-100, #f5f5f5)!important}.form-grid::-webkit-scrollbar-thumb:hover{background:var(--gray-500, #98a2ab)!important}.jey-col-resize{position:absolute;top:0;left:-2px;width:5px;height:100%;cursor:col-resize;z-index:2;background:transparent;transition:background .15s}.jey-col-resize:hover,.jey-col-resize:active{background:var(--primary, #2490ef);opacity:.5}.grid-heading-row .grid-static-col[data-jey-draggable]{cursor:grab}.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-left{box-shadow:inset -3px 0 0 var(--primary, #2490ef);background:rgba(36,144,239,.05)}.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-right{box-shadow:inset 3px 0 0 var(--primary, #2490ef);background:rgba(36,144,239,.05)}.list-row-head .list-row-col{position:relative}.list-row-head .list-row-col:not(:last-child){border-left:1px solid var(--border-color, #e2e6e9)}.list-row-head .jey-col-resize{position:absolute;top:0;left:-2px;width:5px;height:100%;cursor:col-resize;z-index:3;background:transparent;transition:background .15s}.list-row-head .jey-col-resize:hover,.list-row-head .jey-col-resize:active{background:var(--primary, #2490ef);opacity:.5}.list-row-head .list-row-col[data-jey-draggable]:not(.list-subject){cursor:grab}.list-row-head .list-row-col.jey-drop-target.jey-drop-left{box-shadow:inset -3px 0 0 var(--primary, #2490ef);background:rgba(36,144,239,.05)}.list-row-head .list-row-col.jey-drop-target.jey-drop-right{box-shadow:inset 3px 0 0 var(--primary, #2490ef);background:rgba(36,144,239,.05)}.body-sidebar .body-sidebar-bottom{min-width:0}.jey-fullwidth-link,.jey-theme-switch-link,.jey-collapse-link{text-decoration:none;font-size:var(--text-sm);display:flex;align-items:center;cursor:pointer;margin-bottom:8px;width:100%;overflow:hidden}.jey-fullwidth-link svg,.jey-theme-switch-link svg,.jey-collapse-link svg{margin:0;flex:0 0 auto}.jey-fullwidth-link span,.jey-theme-switch-link span,.jey-collapse-link span{margin-right:10px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:max-width .3s cubic-bezier(.4,0,.2,1),margin-right .3s cubic-bezier(.4,0,.2,1)}.body-sidebar-container:not(.expanded) .jey-fullwidth-link span,.body-sidebar-container:not(.expanded) .jey-theme-switch-link span,.body-sidebar-container:not(.expanded) .jey-collapse-link span{max-width:0;margin-right:0}.body-sidebar .sidebar-bottom-actions{display:none!important}.body-sidebar .nav-item{transition:padding .3s cubic-bezier(.4,0,.2,1)}.modal.fade .modal-dialog{transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .5s cubic-bezier(.22,1,.36,1)!important;transform:translateY(-24px) scale(.97);opacity:0}.modal.show .modal-dialog{transform:none;opacity:1}@keyframes jey-section-in{0%{top:-12px}to{top:0}}.form-layout .form-section .section-head,.form-layout .form-section .section-body{position:relative;animation:jey-section-in .7s cubic-bezier(.22,1,.36,1) both}.form-layout .form-section:nth-child(1) .section-head,.form-layout .form-section:nth-child(1) .section-body{animation-delay:.04s}.form-layout .form-section:nth-child(2) .section-head,.form-layout .form-section:nth-child(2) .section-body{animation-delay:.1s}.form-layout .form-section:nth-child(3) .section-head,.form-layout .form-section:nth-child(3) .section-body{animation-delay:.16s}.form-layout .form-section:nth-child(4) .section-head,.form-layout .form-section:nth-child(4) .section-body{animation-delay:.22s}.form-layout .form-section:nth-child(5) .section-head,.form-layout .form-section:nth-child(5) .section-body{animation-delay:.28s}.form-layout .form-section:nth-child(6) .section-head,.form-layout .form-section:nth-child(6) .section-body{animation-delay:.34s}.form-layout .form-section:nth-child(7) .section-head,.form-layout .form-section:nth-child(7) .section-body{animation-delay:.4s}.form-layout .form-section:nth-child(8) .section-head,.form-layout .form-section:nth-child(8) .section-body{animation-delay:.46s}.form-layout .form-section:nth-child(9) .section-head,.form-layout .form-section:nth-child(9) .section-body{animation-delay:.52s}.form-layout .form-section:nth-child(10) .section-head,.form-layout .form-section:nth-child(10) .section-body{animation-delay:.58s}.form-layout .form-section:nth-child(11) .section-head,.form-layout .form-section:nth-child(11) .section-body{animation-delay:.64s}.form-layout .form-section:nth-child(12) .section-head,.form-layout .form-section:nth-child(12) .section-body{animation-delay:.7s}.form-tabs .nav-link{position:relative;border-bottom:none!important;transition:color .3s ease}.form-tabs .nav-link:after{content:"";position:absolute;bottom:0;right:0;left:0;height:2px;background:var(--text-color);transform:scaleX(0);transform-origin:center;transition:transform .3s cubic-bezier(.22,1,.36,1)}.form-tabs .nav-link.active:after{transform:scaleX(1)}.dropdown-menu{display:block!important;visibility:hidden;opacity:0;pointer-events:none}.dropdown-menu.show{visibility:visible;opacity:1;pointer-events:auto;animation:jey-dropdown-in .2s ease}.dropdown-menu.jey-dropdown-hiding{visibility:visible!important;pointer-events:none;animation:jey-dropdown-out .2s ease forwards}@keyframes jey-dropdown-in{0%{opacity:0}to{opacity:1}}@keyframes jey-dropdown-out{0%{opacity:1}to{opacity:0}}@media (min-width: 576px){.body-sidebar-container{width:50px;transition:width .3s cubic-bezier(.4,0,.2,1)}.body-sidebar-container.expanded{width:var(--sidebar-width)}}.body-sidebar .sidebar-header{padding-right:0!important;padding-left:0!important}.body-sidebar-container.expanded .sidebar-user-button{padding:0!important}.body-sidebar .standard-sidebar-item .item-anchor{transition:padding-right .4s cubic-bezier(.22,1,.36,1),background .4s ease}.body-sidebar .standard-sidebar-item .item-anchor:hover{padding-right:calc(var(--padding-xs, 8px) + 4px)}.body-sidebar .standard-sidebar-item .sidebar-item-icon{transition:transform .45s cubic-bezier(.22,1,.36,1)}.body-sidebar .standard-sidebar-item .item-anchor:hover .sidebar-item-icon{transform:scale(1.15)}.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor{position:relative}.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor:before{content:"";position:absolute;right:0;top:20%;bottom:20%;width:3px;border-radius:3px 0 0 3px;background:var(--primary, #2490ef);opacity:.8}@keyframes jey-list-row-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.frappe-list .result .list-row-container:not(:first-child){animation:jey-list-row-in .4s cubic-bezier(.22,1,.36,1) both}.frappe-list .result .list-row-container:nth-child(2){animation-delay:.03s}.frappe-list .result .list-row-container:nth-child(3){animation-delay:.05s}.frappe-list .result .list-row-container:nth-child(4){animation-delay:.07s}.frappe-list .result .list-row-container:nth-child(5){animation-delay:.09s}.frappe-list .result .list-row-container:nth-child(6){animation-delay:.11s}.frappe-list .result .list-row-container:nth-child(7){animation-delay:.13s}.frappe-list .result .list-row-container:nth-child(8){animation-delay:.15s}.frappe-list .result .list-row-container:nth-child(9){animation-delay:.17s}.frappe-list .result .list-row-container:nth-child(10){animation-delay:.19s}.frappe-list .result .list-row-container:nth-child(11){animation-delay:.21s}.frappe-list .result .list-row-container:nth-child(12){animation-delay:.23s}.frappe-list .result .list-row-container:nth-child(13){animation-delay:.25s}.frappe-list .result .list-row-container:nth-child(14){animation-delay:.27s}.frappe-list .result .list-row-container:nth-child(15){animation-delay:.29s}.frappe-list .result .list-row-container:nth-child(16){animation-delay:.31s}.frappe-list .result .list-row-container:nth-child(17){animation-delay:.33s}.frappe-list .result .list-row-container:nth-child(18){animation-delay:.35s}.frappe-list .result .list-row-container:nth-child(19){animation-delay:.37s}.frappe-list .result .list-row-container:nth-child(20){animation-delay:.39s}.frappe-list .result .list-row-container:nth-child(21){animation-delay:.41s}.modal:has(.cool-awesomebar-modal-footer){display:block!important;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .5s cubic-bezier(.22,1,.36,1),visibility .5s}.modal:has(.cool-awesomebar-modal-footer) .modal-dialog{transform:translateY(-30px);transition:transform .5s cubic-bezier(.22,1,.36,1)}.modal.show:has(.cool-awesomebar-modal-footer){visibility:visible;opacity:1;pointer-events:auto}.modal.show:has(.cool-awesomebar-modal-footer) .modal-dialog{transform:none}@keyframes jey-summary-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.report-summary .summary-item{animation:jey-summary-in .7s cubic-bezier(.22,1,.36,1) both}.report-summary .summary-item:nth-child(1){animation-delay:.05s}.report-summary .summary-item:nth-child(2){animation-delay:.1s}.report-summary .summary-item:nth-child(3){animation-delay:.15s}.report-summary .summary-item:nth-child(4){animation-delay:.2s}.report-summary .summary-item:nth-child(5){animation-delay:.25s}.report-summary .summary-item:nth-child(6){animation-delay:.3s}.form-section .collapse-indicator{transition:transform .45s cubic-bezier(.22,1,.36,1);display:inline-block}.form-section .section-head.collapsed .collapse-indicator{transform:rotate(90deg)}.form-section .section-head.collapsible+.section-body{display:flex!important;flex-wrap:wrap;transition:max-height .5s ease-in-out,padding .5s ease-in-out}.form-section .section-head.collapsed+.section-body{max-height:0!important;padding-top:0!important;padding-bottom:0!important;overflow:hidden;transition:max-height .5s ease-in-out,padding .5s ease-in-out}.awesomplete>[role=listbox]{animation:jey-awesomplete-in .4s cubic-bezier(.22,1,.36,1) both}.awesomplete>[role=listbox].jey-awesomplete-hiding{display:block!important;pointer-events:none;animation:jey-awesomplete-out .2s ease forwards}@keyframes jey-awesomplete-in{0%{opacity:0}to{opacity:1}}@keyframes jey-awesomplete-out{0%{opacity:1}to{opacity:0}}.awesomplete>ul[role=listbox]:not([hidden]){z-index:10}input.form-control:not([type="checkbox"]):not([type="radio"]),textarea.form-control,.frappe-control input:not([type="checkbox"]):not([type="radio"]),.frappe-control textarea{transition:background-color .45s cubic-bezier(.22,1,.36,1),border-color .45s cubic-bezier(.22,1,.36,1)}input.form-control:not([type="checkbox"]):not([type="radio"]):focus,textarea.form-control:focus,.frappe-control input:not([type="checkbox"]):not([type="radio"]):focus,.frappe-control textarea:focus{border-color:var(--gray-500, #a8b0b8)!important;outline:none}.btn{position:relative;overflow:hidden;transition:box-shadow .4s ease,background-color .3s ease,color .3s ease}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(-105deg,transparent 35%,rgba(255,255,255,.25) 45%,rgba(255,255,255,.25) 55%,transparent 65%);transform:translate(110%);transition:transform .6s cubic-bezier(.22,1,.36,1);pointer-events:none}.btn:hover:after{transform:translate(-110%)}.btn:active{box-shadow:inset 0 2px 6px #0003!important}.dropdown-menu-item[onclick*=toggle_full_width],.dropdown-menu-item[onclick*=clear_cache],.dropdown-menu-item[onclick*=ThemeSwitcher],.dropdown-menu-item[data-name=website],.dropdown-menu-item.jey-hidden-item{display:none!important}.desktop-icon:hover{transform:translateY(-2px)!important}.desktop-icon:active{transform:scale(.97)!important}.icon-container.jey-chrome-done{width:72px!important;height:72px!important;padding:0!important;border-radius:50%!important;background:none!important;overflow:visible!important;position:relative!important}.icon-container.jey-chrome-done:hover{transform:none!important}.icon-container.folder-icon.jey-chrome-done{box-shadow:none!important}.desktop-icon:has(> .icon-caption){display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important;min-width:0!important;height:auto!important;align-self:start!important;padding:13px 6px 12px!important}@media (min-width: 571px){.desktop-icon:has(> .icon-caption){min-height:126px!important}}@media (min-width: 1060px){.desktop-icon:has(> .icon-caption){width:152px!important}}.desktop-icon:has(> .icon-caption)>.icon-caption{width:100%!important;max-width:100%!important;height:auto!important;min-height:35px!important;justify-content:flex-start!important;overflow:visible!important;text-wrap:wrap!important;white-space:normal!important}.desktop-icon:has(> .icon-caption) .icon-title{display:block!important;width:100%!important;max-width:100%!important;-webkit-line-clamp:none!important;line-clamp:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;text-wrap:balance;overflow-wrap:break-word!important;word-break:normal!important;-webkit-hyphens:auto;hyphens:auto;line-height:1.25!important}.desktop-icon:has(> .icon-caption)>.hide-button{right:auto!important;left:-5px!important}#desktop-modal .icons-container .icons{gap:12px 8px!important;padding:12px 0!important}#desktop-modal{width:-moz-fit-content!important;width:fit-content!important;max-width:calc(100vw - 40px)!important}#desktop-modal .modal-content{width:100%!important}#desktop-modal .modal-body.desktop-modal-body{width:auto!important;height:auto!important;min-width:var(--desktop-modal-width)!important;min-height:var(--desktop-modal-height)!important}#desktop-modal .modal-header.desktop-modal-heading{background:transparent!important;border-bottom:0!important;box-shadow:none!important}#desktop-modal .modal-header.desktop-modal-heading .modal-title,#desktop-modal .modal-header.desktop-modal-heading .title-input-label span{background:transparent!important;box-shadow:none!important;text-shadow:none!important}#desktop-modal .icon-title,#desktop-modal .icon-caption{text-shadow:none!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#desktop-modal .modal-body.desktop-modal-body,#desktop-modal .icons-container{overflow:visible!important;max-height:none!important}.ico-framework{animation:ico-float 5s ease-in-out infinite;transform-origin:center}@keyframes ico-float{0%,to{transform:translateY(0) rotate(0);opacity:.85}30%{transform:translateY(-2px) rotate(-.8deg);opacity:1}70%{transform:translateY(.5px) rotate(.4deg);opacity:.9}}.ico-org{animation:ico-org 6s ease-in-out infinite;transform-origin:center bottom}@keyframes ico-org{0%,to{transform:scaleY(1) scaleX(1)}25%{transform:scaleY(1.03) scaleX(.99)}50%{transform:scaleY(1.05) scaleX(.98)}75%{transform:scaleY(1.02) scaleX(1)}}.ico-acc .acc-btn{animation:ico-press 3s ease-in-out infinite}@keyframes ico-press{0%,25%,to{opacity:.5;stroke-width:2.5}12%{opacity:1;stroke-width:3.2}}.ico-assets{animation:ico-safe 6s ease-in-out infinite;transform-origin:center}.ico-assets .lock-dot{animation:ico-blink 5s ease-in-out infinite}@keyframes ico-safe{0%,to{transform:translateY(0)}40%{transform:translateY(-.6px)}60%{transform:translateY(.3px)}}@keyframes ico-blink{0%,35%,65%,to{opacity:1}50%{opacity:.15}}.ico-buying{animation:ico-cart 6s ease-in-out infinite;transform-origin:12px 21px}@keyframes ico-cart{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-1.5px) rotate(-.8deg)}50%{transform:translate(.5px) rotate(.3deg)}80%{transform:translate(-.8px) rotate(-.4deg)}}.ico-mfg .gear1{animation:ico-spin 9s linear infinite;transform-origin:9px 12px}.ico-mfg .gear2{animation:ico-spin-r 7s linear infinite;transform-origin:17px 8px}@keyframes ico-spin{to{transform:rotate(-360deg)}}@keyframes ico-spin-r{to{transform:rotate(360deg)}}.ico-proj .col1{animation:ico-g1 5s ease-in-out infinite;transform-origin:5.5px 21px}.ico-proj .col2{animation:ico-g2 5s ease-in-out infinite .5s;transform-origin:12.5px 15px}.ico-proj .col3{animation:ico-g3 5s ease-in-out infinite 1s;transform-origin:19.5px 18px}@keyframes ico-g1{0%,to{transform:scaleY(1);opacity:.75}50%{transform:scaleY(.85);opacity:1}}@keyframes ico-g2{0%,to{transform:scaleY(1);opacity:.75}50%{transform:scaleY(1.15);opacity:1}}@keyframes ico-g3{0%,to{transform:scaleY(1);opacity:.75}50%{transform:scaleY(.88);opacity:1}}.ico-quality{animation:ico-shield 6s ease-in-out infinite;transform-origin:12px 14px}@keyframes ico-shield{0%,to{transform:rotate(0) scale(1)}15%{transform:rotate(-1.5deg) scale(1.03)}35%{transform:rotate(.5deg) scale(1.01)}55%{transform:rotate(1.5deg) scale(1.03)}75%{transform:rotate(-.5deg) scale(1.01)}}.ico-selling{animation:ico-sell 4s ease-in-out infinite;transform-origin:center}.ico-selling .arrow-head{animation:ico-up 4s ease-in-out infinite}@keyframes ico-sell{0%,to{opacity:.8}50%{opacity:1}}@keyframes ico-up{0%,to{transform:translate(0)}30%{transform:translate(-1px,-1.5px)}60%{transform:translate(-2px,-2.5px)}}.ico-stock{animation:ico-bob 5s ease-in-out infinite;transform-origin:center}@keyframes ico-bob{0%,to{transform:rotate(0) translateY(0)}20%{transform:rotate(-2deg) translateY(-.7px)}50%{transform:rotate(1deg) translateY(.3px)}80%{transform:rotate(-1.5deg) translateY(-.4px)}}.ico-sub .person-l{animation:ico-rl 6s ease-in-out infinite;transform-origin:8px 12px}.ico-sub .person-r{animation:ico-rr 6s ease-in-out infinite;transform-origin:16px 12px}@keyframes ico-rl{0%,to{transform:translate(0) rotate(0)}30%{transform:translate(-1px) rotate(-1deg)}60%{transform:translate(-1.5px) rotate(-.5deg)}}@keyframes ico-rr{0%,to{transform:translate(0) rotate(0)}30%{transform:translate(1px) rotate(1deg)}60%{transform:translate(1.5px) rotate(.5deg)}}.ico-settings{animation:ico-gear-main 12s linear infinite;transform-origin:center}@keyframes ico-gear-main{to{transform:rotate(-360deg)}}.ico-hr .plus-v{animation:ico-pv 4s ease-in-out infinite;transform-origin:center}.ico-hr .plus-h{animation:ico-ph 4s ease-in-out infinite .3s;transform-origin:center}@keyframes ico-pv{0%,to{opacity:.4;stroke-width:1.8}50%{opacity:1;stroke-width:2.4}}@keyframes ico-ph{0%,to{opacity:.4;stroke-width:1.8}50%{opacity:1;stroke-width:2.4}}.jey-theme-grid{display:flex;gap:20px;padding:20px;justify-content:center}.jey-theme-card{cursor:pointer;text-align:center;padding:16px;border-radius:12px;border:2px solid transparent;transition:border-color .2s,background .2s;min-width:140px}.jey-theme-card:hover{background:var(--subtle-fg, #f5f5f5)}.jey-theme-card.selected{border-color:var(--primary, #2490ef);background:var(--subtle-fg, #f5f5f5)}.jey-theme-preview{width:72px;height:72px;border-radius:50%;margin:0 auto 12px;position:relative;overflow:hidden}.jey-theme-preview--chrome{background:conic-gradient(from -140deg,#a0a0a0 0deg,#f2f2f2 40deg,#777 80deg,#e5e5e5 120deg,#959595 170deg,#ededed 210deg,#808080 260deg,#d8d8d8 310deg,#a0a0a0 360deg);box-shadow:0 3px 8px #00000026,inset 0 1px 1px #ffffff80}.jey-theme-preview--chrome .jey-theme-preview-icon{position:absolute;inset:9px;border-radius:50%;background:linear-gradient(-168deg,#f4f4f4 0%,#e0e0e0 45%,#d4d4d4 100%)}.jey-theme-preview--silk{border-radius:16px;background:rgba(255,255,255,.4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.5);box-shadow:0 2px 8px #0000000f}.jey-theme-preview--silk .jey-theme-preview-icon{position:absolute;inset:22px;border-radius:6px;background:#4f46e5;opacity:.25}.jey-theme-label{font-weight:600;font-size:var(--text-base);margin-bottom:2px}.jey-theme-info{font-size:var(--text-sm);color:var(--text-muted)}.ce-block .links-widget-box,.ce-block .number-widget-box{opacity:0;transform:translateY(24px) scale(.97);animation:jey-card-in .7s cubic-bezier(.22,1,.36,1) forwards;border-radius:var(--border-radius-lg, 12px);transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .35s ease;position:relative}@keyframes jey-number-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.number-widget-box .widget-content .number{animation:jey-number-in .5s cubic-bezier(.22,1,.36,1) .3s both}.ce-block .links-widget-box .widget-control .dropdown-menu,.ce-block .number-widget-box .widget-control .dropdown-menu{z-index:1050}.ce-block:nth-child(1) .links-widget-box,.ce-block:nth-child(1) .number-widget-box{animation-delay:0s}.ce-block:nth-child(2) .links-widget-box,.ce-block:nth-child(2) .number-widget-box{animation-delay:.06s}.ce-block:nth-child(3) .links-widget-box,.ce-block:nth-child(3) .number-widget-box{animation-delay:.12s}.ce-block:nth-child(4) .links-widget-box,.ce-block:nth-child(4) .number-widget-box{animation-delay:.18s}.ce-block:nth-child(5) .links-widget-box,.ce-block:nth-child(5) .number-widget-box{animation-delay:.24s}.ce-block:nth-child(6) .links-widget-box,.ce-block:nth-child(6) .number-widget-box{animation-delay:.3s}.ce-block:nth-child(7) .links-widget-box,.ce-block:nth-child(7) .number-widget-box{animation-delay:.36s}.ce-block:nth-child(8) .links-widget-box,.ce-block:nth-child(8) .number-widget-box{animation-delay:.42s}.ce-block:nth-child(9) .links-widget-box,.ce-block:nth-child(9) .number-widget-box{animation-delay:.48s}.ce-block:nth-child(10) .links-widget-box,.ce-block:nth-child(10) .number-widget-box{animation-delay:.54s}.ce-block:nth-child(11) .links-widget-box,.ce-block:nth-child(11) .number-widget-box{animation-delay:.6s}.ce-block:nth-child(12) .links-widget-box,.ce-block:nth-child(12) .number-widget-box{animation-delay:.66s}@keyframes jey-card-in{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}.ce-block .links-widget-box:after,.ce-block .number-widget-box:after{content:"";position:absolute;bottom:0;right:10%;left:10%;height:2.5px;border-radius:2px 2px 0 0;background:var(--primary, #2490ef);transform:scaleX(0);transition:transform .35s cubic-bezier(.22,1,.36,1);transform-origin:center}.ce-block .links-widget-box:hover:after,.ce-block .number-widget-box:hover:after{transform:scaleX(1)}.ce-block .links-widget-box:hover,.ce-block .number-widget-box:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000014,0 2px 6px #0000000a}.ce-block .links-widget-box:hover,.ce-block .number-widget-box:hover,.ce-block .links-widget-box:focus-within,.ce-block .number-widget-box:focus-within{z-index:100}.ce-block .links-widget-box:has(.dropdown-menu.show),.ce-block .number-widget-box:has(.dropdown-menu.show){z-index:200}.links-widget-box .link-item{position:relative;transition:background .25s ease,transform .25s ease;border-radius:var(--border-radius, 8px);overflow:hidden}.links-widget-box .link-item:hover{transform:translate(-6px);background:var(--subtle-fg, rgba(0, 0, 0, .02))}.links-widget-box .link-item .es-icon{display:none!important}.select-icon svg{display:none!important}.select-icon{top:0!important;bottom:0!important;display:flex!important;align-items:center!important}.select-icon:after{content:""!important;display:block;width:12px;height:12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.msg-box .icon-xl{display:none!important}.msg-box .mb-4{display:flex;justify-content:center}.msg-box .mb-4:after{content:""!important;display:block;width:48px;height:48px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b0b8c0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 16 12 14 15 10 15 8 12 2 12'/%3E%3Cpath d='M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.user-onboarding{display:none!important}.comment-count svg{fill:none!important;stroke:currentColor!important;stroke-width:1.5!important;stroke-linecap:round;stroke-linejoin:round}.new-timeline .activity-title,.new-timeline .timeline-actions,.comment-box,.comment-input-wrapper,.comment-input-wrapper .ql-container,.comment-input-wrapper .frappe-control .ql-editor{background:transparent!important;border-color:transparent!important;box-shadow:none!important}.standard-filter-section .frappe-control.jey-period-filter{flex:0 0 auto;min-width:200px}.standard-filter-section .frappe-control.jey-period-filter input{min-width:200px}.control-input.fields_order{height:auto!important;min-height:32px;display:flex;align-items:center}.control-input.fields_order>.row{width:100%;align-items:center;margin:0}.control-input.fields_order>.row>[class*=col-]{padding-top:0!important;margin-top:0!important}@keyframes jey-chrome-rotate-glow{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes jey-chrome-face-light{0%{background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.5) 0%,transparent 55%)}25%{background:radial-gradient(circle at 75% 25%,rgba(255,255,255,.5) 0%,transparent 55%)}50%{background:radial-gradient(circle at 70% 75%,rgba(255,255,255,.35) 0%,transparent 55%)}75%{background:radial-gradient(circle at 25% 70%,rgba(255,255,255,.35) 0%,transparent 55%)}to{background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.5) 0%,transparent 55%)}}@keyframes jey-chrome-refl-drift{0%,to{top:12%;opacity:.7}50%{top:18%;opacity:.5}}[data-jey-theme=chrome] .jey-chrome{width:72px;height:72px;border-radius:50%;position:relative;background:radial-gradient(ellipse at 35% 20%,rgba(255,255,255,.7) 0%,transparent 55%),linear-gradient(-180deg,#e0e0e0 0%,#b8b8b8 100%);box-shadow:0 4px 10px #0000002e,0 1px 3px #0000001a,inset 0 1px 1px #ffffffb3;transition:box-shadow .3s ease}[data-jey-theme=chrome] .desktop-icon:hover .jey-chrome{box-shadow:0 6px 16px #00000038,0 1px 3px #0000001f,0 0 14px #fff3,inset 0 1px 1px #ffffffb3}[data-jey-theme=chrome] .jey-chrome-ring{position:absolute;inset:2px;border-radius:50%;background:conic-gradient(from -140deg,#a0a0a0 0deg,#f2f2f2 40deg,#777 80deg,#e5e5e5 120deg,#959595 170deg,#ededed 210deg,#808080 260deg,#d8d8d8 310deg,#a0a0a0 360deg);box-shadow:inset 0 1px 2px #0003;overflow:hidden}[data-jey-theme=chrome] .jey-ring-glow{position:absolute;inset:-10px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,transparent 140deg,rgba(255,255,255,.55) 165deg,rgba(255,255,255,.8) 180deg,rgba(255,255,255,.55) 195deg,transparent 220deg,transparent 360deg);animation:jey-chrome-rotate-glow 8s linear infinite;pointer-events:none}[data-jey-theme=chrome] .jey-chrome-gap{position:absolute;inset:5px;border-radius:50%;background:linear-gradient(-180deg,#888 0%,#aaa 50%,#999 100%);box-shadow:inset 0 1px 3px #00000059,inset 0 -1px 1px #fff3}[data-jey-theme=chrome] .jey-chrome-ring-inner{position:absolute;inset:6px;border-radius:50%;background:conic-gradient(from -200deg,#b0b0b0 0deg,#eee 30deg,#999 70deg,#ddd 110deg,#aaa 160deg,#f0f0f0 200deg,#909090 250deg,#ccc 300deg,#b0b0b0 360deg);box-shadow:inset 0 1px 1px #00000026}[data-jey-theme=chrome] .jey-chrome-face{position:absolute;inset:9px;border-radius:50%;overflow:hidden;background:linear-gradient(-168deg,#f4f4f4 0%,#e0e0e0 45%,#d4d4d4 100%);box-shadow:inset 0 3px 7px #ffffffb3,inset 0 -3px 6px #0000000f;display:flex;align-items:center;justify-content:center}[data-jey-theme=chrome] .jey-face-glow{position:absolute;inset:0;border-radius:50%;animation:jey-chrome-face-light 8s ease-in-out infinite;pointer-events:none;z-index:1}[data-jey-theme=chrome] .jey-face-reflection{position:absolute;top:15%;right:10%;width:80%;height:30%;background:linear-gradient(-180deg,rgba(255,255,255,.6) 0%,rgba(255,255,255,.15) 60%,transparent 100%);border-radius:50%;pointer-events:none;z-index:1;animation:jey-chrome-refl-drift 10s ease-in-out infinite}[data-jey-theme=chrome] .jey-chrome-face .jey-icon{width:24px!important;height:24px!important;stroke:#505050!important;fill:none!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.5))!important;position:relative;z-index:2}@keyframes jey-chrome-shine{0%{transform:translate(100%) skew(15deg)}to{transform:translate(-200%) skew(15deg)}}[data-jey-theme=chrome]{--bg-color: #d8d8d8;--fg-color: #e8e8e8;--card-bg: #e0e0e0;--subtle-accent: #d4d4d4;--subtle-fg: #d0d0d0;--fg-hover-color: #ccc;--highlight-color: #d4d4d4;--navbar-bg: #d0d0d0;--modal-bg: #ddd;--toast-bg: #ddd;--popover-bg: #e0e0e0;--control-bg: #d5d5d5;--control-bg-on-gray: #ccc;--awesomebar-focus-bg: #e8e8e8;--disabled-control-bg: #d0d0d0;--skeleton-bg: #c8c8c8;--surface-menu-bar: #d4d4d4;--surface-white: #e0e0e0;--surface-gray-1: #d8d8d8;--surface-gray-2: #d0d0d0;--surface-gray-3: #c8c8c8;--surface-gray-4: #bbb;--surface-modal: #ddd;--placeholder-color: #ccc;--sidebar-hover-color: #c8c8c8;--sidebar-active-color: #d8d8d8;--sidebar-border-color: #aaa;--divider-color: #b0b0b0;--heading-color: #333;--text-color: #404040;--text-neutral: #333;--text-muted: #666;--text-light: #888;--text-dark: #f0f0f0;--disabled-text-color: #888;--ink-gray-7: #555;--ink-gray-8: #404040;--ink-gray-9: #333;--border-color: #aaa;--dark-border-color: #999;--table-border-color: #aaa;--btn-group-border-color: #999;--outline-gray-1: #b0b0b0;--outline-gray-2: #999;--outline-gray-modals: #aaa;--primary: #555;--brand-color: #555;--btn-primary: #777;--btn-default-bg: #ccc;--btn-default-hover-bg: #bbb;--btn-ghost-hover-bg: #c0c0c0;--border-primary: #777;--shadow-xs: 1px 1px 2px rgba(0,0,0,.15), -1px -1px 1px rgba(255,255,255,.5);--shadow-sm: 1px 1px 3px rgba(0,0,0,.18), -1px -1px 2px rgba(255,255,255,.45);--shadow-base: 2px 2px 4px rgba(0,0,0,.15), -1px -1px 2px rgba(255,255,255,.4);--shadow-md: 2px 2px 6px rgba(0,0,0,.18), -1px -1px 3px rgba(255,255,255,.35);--shadow-lg: 3px 3px 10px rgba(0,0,0,.15), -2px -2px 5px rgba(255,255,255,.3);--shadow-xl: 4px 4px 16px rgba(0,0,0,.18), -2px -2px 6px rgba(255,255,255,.25);--shadow-2xl: 6px 6px 24px rgba(0,0,0,.2), -3px -3px 8px rgba(255,255,255,.2);--shadow-inset: inset 0px -1px 0px #999;--btn-shadow: 1px 1px 2px rgba(0,0,0,.15), -1px -1px 1px rgba(255,255,255,.4);--card-shadow: 2px 2px 6px rgba(0,0,0,.12), -1px -1px 3px rgba(255,255,255,.4);--modal-shadow: 6px 6px 30px rgba(0,0,0,.3), -3px -3px 10px rgba(255,255,255,.15);--awesomebar-shadow: 3px 3px 12px rgba(0,0,0,.15), -2px -2px 6px rgba(255,255,255,.3);--focus-default: 0 0 0 2px rgba(150,150,150,.5);--scrollbar-thumb-color: #999;--scrollbar-track-color: #c8c8c8;--switch-bg: #aaa;--checkbox-color: #555;--checkbox-gradient: linear-gradient(180deg, #777 0%, #666 100%);--timeline-badge-color: #555;--timeline-badge-bg: #ccc;--date-active-bg: #777;--date-active-text: #f0f0f0;--date-range-bg: #ccc;--progress-bar-bg: #777;--code-block-bg: #444;--code-block-text: #ccc}[data-jey-theme=chrome] body{background:radial-gradient(ellipse at 25% 15%,rgba(255,255,255,.45) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(255,255,255,.2) 0%,transparent 45%),radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.03) 0%,transparent 70%),linear-gradient(-168deg,#d8d8d8 0%,#c4c4c4 40%,#b8b8b8 70%,#c8c8c8 100%)!important;background-attachment:fixed!important}[data-jey-theme=chrome] .page-container{background:transparent!important}[data-jey-theme=chrome] .navbar{background:linear-gradient(-45deg,#aaa 2%,#ddd 8%,#bbb 18%,#e8e8e8 30%,#ccc 45%,#eee 55%,#bbb 68%,#ddd 80%,#aaa 95%)!important;border-bottom:1px solid #888!important;box-shadow:inset 0 1px #ffffffb3,inset 0 -1px #00000014,0 2px 4px #00000026!important}[data-jey-theme=chrome] .navbar .navbar-nav .nav-link{color:#444!important;text-shadow:0 1px 0 rgba(255,255,255,.5)}[data-jey-theme=chrome] .navbar .navbar-nav .nav-link:hover{color:#222!important;background:linear-gradient(-180deg,rgba(255,255,255,.35) 0%,rgba(255,255,255,.1) 100%)!important;border-radius:6px}[data-jey-theme=chrome] .search-bar input{background:linear-gradient(-180deg,#c0c0c0 0%,#d0d0d0 100%)!important;border:1px solid #999!important;box-shadow:inset 0 2px 4px #00000026,inset 0 0 0 1px #0000000d,0 1px #ffffff80!important;color:#333!important;border-radius:6px!important}[data-jey-theme=chrome] .search-bar input:focus{background:linear-gradient(-180deg,#d5d5d5 0%,#e0e0e0 100%)!important;border-color:#888!important;box-shadow:inset 0 1px 3px #0000001a,0 0 0 2px #9696964d,0 1px #fff6!important}[data-jey-theme=chrome] .search-bar .search-icon{color:#777!important}[data-jey-theme=chrome] .body-sidebar-container{background:linear-gradient(-160deg,#b8b8b8 0%,#f0f0f0 12%,#c0c0c0 28%,#f4f4f4 42%,#b8b8b8 58%,#ededed 72%,#aaa 88%,#ddd 100%)!important;border-left:1px solid #888!important;box-shadow:inset 1px 0 #fff9,inset 0 1px #ffffffb3,inset 0 -1px #0000001a,-2px 0 8px #0000001f!important}[data-jey-theme=chrome] .body-sidebar-container .body-sidebar,[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-top,[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-bottom,[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-cards{background:transparent!important}[data-jey-theme=chrome] .body-sidebar .standard-sidebar-item .item-anchor:hover{background:linear-gradient(-90deg,rgba(255,255,255,.25) 0%,rgba(255,255,255,.05) 100%)!important}[data-jey-theme=chrome] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor{background:linear-gradient(-45deg,#bbb 5%,#ddd 30%,#ccc 60%,#ddd 90%)!important;box-shadow:inset 0 1px #fff9,inset 0 -1px #00000014,-1px 1px 2px #0000001a,1px -1px 1px #ffffff4d!important;border-radius:8px}[data-jey-theme=chrome] .body-sidebar .sidebar-item-icon{color:#666!important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.5))}[data-jey-theme=chrome] .frappe-menu .menu-item-icon .jey-icon{width:20px!important;height:20px!important;stroke:#555!important;fill:none!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.4))!important}[data-jey-theme=chrome] .sidebar-header .header-logo .jey-icon{width:22px!important;height:22px!important;stroke:#555!important;fill:none!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.4))!important}[data-jey-theme=chrome] .btn-primary{background:linear-gradient(-45deg,#666 5%,#aaa 10%,#888 30%,#999 50%,#888 70%,#aaa 85%,#666 95%)!important;color:#f0f0f0!important;border:1px solid #555!important;box-shadow:-2px 2px 4px #0003,1px -1px 2px #ffffff26,inset 0 1px #ffffff4d,inset 0 -1px #00000026,inset -2px 2px 5px #0000,inset 1px -1px 2px #fff0!important;text-shadow:0 -1px 0 rgba(0,0,0,.25);position:relative;overflow:hidden;transition:box-shadow .25s cubic-bezier(.22,1,.36,1),border-color .25s cubic-bezier(.22,1,.36,1)!important}[data-jey-theme=chrome] .btn-primary:before{content:"";position:absolute;top:0;right:-50%;width:30%;height:100%;background:linear-gradient(-90deg,transparent,rgba(255,255,255,.25),transparent);transform:skew(15deg);transition:right .4s ease;pointer-events:none}[data-jey-theme=chrome] .btn-primary:hover:before{right:120%}[data-jey-theme=chrome] .btn-primary:hover{background:linear-gradient(-45deg,#777 5%,#bbb 10%,#999 30%,#aaa 50%,#999 70%,#bbb 85%,#777 95%)!important;box-shadow:-2px 2px 6px #00000040,1px -1px 3px #fff3,inset 0 1px #ffffff59,inset 0 -1px #00000026,inset -2px 2px 5px #0000,inset 1px -1px 2px #fff0!important}[data-jey-theme=chrome] .btn-primary:active{background:linear-gradient(-45deg,#555 5%,#888 10%,#777 30%,#888 50%,#777 70%,#888 85%,#555 95%)!important;box-shadow:-2px 2px 4px #0000,1px -1px 2px #fff0,inset 0 1px #fff0,inset 0 -1px #0000000d,inset -3px 3px 7px #00000059,inset 1px -1px 2px #ffffff1f!important;transition:box-shadow .08s ease-out!important}[data-jey-theme=chrome] .btn-default,[data-jey-theme=chrome] .btn-secondary{background:linear-gradient(-45deg,#bbb 5%,#eee 10%,#ccc 30%,#e0e0e0 50%,#ccc 70%,#eee 85%,#bbb 95%)!important;border:1px solid #999!important;color:#444!important;box-shadow:-1px 1px 3px #0000001f,1px -1px 2px #fff6,inset 0 1px #fff9,inset 0 -1px #0000000f,inset -2px 2px 4px #0000,inset 1px -1px 1px #fff0!important;text-shadow:0 1px 0 rgba(255,255,255,.5);transition:box-shadow .25s cubic-bezier(.22,1,.36,1),border-color .25s cubic-bezier(.22,1,.36,1)!important}[data-jey-theme=chrome] .btn-default:hover,[data-jey-theme=chrome] .btn-secondary:hover{background:linear-gradient(-45deg,#c0c0c0 5%,#f2f2f2 10%,#d4d4d4 30%,#e8e8e8 50%,#d4d4d4 70%,#f2f2f2 85%,#c0c0c0 95%)!important;border-color:#888!important;box-shadow:-2px 2px 4px #00000026,1px -1px 2px #fff6,inset 0 1px #ffffffb3,inset 0 -1px #0000000f,inset -2px 2px 4px #0000,inset 1px -1px 1px #fff0!important}[data-jey-theme=chrome] .btn-default:active,[data-jey-theme=chrome] .btn-secondary:active{background:linear-gradient(-45deg,#aaa 5%,#d8d8d8 10%,#bbb 30%,#ccc 50%,#bbb 70%,#d8d8d8 85%,#aaa 95%)!important;box-shadow:-1px 1px 3px #0000,1px -1px 2px #fff0,inset 0 1px #fff0,inset 0 -1px #0000000d,inset -3px 3px 6px #0000004d,inset 1px -1px 1px #ffffff26!important;transition:box-shadow .08s ease-out!important}[data-jey-theme=chrome] .btn-danger{background:linear-gradient(-45deg,#b33 5%,#e88 10%,#c55 30%,#d77 50%,#c55 70%,#e88 85%,#b33 95%)!important;color:#fff!important;border:1px solid #944!important;box-shadow:-2px 2px 4px #0003,1px -1px 2px #ffffff1a,inset 0 1px #ffffff40!important;text-shadow:0 -1px 0 rgba(0,0,0,.2)}[data-jey-theme=chrome] .btn-danger:hover{background:linear-gradient(-45deg,#c44 5%,#f99 10%,#d66 30%,#e88 50%,#d66 70%,#f99 85%,#c44 95%)!important}[data-jey-theme=chrome] .btn-ghost:hover{background:linear-gradient(-180deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.05) 100%)!important}[data-jey-theme=chrome] input.form-control:not([type="checkbox"]):not([type="radio"]),[data-jey-theme=chrome] textarea.form-control{background:#d0d0d0!important;border:1px solid #999!important;color:#333!important;box-shadow:inset -1px 1px 2px #0000001a,inset 1px -1px 1px #ffffff40,inset 0 1px 1px #0000000a!important;transition:background-color .45s cubic-bezier(.22,1,.36,1),border-color .45s cubic-bezier(.22,1,.36,1),box-shadow .45s cubic-bezier(.22,1,.36,1)!important}[data-jey-theme=chrome] input.form-control:not([type="checkbox"]):not([type="radio"]):focus,[data-jey-theme=chrome] textarea.form-control:focus{background:#cbcbcb!important;border-color:#777!important;box-shadow:inset -4px 4px 8px #00000047,inset 1px -1px 1px #ffffff26,inset 0 3px 5px #0000002e!important}[data-jey-theme=chrome] .form-control:disabled,[data-jey-theme=chrome] .form-control[disabled]{background:#d8d8d8!important;color:#888!important;box-shadow:inset -1px 1px 2px #0000000f!important}[data-jey-theme=chrome] .frappe-control .control-label,[data-jey-theme=chrome] .frappe-control label{color:#444!important;text-shadow:0 1px 0 rgba(255,255,255,.5)}[data-jey-theme=chrome] select.form-control,[data-jey-theme=chrome] select.input-with-feedback{background:#d0d0d0!important}[data-jey-theme=chrome] .form-page{background:linear-gradient(-45deg,#ccc 3%,#e8e8e8 10%,#d5d5d5 25%,#eee 45%,#d8d8d8 60%,#e8e8e8 80%,#ccc 97%)!important;border:1px solid #aaa!important;box-shadow:-3px 3px 8px #0000001f,2px -2px 4px #fff6,inset 0 1px #ffffffb3,inset 0 -1px #0000000d!important;border-radius:var(--border-radius-lg)!important}[data-jey-theme=chrome] .form-section .section-head{color:#444!important;text-shadow:0 1px 0 rgba(255,255,255,.5);border-bottom:1px solid #b0b0b0!important;position:relative}[data-jey-theme=chrome] .frappe-card{background:linear-gradient(-45deg,#c8c8c8 3%,#e5e5e5 12%,#d4d4d4 30%,#eaeaea 50%,#d4d4d4 70%,#e5e5e5 88%,#c8c8c8 97%)!important;border:1px solid #aaa!important;box-shadow:-2px 2px 6px #0000001a,1px -1px 3px #fff6,inset 0 1px #fff9!important}[data-jey-theme=chrome] .form-sidebar{border-right:1px solid #aaa!important}[data-jey-theme=chrome] .form-sidebar .sidebar-section{border-bottom:1px solid #b0b0b0!important}[data-jey-theme=chrome] .modal-content{background:linear-gradient(-45deg,#ccc 3%,#e8e8e8 12%,#d5d5d5 30%,#eee 50%,#d5d5d5 70%,#e8e8e8 88%,#ccc 97%)!important;border:1px solid #999!important;box-shadow:-6px 6px 24px #00000040,3px -3px 8px #ffffff26,inset 0 1px #fff9,inset 0 0 0 1px #ffffff59!important}[data-jey-theme=chrome] .modal-header{background:linear-gradient(-45deg,#b0b0b0 5%,#ddd 12%,#c0c0c0 30%,#e5e5e5 50%,#c0c0c0 70%,#ddd 88%,#b0b0b0 95%)!important;border-bottom:1px solid #999!important;box-shadow:inset 0 1px #fff9,inset 0 -1px #0000000f!important}[data-jey-theme=chrome] .modal-header .modal-title{color:#333!important;text-shadow:0 1px 0 rgba(255,255,255,.5)}[data-jey-theme=chrome] .modal-footer{background:linear-gradient(-45deg,#b8b8b8 5%,#d8d8d8 20%,#c0c0c0 50%,#d8d8d8 80%,#b8b8b8 95%)!important;border-top:1px solid #999!important}[data-jey-theme=chrome] .modal-backdrop{background-color:#2828288c!important}[data-jey-theme=chrome] .page-head{background:linear-gradient(-45deg,#b8b8b8 3%,#e0e0e0 10%,#c8c8c8 25%,#eaeaea 45%,#ccc 60%,#e0e0e0 80%,#b8b8b8 97%)!important;border-bottom:1px solid #999!important;box-shadow:inset 0 1px #fff9,inset 0 -1px #0000000f,0 2px 4px #00000014!important}[data-jey-theme=chrome] .page-head .title-text{color:#333!important;text-shadow:0 1px 0 rgba(255,255,255,.5)}[data-jey-theme=chrome] .list-row-head{background:linear-gradient(-45deg,#aaa 3%,#d8d8d8 10%,#bbb 25%,#e0e0e0 45%,#bbb 60%,#d8d8d8 80%,#aaa 97%)!important;box-shadow:inset 0 1px #fff9,inset 0 -1px #0000000f!important}[data-jey-theme=chrome] .list-row-container .list-row{border-bottom:1px solid #b8b8b8!important}[data-jey-theme=chrome] .list-row-container:hover{background:linear-gradient(-90deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.05) 100%)!important}[data-jey-theme=chrome] .result .list-row-container .level-left .list-row--col .level-left .ellipsis{color:#404040!important}[data-jey-theme=chrome] .frappe-list .list-row .level-right,[data-jey-theme=chrome] .frappe-list .list-row-head .level-right{background:linear-gradient(-90deg,rgba(216,216,216,.85) 0%,rgba(208,208,208,.88) 100%)!important;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border-right:1px solid #a0a0a0!important;box-shadow:inset -1px 0 #ffffff80!important}[data-jey-theme=chrome] .frappe-list .list-row-container:hover .level-right{background:linear-gradient(-90deg,rgba(224,224,224,.9) 0%,rgba(216,216,216,.92) 100%)!important;box-shadow:inset -1px 0 #ffffff8c,6px 0 10px #0000000d!important}[data-jey-theme=chrome] .layout-side-section{border-left:1px solid #aaa!important}[data-jey-theme=chrome] .frappe-control[data-fieldtype=Table] .form-grid{border:1px solid #999!important}[data-jey-theme=chrome] .grid-heading-row{background:linear-gradient(-45deg,#aaa 3%,#d5d5d5 10%,#bbb 30%,#ddd 50%,#bbb 70%,#d5d5d5 90%,#aaa 97%)!important;box-shadow:inset 0 1px #fff9,inset 0 -1px #0000000f!important}[data-jey-theme=chrome] .grid-heading-row .static-area{color:#444!important;text-shadow:0 1px 0 rgba(255,255,255,.5)}[data-jey-theme=chrome] .rows .grid-row:hover{background:linear-gradient(-90deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.05) 100%)!important}[data-jey-theme=chrome] .rows .grid-row{border-bottom:1px solid #b8b8b8!important}[data-jey-theme=chrome] .grid-footer{background:transparent!important;border-top:1px solid #999!important}[data-jey-theme=chrome] .rows .grid-row.editable-row,[data-jey-theme=chrome] .rows .grid-row:has(.editable-row){border-bottom:1px solid #b8b8b8!important}[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"]),[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control,[data-jey-theme=chrome] .grid-row>.data-row select.form-control,[data-jey-theme=chrome] .grid-row>.data-row select.input-with-feedback,[data-jey-theme=chrome] .grid-row>.data-row .awesomplete input,[data-jey-theme=chrome] .grid-row>.data-row .like-disabled-input{background:transparent!important;border:0!important;box-shadow:none!important;outline:none!important;color:#333!important;transition:box-shadow .45s cubic-bezier(.22,1,.36,1),background .45s cubic-bezier(.22,1,.36,1)!important}[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"]):focus,[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control:focus,[data-jey-theme=chrome] .grid-row>.data-row select.form-control:focus,[data-jey-theme=chrome] .grid-row>.data-row select.input-with-feedback:focus,[data-jey-theme=chrome] .grid-row>.data-row .awesomplete input:focus{background:linear-gradient(-45deg,#bbb 5%,#d8d8d8 10%,#c4c4c4 30%,#d0d0d0 50%,#c4c4c4 70%,#d8d8d8 85%,#bbb 95%)!important;border:0!important;outline:none!important;box-shadow:inset 0 1px #fff0,inset 0 -1px #0000000d,inset -3px 3px 6px #0000004d,inset 1px -1px 1px #ffffff26!important;transition:box-shadow .45s cubic-bezier(.22,1,.36,1),background .45s cubic-bezier(.22,1,.36,1)!important}[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"]):disabled,[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"])[disabled],[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"])[readonly],[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control:disabled,[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control[readonly],[data-jey-theme=chrome] .grid-row>.data-row select.form-control:disabled,[data-jey-theme=chrome] .grid-row>.data-row select.input-with-feedback:disabled{background:#d8d8d8!important;box-shadow:none!important;color:#666!important}[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"]):disabled:focus,[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"])[disabled]:focus,[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"])[readonly]:focus,[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control:disabled:focus,[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control[readonly]:focus,[data-jey-theme=chrome] .grid-row>.data-row select.form-control:disabled:focus{background:#d8d8d8!important;box-shadow:none!important}[data-jey-theme=chrome] .grid-row .editable-row .form-control{padding-top:10px!important;padding-bottom:10px!important;height:auto!important}[data-jey-theme=chrome] .form-tabs .nav-link{color:#666!important;text-shadow:0 1px 0 rgba(255,255,255,.4)}[data-jey-theme=chrome] .form-tabs .nav-link:hover{color:#444!important;background:linear-gradient(-180deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.05) 100%)!important}[data-jey-theme=chrome] .form-tabs .nav-link.active{color:#333!important;background:linear-gradient(-180deg,rgba(255,255,255,.2) 0%,transparent 100%)!important}[data-jey-theme=chrome] .form-tabs .nav-link:after{background:#777}[data-jey-theme=chrome] .dropdown-menu{background:linear-gradient(-45deg,#c0c0c0 3%,#e5e5e5 10%,#d0d0d0 30%,#eaeaea 50%,#d0d0d0 70%,#e5e5e5 90%,#c0c0c0 97%)!important;border:1px solid #999!important;box-shadow:-4px 4px 12px #0000002e,2px -2px 4px #ffffff26,inset 0 1px #fff9!important}[data-jey-theme=chrome] .dropdown-item{color:#444!important}[data-jey-theme=chrome] .dropdown-item:hover,[data-jey-theme=chrome] .dropdown-item:focus{background:linear-gradient(-90deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.05) 100%)!important;color:#222!important}[data-jey-theme=chrome] .dropdown-divider{border-top-color:#aaa!important}[data-jey-theme=chrome] .desk-alert{background:linear-gradient(-45deg,#c0c0c0 5%,#e5e5e5 15%,#d0d0d0 40%,#e8e8e8 60%,#d0d0d0 85%,#c0c0c0 95%)!important;border:1px solid #999!important;box-shadow:-3px 3px 8px #0000001f,1px -1px 3px #ffffff4d,inset 0 1px #ffffff80!important}[data-jey-theme=chrome] .breadcrumb-container a{color:#666!important;text-shadow:0 1px 0 rgba(255,255,255,.4)}[data-jey-theme=chrome] .breadcrumb-container a:hover{color:#333!important}[data-jey-theme=chrome] .new-timeline:before{border-right-color:#aaa!important}[data-jey-theme=chrome] .timeline-dot{background:linear-gradient(-45deg,#bbb,#ddd,#bbb)!important;border:1px solid #999!important;box-shadow:-1px 1px 2px #0000001a,1px -1px 1px #ffffff4d}[data-jey-theme=chrome] .indicator-pill{box-shadow:inset 0 1px #ffffff4d,-1px 1px 1px #00000014}[data-jey-theme=chrome] .popover{background:linear-gradient(-45deg,#c0c0c0 3%,#e5e5e5 10%,#d0d0d0 30%,#eaeaea 50%,#d0d0d0 70%,#e5e5e5 90%,#c0c0c0 97%)!important;border:1px solid #999!important;box-shadow:-4px 4px 12px #00000026,2px -2px 4px #fff3,inset 0 1px #ffffff80!important}[data-jey-theme=chrome] .popover .popover-body{color:#404040!important}[data-jey-theme=chrome] .ce-block .links-widget-box,[data-jey-theme=chrome] .ce-block .number-widget-box{background:linear-gradient(-45deg,#c0c0c0 3%,#e5e5e5 12%,#d0d0d0 30%,#eaeaea 50%,#d0d0d0 70%,#e5e5e5 88%,#c0c0c0 97%)!important;border:1px solid #aaa!important;box-shadow:-2px 2px 6px #0000001a,1px -1px 3px #ffffff59,inset 0 1px #fff9!important}[data-jey-theme=chrome] .ce-block .links-widget-box:after,[data-jey-theme=chrome] .ce-block .number-widget-box:after{background:conic-gradient(from -140deg,#a0a0a0,#e0e0e0,#888,#d0d0d0,#a0a0a0)!important}[data-jey-theme=chrome] .ce-block .links-widget-box:hover,[data-jey-theme=chrome] .ce-block .number-widget-box:hover{box-shadow:-3px 3px 10px #00000024,2px -2px 5px #ffffff4d,inset 0 1px #ffffffb3!important}[data-jey-theme=chrome] ::-webkit-scrollbar{width:10px;height:10px}[data-jey-theme=chrome] ::-webkit-scrollbar-track{background:linear-gradient(-90deg,#c0c0c0,#d0d0d0,#c0c0c0)}[data-jey-theme=chrome] ::-webkit-scrollbar-thumb{background:linear-gradient(-90deg,#888,#bbb,#999,#bbb,#888);border-radius:5px;border:1px solid #999}[data-jey-theme=chrome] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(-90deg,#777,#aaa,#888,#aaa,#777)}[data-jey-theme=chrome] a{color:#555}[data-jey-theme=chrome] a:hover{color:#333}@media print{[data-jey-theme=chrome] body,[data-jey-theme=chrome] .page-container,[data-jey-theme=chrome] .form-page,[data-jey-theme=chrome] .frappe-card,[data-jey-theme=chrome] .modal-content,[data-jey-theme=chrome] .navbar{background:white!important;box-shadow:none!important;border-color:#ddd!important;text-shadow:none!important}[data-jey-theme=chrome] .btn-primary{background:#333!important;text-shadow:none!important}}@keyframes jey-silk-glow{0%,to{opacity:.35}50%{opacity:.6}}[data-jey-theme=silk]{--jey-gold: #c39a54;--jey-gold-deep: #a67f3b;--jey-gold-soft: #e6d3a8;--jey-gold-tint: rgba(196, 160, 84, .12);--jey-cream: #f4ecde;--jey-card: #fbf8f2;--jey-ink: #453d31;--jey-ink-soft: #6d6252;--jey-line: #ebe0cd;--jey-shadow-card: 0 6px 24px rgba(120, 100, 60, .11), 0 1px 4px rgba(120, 100, 60, .06);--jey-shadow-hover: 0 12px 34px rgba(120, 100, 60, .16), 0 2px 8px rgba(120, 100, 60, .08);--jey-silk-bg: linear-gradient(135deg, rgba(230, 213, 182, .3) 0%, rgba(244, 236, 222, .1) 45%, rgba(226, 208, 178, .34) 100%), url(/assets/jey_theme/images/silk-bg.jpg) center center / cover no-repeat;--bg-color: #f1e8d8;--fg-color: #fbf8f2;--card-bg: #fbf8f2;--subtle-accent: #f4ecde;--subtle-fg: #efe6d5;--fg-hover-color: #f6efe3;--highlight-color: #f4ecde;--navbar-bg: transparent;--modal-bg: #fbf8f2;--toast-bg: #fbf8f2;--popover-bg: #fbf8f2;--control-bg: #fbf8f2;--control-bg-on-gray: #f1e8d8;--awesomebar-focus-bg: #ffffff;--disabled-control-bg: #efe6d5;--skeleton-bg: #ece1cd;--surface-menu-bar: #f4ecde;--surface-white: #fbf8f2;--surface-gray-1: #f4ecde;--surface-gray-2: #efe6d5;--surface-gray-3: #e9dcc6;--surface-gray-4: #ddceb2;--surface-modal: #fbf8f2;--placeholder-color: #b3a58c;--sidebar-hover-color: #efe6d5;--sidebar-active-color: #ffffff;--sidebar-border-color: transparent;--divider-color: #e6dcc6;--heading-color: #453d31;--text-color: #5a5040;--text-neutral: #453d31;--text-muted: #8a7d68;--text-light: #a4977f;--text-dark: #453d31;--disabled-text-color: #a4977f;--ink-gray-6: #8a7d68;--ink-gray-7: #6d6252;--ink-gray-8: #504733;--ink-gray-9: #453d31;--border-color: #ebe0cd;--dark-border-color: #ddceb2;--table-border-color: #ebe0cd;--btn-group-border-color: #ddceb2;--outline-gray-1: #ebe0cd;--outline-gray-2: #ddceb2;--outline-gray-modals: #e6dcc6;--primary: #c39a54;--primary-color: #c39a54;--brand-color: #c39a54;--btn-primary: #c39a54;--btn-default-bg: #fbf8f2;--btn-default-hover-bg: #f1e8d8;--btn-ghost-hover-bg: #efe6d5;--border-primary: #c39a54;--border-radius: 8px;--border-radius-sm: 6px;--border-radius-md: 12px;--border-radius-lg: 16px;--border-radius-full: 999px;--shadow-xs: 0 1px 2px rgba(120, 100, 60, .06);--shadow-sm: 0 2px 6px rgba(120, 100, 60, .07);--shadow-base: 0 3px 10px rgba(120, 100, 60, .08);--shadow-md: 0 4px 16px rgba(120, 100, 60, .09);--shadow-lg: 0 8px 24px rgba(120, 100, 60, .11);--shadow-xl: 0 12px 32px rgba(120, 100, 60, .13);--shadow-2xl: 0 18px 44px rgba(120, 100, 60, .16);--card-shadow: 0 4px 20px rgba(120, 100, 60, .08), 0 1px 3px rgba(120, 100, 60, .05);--btn-shadow: 0 1px 2px rgba(120, 100, 60, .08);--modal-shadow: 0 20px 48px rgba(90, 70, 40, .22);--awesomebar-shadow: 0 4px 16px rgba(120, 100, 60, .1);--focus-default: 0 0 0 3px rgba(196, 160, 84, .25);--scrollbar-thumb-color: #d8c8a6;--scrollbar-track-color: #f1e8d8;--switch-bg: #d8c8a6;--checkbox-color: #c39a54;--checkbox-gradient: linear-gradient(180deg, #cfa863 0%, #b98f45 100%);--timeline-badge-color: #c39a54;--timeline-badge-bg: #f1e8d8;--date-active-bg: #c39a54;--date-active-text: #ffffff;--date-range-bg: #f1e4cb;--progress-bar-bg: #c39a54}[data-jey-theme=silk] body{background:var(--jey-silk-bg)!important;background-attachment:fixed!important;color:var(--text-color)}[data-jey-theme=silk] .page-container,[data-jey-theme=silk] .layout-main-section-wrapper,[data-jey-theme=silk] .layout-main-section{background:transparent!important}[data-jey-theme=silk] .navbar{background:rgba(251,248,242,.72)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(235,224,205,.6)!important;box-shadow:0 1px 8px #78643c0d!important}[data-jey-theme=silk] .navbar .navbar-nav .nav-link{color:var(--jey-ink-soft)!important}[data-jey-theme=silk] .navbar .navbar-nav .nav-link:hover{color:var(--jey-ink)!important;background:var(--jey-gold-tint)!important;border-radius:10px}[data-jey-theme=silk] .search-bar input,[data-jey-theme=silk] .navbar .search-bar .form-control{background:rgba(255,255,255,.75)!important;border:1px solid var(--jey-line)!important;box-shadow:inset 0 1px 2px #78643c0d!important;color:var(--jey-ink)!important;border-radius:999px!important}[data-jey-theme=silk] .search-bar input:focus{background:#ffffff!important;border-color:var(--jey-gold-soft)!important;box-shadow:0 0 0 3px #c4a0542e!important}[data-jey-theme=silk] .search-bar .search-icon{color:var(--jey-gold-deep)!important}[data-jey-theme=silk] .body-sidebar-container{background:rgba(247,240,227,.6)!important;border-left:1px solid rgba(235,224,205,.7)!important;box-shadow:none!important}[data-jey-theme=silk] .body-sidebar-container .body-sidebar,[data-jey-theme=silk] .body-sidebar-container .body-sidebar-top,[data-jey-theme=silk] .body-sidebar-container .body-sidebar-bottom,[data-jey-theme=silk] .body-sidebar-container .body-sidebar-cards{background:transparent!important}[data-jey-theme=silk] .body-sidebar .standard-sidebar-item .item-anchor{border-radius:12px;transition:background .2s ease,box-shadow .2s ease}[data-jey-theme=silk] .body-sidebar .standard-sidebar-item .item-anchor:hover{background:rgba(255,255,255,.55)!important}[data-jey-theme=silk] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor,[data-jey-theme=silk] .body-sidebar .standard-sidebar-item.selected .item-anchor{background:#ffffff!important;box-shadow:0 2px 10px #78643c1a!important;border-radius:12px}[data-jey-theme=silk] .body-sidebar .standard-sidebar-item.active-sidebar .sidebar-item-label,[data-jey-theme=silk] .body-sidebar .standard-sidebar-item.selected .sidebar-item-label{color:var(--jey-ink)!important;font-weight:600}[data-jey-theme=silk] .body-sidebar .sidebar-item-icon,[data-jey-theme=silk] .body-sidebar .standard-sidebar-item.active-sidebar .sidebar-item-icon{color:var(--jey-gold-deep)!important}[data-jey-theme=silk] .body-sidebar-container a,[data-jey-theme=silk] .body-sidebar-container .sidebar-item-label,[data-jey-theme=silk] .body-sidebar-container .sidebar-item-control{color:var(--text-color)!important}[data-jey-theme=silk] .sidebar-header .header-logo .jey-icon,[data-jey-theme=silk] .frappe-menu .menu-item-icon .jey-icon{stroke:var(--jey-gold-deep)!important;fill:none!important;stroke-width:1.7!important;stroke-linecap:round!important;stroke-linejoin:round!important}[data-jey-theme=silk] .btn-primary{background:linear-gradient(-180deg,#cfa863 0%,#bd9146 100%)!important;color:#fffdf8!important;border:1px solid #b0873f!important;box-shadow:0 2px 8px #b48c3c40,inset 0 1px #ffffff40!important;text-shadow:0 -1px 0 rgba(120,90,30,.2);border-radius:10px!important;transition:box-shadow .2s ease,transform .1s ease,background .2s ease!important}[data-jey-theme=silk] .btn-primary:hover{background:linear-gradient(-180deg,#d6b170 0%,#c59a4f 100%)!important;box-shadow:0 4px 14px #b48c3c52,inset 0 1px #ffffff4d!important}[data-jey-theme=silk] .btn-primary:active{transform:translateY(1px);box-shadow:0 1px 4px #b48c3c33,inset 0 2px 4px #785a1e2e!important}[data-jey-theme=silk] .btn-default,[data-jey-theme=silk] .btn-secondary{background:rgba(255,255,255,.85)!important;border:1px solid var(--jey-line)!important;color:var(--jey-ink)!important;box-shadow:0 1px 3px #78643c0f!important;border-radius:10px!important;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease!important}[data-jey-theme=silk] .btn-default:hover,[data-jey-theme=silk] .btn-secondary:hover{background:#ffffff!important;border-color:var(--jey-gold-soft)!important;box-shadow:0 3px 10px #78643c1a!important}[data-jey-theme=silk] .btn-ghost:hover{background:var(--jey-gold-tint)!important}[data-jey-theme=silk] input.form-control:not([type="checkbox"]):not([type="radio"]),[data-jey-theme=silk] textarea.form-control,[data-jey-theme=silk] select.form-control,[data-jey-theme=silk] select.input-with-feedback{background:rgba(255,255,255,.8)!important;border:1px solid var(--jey-line)!important;color:var(--jey-ink)!important;box-shadow:inset 0 1px 2px #78643c0a!important;border-radius:10px!important;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease!important}[data-jey-theme=silk] input.form-control:not([type="checkbox"]):not([type="radio"]):focus,[data-jey-theme=silk] textarea.form-control:focus,[data-jey-theme=silk] select.form-control:focus{background:#ffffff!important;border-color:var(--jey-gold-soft)!important;box-shadow:0 0 0 3px #c4a0542e!important}[data-jey-theme=silk] .form-control:disabled,[data-jey-theme=silk] .form-control[disabled]{background:#efe6d5!important;color:var(--text-light)!important;box-shadow:none!important}[data-jey-theme=silk] .frappe-control .control-label,[data-jey-theme=silk] .frappe-control label{color:var(--jey-ink-soft)!important}[data-jey-theme=silk] .widget,[data-jey-theme=silk] .ce-block .links-widget-box,[data-jey-theme=silk] .ce-block .number-widget-box,[data-jey-theme=silk] .ce-block .chart-widget-box,[data-jey-theme=silk] .ce-block .shortcut-widget-box,[data-jey-theme=silk] .ce-block .onboarding-widget-box,[data-jey-theme=silk] .frappe-card{background:linear-gradient(-160deg,rgba(255,255,255,.46) 0%,rgba(255,252,245,.34) 55%,rgba(252,246,236,.4) 100%)!important;backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px) saturate(1.2);border:1.5px solid rgba(255,255,255,.9)!important;box-shadow:0 14px 34px #4a39232e,0 4px 10px #4a39231a,inset 0 1px 1px #fff9!important;border-radius:22px!important;transition:box-shadow .25s ease,transform .2s ease!important}[data-jey-theme=silk] .widget.onboarding-widget-box{background:linear-gradient(-160deg,rgba(255,255,255,.46) 0%,rgba(255,252,245,.34) 55%,rgba(252,246,236,.4) 100%)!important}[data-jey-theme=silk] .ce-block .links-widget-box:hover,[data-jey-theme=silk] .ce-block .number-widget-box:hover,[data-jey-theme=silk] .ce-block .shortcut-widget-box:hover{border-color:#fff!important;box-shadow:0 22px 48px #4a39233d,0 6px 14px #4a392321,inset 0 1px 1px #ffffffb3!important;transform:translateY(-3px)}[data-jey-theme=silk] .widget .widget-head .widget-title,[data-jey-theme=silk] .widget-group .widget-group-head .widget-group-title{color:var(--jey-ink)!important;font-weight:600}[data-jey-theme=silk] .number-widget-box .widget-content .number{color:var(--jey-ink)!important}[data-jey-theme=silk] .shortcut-widget-box .indicator-pill,[data-jey-theme=silk] .widget .shortcut-icon{color:var(--jey-gold-deep)!important}[data-jey-theme=silk] .form-page{background:rgba(251,248,242,.9)!important;border:1px solid rgba(235,224,205,.8)!important;box-shadow:var(--jey-shadow-card)!important;border-radius:16px!important}[data-jey-theme=silk] .form-section .section-head{color:var(--jey-ink)!important;border-bottom:1px solid var(--jey-line)!important}[data-jey-theme=silk] .chart-container .line-chart-rect,[data-jey-theme=silk] .chart-container path.line-graph-path,[data-jey-theme=silk] .chart-container path.dataset-path{stroke:var(--jey-gold)!important}[data-jey-theme=silk] .chart-container .dataset-circle,[data-jey-theme=silk] .chart-container circle.fill{fill:var(--jey-gold)!important;stroke:var(--jey-gold)!important}[data-jey-theme=silk] .chart-container path.region-fill{fill:#c4a0541f!important;stroke:none!important}[data-jey-theme=silk] .page-head{background:transparent!important;border-bottom:none!important;box-shadow:none!important}[data-jey-theme=silk] .page-head .title-text,[data-jey-theme=silk] .page-title .title-text{color:var(--jey-ink)!important}[data-jey-theme=silk] .list-row-head{background:rgba(244,236,222,.85)!important;border-bottom:1px solid var(--jey-line)!important;box-shadow:none!important;border-radius:12px 12px 0 0}[data-jey-theme=silk] .list-row-container .list-row{border-bottom:1px solid rgba(235,224,205,.7)!important}[data-jey-theme=silk] .list-row-container:hover{background:var(--jey-gold-tint)!important}[data-jey-theme=silk] .layout-side-section{border-left:1px solid var(--jey-line)!important}[data-jey-theme=silk] .modal-content{background:#fbf8f2!important;border:1px solid var(--jey-line)!important;box-shadow:0 20px 48px #5a462838!important;border-radius:18px!important}[data-jey-theme=silk] .modal-header{background:transparent!important;border-bottom:1px solid var(--jey-line)!important}[data-jey-theme=silk] .modal-header .modal-title{color:var(--jey-ink)!important}[data-jey-theme=silk] .modal-footer{background:transparent!important;border-top:1px solid var(--jey-line)!important}[data-jey-theme=silk] .modal-backdrop{background-color:#46372366!important}[data-jey-theme=silk] .dropdown-menu,[data-jey-theme=silk] .popover{background:#fbf8f2!important;border:1px solid var(--jey-line)!important;box-shadow:0 8px 24px #78643c24!important;border-radius:14px!important}[data-jey-theme=silk] .dropdown-item{color:var(--jey-ink-soft)!important;border-radius:8px}[data-jey-theme=silk] .dropdown-item:hover,[data-jey-theme=silk] .dropdown-item:focus{background:var(--jey-gold-tint)!important;color:var(--jey-ink)!important}[data-jey-theme=silk] .dropdown-divider{border-top-color:var(--jey-line)!important}[data-jey-theme=silk] .form-tabs .nav-link{color:var(--jey-ink-soft)!important}[data-jey-theme=silk] .form-tabs .nav-link:hover{color:var(--jey-ink)!important;background:var(--jey-gold-tint)!important;border-radius:8px}[data-jey-theme=silk] .form-tabs .nav-link.active{color:var(--jey-gold-deep)!important}[data-jey-theme=silk] .form-tabs .nav-link:after{background:var(--jey-gold)!important}[data-jey-theme=silk] a{color:var(--jey-gold-deep)}[data-jey-theme=silk] a:hover{color:#8c6b2c}[data-jey-theme=silk] ::-webkit-scrollbar{width:10px;height:10px}[data-jey-theme=silk] ::-webkit-scrollbar-track{background:#f1e8d8}[data-jey-theme=silk] ::-webkit-scrollbar-thumb{background:#dccba4;border-radius:5px;border:2px solid #f1e8d8}[data-jey-theme=silk] ::-webkit-scrollbar-thumb:hover{background:#cdb885}[data-jey-theme=silk] .jey-chrome{width:72px;height:72px;border-radius:22px;position:relative;background:rgba(255,255,255,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.7);box-shadow:0 4px 16px #78643c1a,inset 0 1px #ffffffd9;transition:all .3s ease}[data-jey-theme=silk] .desktop-icon:hover .jey-chrome{box-shadow:0 8px 24px #78643c29,inset 0 1px #ffffffe6;transform:translateY(-2px)}[data-jey-theme=silk] .jey-chrome-ring,[data-jey-theme=silk] .jey-chrome-gap,[data-jey-theme=silk] .jey-chrome-ring-inner{display:none}[data-jey-theme=silk] .jey-chrome-face{position:absolute;inset:0;border-radius:22px;overflow:hidden;background:transparent;box-shadow:none;display:flex;align-items:center;justify-content:center}[data-jey-theme=silk] .jey-face-glow{position:absolute;bottom:-4px;right:16px;left:16px;height:20px;border-radius:50%;background:radial-gradient(ellipse,rgba(196,160,84,.4) 0%,transparent 70%);animation:jey-silk-glow 4s ease-in-out infinite;pointer-events:none;z-index:0}[data-jey-theme=silk] .jey-face-reflection{position:absolute;top:0;right:0;left:0;height:50%;border-radius:22px 22px 0 0;background:linear-gradient(-180deg,rgba(255,255,255,.55) 0%,transparent 100%);pointer-events:none;z-index:1;animation:none}[data-jey-theme=silk] .jey-chrome-face .jey-icon{width:26px!important;height:26px!important;stroke:#b58f47!important;fill:none!important;stroke-width:1.6!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:drop-shadow(0 1px 2px rgba(180,140,60,.25))!important;position:relative;z-index:2}[data-jey-theme=silk] .icon-container.jey-chrome-done{border-radius:22px!important} +/*# sourceMappingURL=jey_theme.bundle.ELKGAGY2.css.map */ diff --git a/jey_theme/public/dist/css-rtl/jey_theme.bundle.ELKGAGY2.css.map b/jey_theme/public/dist/css-rtl/jey_theme.bundle.ELKGAGY2.css.map new file mode 100644 index 0000000..cdf3c31 --- /dev/null +++ b/jey_theme/public/dist/css-rtl/jey_theme.bundle.ELKGAGY2.css.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../../../../../../tmp/tmp-28091-FZqQ7Mrkdq7J/jey_theme/jey_theme/public/css/jey_theme.bundle.css"], + "sourcesContent": ["/* Bundled theme styles (was 3 raw app_include_css/web_include_css entries).\n One hashed bundle -> smaller preload header + auto cache-busting.\n Order preserved: shared -> theme_chrome -> theme_silk. */\n\n/* ===== shared.css ===== */\n/* ==========================================================================\n Jey Theme \u2014 Shared Styles (theme-independent)\n ========================================================================== */\n\n/* Override Frappe's default desk splash image (the blue \"E\").\n Splash markup is in templates/includes/splash_screen.html and gets removed\n by Frappe once the desk boots, so this only shows during page load. */\n.splash img {\n\tcontent: url(\"/assets/jey_theme/images/preloader.png\");\n\tmax-width: 64px !important;\n\twidth: 64px !important;\n\theight: auto;\n}\n\n/* Hide Organization desktop icon by default */\n.desktop-icon[data-id=\"Organization\"],\n.desktop-icon[data-id=\"ERPNext\"] {\n\tdisplay: none !important;\n}\n\n/* Fallback hide for blocked modules (main filtering happens in access_control.py).\n Desktop Icon records use label \"Quality\" and \"Subcontracting\" \u2014 match those. */\n.desktop-icon[data-id=\"Quality\"],\n.desktop-icon[data-id=\"Quality Management\"],\n.desktop-icon[data-id=\"Subcontracting\"] {\n\tdisplay: none !important;\n}\n\n/* ==========================================================================\n Toggle Switch Checkboxes\n ========================================================================== */\n\ninput[type=\"checkbox\"] {\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n appearance: none !important;\n width: 28px !important;\n min-width: 28px !important;\n height: 16px !important;\n background-color: var(--gray-400, #c0c6cc) !important;\n background-image: none !important;\n border-radius: 999px !important;\n border: none !important;\n position: relative !important;\n cursor: pointer !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12) !important;\n transition: background-color 0.25s ease !important;\n vertical-align: middle !important;\n margin: 0 !important;\n margin-left: 8px !important;\n outline: none !important;\n}\n\ninput[type=\"checkbox\"]::after {\n content: \"\" !important;\n width: 12px !important;\n height: 12px !important;\n background-color: #fff !important;\n border-radius: 50% !important;\n position: absolute !important;\n top: 2px !important;\n right: 2px !important;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;\n transition: transform 0.25s ease !important;\n border: none !important;\n}\n\ninput[type=\"checkbox\"]:checked,\ninput[type=\"checkbox\"].disabled-selected {\n background-color: #2da44e !important;\n background-image: none !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08) !important;\n}\n\ninput[type=\"checkbox\"]:checked::after,\ninput[type=\"checkbox\"].disabled-selected::after {\n transform: translateX(-12px) !important;\n}\n\ninput[type=\"checkbox\"]:focus {\n outline: none !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(45, 164, 78, 0.25) !important;\n}\n\ninput[type=\"checkbox\"]:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n background-image: none !important;\n}\n\ninput[type=\"checkbox\"].disabled-selected {\n opacity: 0.7 !important;\n cursor: not-allowed !important;\n}\n\n\n/* ==========================================================================\n Table Grid \u2014 restore Frappe default checkboxes\n ========================================================================== */\n\n.row-check input[type=\"checkbox\"],\n.grid-row-check {\n width: var(--checkbox-size, 14px) !important;\n min-width: var(--checkbox-size, 14px) !important;\n height: var(--checkbox-size, 14px) !important;\n border-radius: 4px !important;\n border: 1px solid var(--gray-500) !important;\n background-color: transparent !important;\n background-image: none !important;\n box-shadow: none !important;\n margin-left: 0 !important;\n transition: none !important;\n}\n\n.row-check input[type=\"checkbox\"]::after,\n.grid-row-check::after {\n content: \"\" !important;\n width: auto !important;\n height: auto !important;\n background: none !important;\n border-radius: 0 !important;\n position: absolute !important;\n top: auto !important;\n right: auto !important;\n box-shadow: none !important;\n transition: none !important;\n transform: none !important;\n inset: -8px !important;\n opacity: 0 !important;\n}\n\n.row-check input[type=\"checkbox\"]:checked,\n.grid-row-check:checked {\n background-color: var(--primary) !important;\n background-image: url(\"data:image/svg+xml, \"), var(--checkbox-gradient) !important;\n background-size: 57%, 100% !important;\n background-repeat: no-repeat !important;\n background-position: center !important;\n border: none !important;\n box-shadow: none !important;\n}\n\n.row-check input[type=\"checkbox\"]:checked::after,\n.grid-row-check:checked::after {\n transform: none !important;\n}\n\n/* ==========================================================================\n Report View (frappe-datatable) \u2014 compact themed checkboxes\n The global toggle-switch styling (28\u00D716) doesn't fit the 32px select\n column or the 37px row-number column, so content gets clipped. Use the\n same compact square style as child-table grids (.row-check) \u2014 themed,\n not native.\n ========================================================================== */\n\n.datatable input[type=\"checkbox\"] {\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n appearance: none !important;\n width: var(--checkbox-size, 14px) !important;\n min-width: var(--checkbox-size, 14px) !important;\n height: var(--checkbox-size, 14px) !important;\n margin: 0 !important;\n padding: 0 !important;\n border: 1px solid var(--gray-500) !important;\n border-radius: 4px !important;\n background-color: transparent !important;\n background-image: none !important;\n box-shadow: none !important;\n cursor: pointer !important;\n vertical-align: middle !important;\n transition: none !important;\n}\n\n.datatable input[type=\"checkbox\"]::after {\n content: none !important;\n display: none !important;\n}\n\n.datatable input[type=\"checkbox\"]:checked {\n background-color: var(--primary) !important;\n background-image: url(\"data:image/svg+xml, \") !important;\n background-size: 57% !important;\n background-repeat: no-repeat !important;\n background-position: center !important;\n border: none !important;\n}\n\n.datatable input[type=\"checkbox\"]:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n}\n\n/* Centre the checkbox vertically in its cell \u2014 vertical-align:middle on the\n input alone isn't enough because datatable cells have their own line-box\n rules that anchor the box to the baseline. */\n.datatable .dt-cell__content:has(> input[type=\"checkbox\"]:only-child) {\n display: flex !important;\n align-items: center !important;\n justify-content: flex-start !important;\n}\n\n/* Filter row: input + help-icon squash each other in narrow columns. Let\n the input flex-shrink instead of overflowing its siblings. */\n.datatable .dt-row-filter .dt-cell__content {\n display: flex !important;\n align-items: center !important;\n gap: 2px;\n}\n\n.datatable .dt-row-filter .dt-filter.dt-input {\n flex: 1 1 0 !important;\n min-width: 0 !important;\n}\n\n.datatable .dt-row-filter .comparison-help-icon {\n flex: 0 0 auto;\n}\n\n/* ==========================================================================\n List View \u2014 restore toggle knob\n ========================================================================== */\n\ninput.list-row-checkbox::after,\ninput.list-header-checkbox::after {\n inset: auto !important;\n width: 12px !important;\n height: 12px !important;\n background-color: #fff !important;\n border-radius: 50% !important;\n position: absolute !important;\n top: 2px !important;\n right: 2px !important;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;\n transition: transform 0.25s ease !important;\n opacity: 1 !important;\n}\n\ninput.list-row-checkbox:checked::after,\ninput.list-header-checkbox:checked::after {\n transform: translateX(-12px) !important;\n}\n\n\n.frappe-control[data-fieldtype=\"Check\"] .checkbox label {\n align-items: center !important;\n}\n\n.frappe-control[data-fieldtype=\"Check\"] .checkbox .input-area:not(.hide) {\n padding-top: 0 !important;\n display: flex !important;\n align-items: center !important;\n}\n\n/* ==========================================================================\n List View \u2014 swap filter and sort order\n ========================================================================== */\n\n.filter-section {\n display: flex !important;\n}\n\n.filter-section .sort-selector {\n order: -1 !important;\n margin-left: 8px !important;\n}\n\n/* ==========================================================================\n Table Horizontal Scrollbar \u2014 thicker & easier to grab\n ========================================================================== */\n\n/* Force scrollbar always visible & push it below table content */\n.form-grid {\n overflow-x: scroll !important;\n padding-bottom: 12px !important;\n scrollbar-width: auto !important;\n}\n\n.form-grid::-webkit-scrollbar {\n height: 10px !important;\n}\n\n.form-grid::-webkit-scrollbar-track {\n background: var(--gray-100, #f5f5f5) !important;\n}\n\n.form-grid::-webkit-scrollbar-thumb {\n background: var(--gray-400, #c0c6cc) !important;\n border-radius: 5px !important;\n border: 2px solid var(--gray-100, #f5f5f5) !important;\n}\n\n.form-grid::-webkit-scrollbar-thumb:hover {\n background: var(--gray-500, #98a2ab) !important;\n}\n\n\n/* ==========================================================================\n Grid Column Resize Handles\n ========================================================================== */\n\n.jey-col-resize {\n position: absolute;\n top: 0;\n left: -2px;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n z-index: 2;\n background: transparent;\n transition: background 0.15s;\n}\n\n.jey-col-resize:hover,\n.jey-col-resize:active {\n background: var(--primary, #2490ef);\n opacity: 0.5;\n}\n\n/* Column drag & drop */\n.grid-heading-row .grid-static-col[data-jey-draggable] {\n cursor: grab;\n}\n\n.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-left {\n box-shadow: inset -3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-right {\n box-shadow: inset 3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n/* ==========================================================================\n List View Column Resize + Reorder\n ========================================================================== */\n\n.list-row-head .list-row-col {\n position: relative;\n}\n\n/* Column dividers \u2014 hint that headers can be resized / reordered. */\n.list-row-head .list-row-col:not(:last-child) {\n border-left: 1px solid var(--border-color, #e2e6e9);\n}\n\n.list-row-head .jey-col-resize {\n position: absolute;\n top: 0;\n left: -2px;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n z-index: 3;\n background: transparent;\n transition: background 0.15s;\n}\n\n.list-row-head .jey-col-resize:hover,\n.list-row-head .jey-col-resize:active {\n background: var(--primary, #2490ef);\n opacity: 0.5;\n}\n\n.list-row-head .list-row-col[data-jey-draggable]:not(.list-subject) {\n cursor: grab;\n}\n\n.list-row-head .list-row-col.jey-drop-target.jey-drop-left {\n box-shadow: inset -3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n.list-row-head .list-row-col.jey-drop-target.jey-drop-right {\n box-shadow: inset 3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n/* ==========================================================================\n Sidebar \u2014 Full Width button\n ========================================================================== */\n\n/* .body-sidebar-bottom is a flex item of .body-sidebar (column flex).\n By default min-width:auto resolves to min-content, so it refuses to\n shrink below the natural width of its widest text \u2014 and our buttons'\n labels poke past the collapsed sidebar's right edge. Force min-width:0\n so it can match the cross-axis (50px collapsed) and clip properly. */\n.body-sidebar .body-sidebar-bottom {\n min-width: 0;\n}\n\n.jey-fullwidth-link,\n.jey-theme-switch-link,\n.jey-collapse-link {\n text-decoration: none;\n font-size: var(--text-sm);\n display: flex;\n align-items: center;\n cursor: pointer;\n margin-bottom: 8px;\n width: 100%;\n overflow: hidden;\n}\n\n.jey-fullwidth-link svg,\n.jey-theme-switch-link svg,\n.jey-collapse-link svg {\n margin: 0;\n flex: 0 0 auto;\n}\n\n.jey-fullwidth-link span,\n.jey-theme-switch-link span,\n.jey-collapse-link span {\n margin-right: 10px;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1),\n margin-right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* When sidebar is collapsed, animate the label to zero width + zero\n margin so it smoothly slides under the icon instead of leaving a\n single ellipsized letter at the edge. */\n.body-sidebar-container:not(.expanded) .jey-fullwidth-link span,\n.body-sidebar-container:not(.expanded) .jey-theme-switch-link span,\n.body-sidebar-container:not(.expanded) .jey-collapse-link span {\n max-width: 0;\n margin-right: 0;\n}\n\n/* Hide the v16.17 native bottom row (about + collapse icon-buttons).\n Our labeled .jey-collapse-link replaces it. */\n.body-sidebar .sidebar-bottom-actions {\n display: none !important;\n}\n\n/* Frappe v16 toggles .nav-item padding 0\u21928px instantly between\n collapsed/expanded, while the sidebar width itself transitions over\n 0.3s \u2014 making the user/account button visibly jump 8px. Animate the\n padding so it stays in sync with the width. */\n.body-sidebar .nav-item {\n transition: padding 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* ==========================================================================\n Modal / Dialog \u2014 Smooth Entrance\n ========================================================================== */\n\n.modal.fade .modal-dialog {\n transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) !important;\n transform: translateY(-24px) scale(0.97);\n opacity: 0;\n}\n\n.modal.show .modal-dialog {\n transform: none;\n opacity: 1;\n}\n\n\n/* ==========================================================================\n Form Sections \u2014 Cascade Entrance\n ========================================================================== */\n\n@keyframes jey-section-in {\n from { top: -12px; }\n to { top: 0; }\n}\n\n/* Slide-only entrance \u2014 animating `opacity` here would create a persistent\n stacking context on .section-body (Firefox keeps the compositing layer\n alive after the animation completes when `fill-mode: both` keeps opacity\n fill-forward, even though opacity reaches 1). That stacking context traps\n Frappe's child-table row form (.form-in-grid, z-index 1021) under the\n freeze backdrop (#freeze.modal-backdrop, z-index 1020): the row form\n visually disappears behind the backdrop, every mouse click is captured by\n #freeze (whose handler closes the row form), and only keyboard nav works.\n Same reason we slide via `top` instead of `transform: translateY()` \u2014\n `transform` would also leave behind a stacking context.\n `position: relative` alone (without z-index) does NOT create one. */\n.form-layout .form-section .section-head,\n.form-layout .form-section .section-body {\n position: relative;\n animation: jey-section-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.form-layout .form-section:nth-child(1) .section-head,\n.form-layout .form-section:nth-child(1) .section-body { animation-delay: 0.04s; }\n.form-layout .form-section:nth-child(2) .section-head,\n.form-layout .form-section:nth-child(2) .section-body { animation-delay: 0.10s; }\n.form-layout .form-section:nth-child(3) .section-head,\n.form-layout .form-section:nth-child(3) .section-body { animation-delay: 0.16s; }\n.form-layout .form-section:nth-child(4) .section-head,\n.form-layout .form-section:nth-child(4) .section-body { animation-delay: 0.22s; }\n.form-layout .form-section:nth-child(5) .section-head,\n.form-layout .form-section:nth-child(5) .section-body { animation-delay: 0.28s; }\n.form-layout .form-section:nth-child(6) .section-head,\n.form-layout .form-section:nth-child(6) .section-body { animation-delay: 0.34s; }\n.form-layout .form-section:nth-child(7) .section-head,\n.form-layout .form-section:nth-child(7) .section-body { animation-delay: 0.40s; }\n.form-layout .form-section:nth-child(8) .section-head,\n.form-layout .form-section:nth-child(8) .section-body { animation-delay: 0.46s; }\n.form-layout .form-section:nth-child(9) .section-head,\n.form-layout .form-section:nth-child(9) .section-body { animation-delay: 0.52s; }\n.form-layout .form-section:nth-child(10) .section-head,\n.form-layout .form-section:nth-child(10) .section-body { animation-delay: 0.58s; }\n.form-layout .form-section:nth-child(11) .section-head,\n.form-layout .form-section:nth-child(11) .section-body { animation-delay: 0.64s; }\n.form-layout .form-section:nth-child(12) .section-head,\n.form-layout .form-section:nth-child(12) .section-body { animation-delay: 0.70s; }\n\n\n/* ==========================================================================\n Form Tabs \u2014 Sliding Active Indicator\n ========================================================================== */\n\n.form-tabs .nav-link {\n position: relative;\n border-bottom: none !important;\n transition: color 0.3s ease;\n}\n\n.form-tabs .nav-link::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n right: 0;\n left: 0;\n height: 2px;\n background: var(--text-color);\n transform: scaleX(0);\n transform-origin: center;\n transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.form-tabs .nav-link.active::after {\n transform: scaleX(1);\n}\n\n\n/* ==========================================================================\n Dropdown Animations\n ========================================================================== */\n\n.dropdown-menu {\n display: block !important;\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n}\n\n.dropdown-menu.show {\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n animation: jey-dropdown-in 0.2s ease;\n}\n\n/* Applied by JS during Bootstrap hide so Popper's transform reset\n doesn't move the menu mid-fade. See \"Dropdown fade-out\" in jey_theme.js. */\n.dropdown-menu.jey-dropdown-hiding {\n visibility: visible !important;\n pointer-events: none;\n animation: jey-dropdown-out 0.2s ease forwards;\n}\n\n@keyframes jey-dropdown-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes jey-dropdown-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n/* ==========================================================================\n Sidebar \u2014 Smooth Collapse / Expand\n Frappe toggles .body-sidebar-placeholder between display:none and display:flex,\n so the container's fit-content width snaps on expand (the inner sidebar goes\n position:absolute, placeholder appears at 220px instantly). The collapse path\n keeps the sidebar in flow, so its width transition is already smooth.\n Override the container with an explicit width transition to make expand\n symmetric with collapse.\n ========================================================================== */\n\n@media (min-width: 576px) {\n .body-sidebar-container {\n width: 50px;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .body-sidebar-container.expanded {\n width: var(--sidebar-width);\n }\n}\n\n/* ==========================================================================\n Sidebar \u2014 No Alignment Shift Between States\n Regular items land at 15px from the sidebar's left edge (sidebar padding 8\n + icon padding 7). Two state-dependent paddings break that alignment in\n expanded mode:\n 1. Frappe's sidebar_header.js sets inline padding-left/right: 8px on\n .sidebar-header when expanded, 0 when collapsed \u2014 pushes the logo to\n 23px in expanded. Override inline style with !important.\n 2. SCSS mixin body-sidebar-expanded gives .sidebar-user-button\n padding: var(--padding-sm) only when .expanded \u2014 pushes the avatar\n to 23px and makes the button taller, which shifts the Jey buttons\n above it vertically. Zero out the padding.\n Zeroing both keeps every icon/avatar at 15px and button heights constant\n across expand/collapse, so nothing jumps on toggle.\n ========================================================================== */\n\n.body-sidebar .sidebar-header {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.body-sidebar-container.expanded .sidebar-user-button {\n padding: 0 !important;\n}\n\n/* ==========================================================================\n Sidebar \u2014 Hover Effects\n ========================================================================== */\n\n.body-sidebar .standard-sidebar-item .item-anchor {\n transition: padding-right 0.4s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.4s ease;\n}\n\n.body-sidebar .standard-sidebar-item .item-anchor:hover {\n padding-right: calc(var(--padding-xs, 8px) + 4px);\n}\n\n.body-sidebar .standard-sidebar-item .sidebar-item-icon {\n transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.body-sidebar .standard-sidebar-item .item-anchor:hover .sidebar-item-icon {\n transform: scale(1.15);\n}\n\n/* Active item \u2014 subtle left accent bar */\n.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor {\n position: relative;\n}\n\n.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor::before {\n content: \"\";\n position: absolute;\n right: 0;\n top: 20%;\n bottom: 20%;\n width: 3px;\n border-radius: 3px 0 0 3px;\n background: var(--primary, #2490ef);\n opacity: 0.8;\n}\n\n\n/* ==========================================================================\n List View \u2014 Row Entrance Animation\n ========================================================================== */\n\n@keyframes jey-list-row-in {\n from {\n opacity: 0;\n transform: translateX(16px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n.frappe-list .result .list-row-container:not(:first-child) {\n animation: jey-list-row-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.frappe-list .result .list-row-container:nth-child(2) { animation-delay: 0.03s; }\n.frappe-list .result .list-row-container:nth-child(3) { animation-delay: 0.05s; }\n.frappe-list .result .list-row-container:nth-child(4) { animation-delay: 0.07s; }\n.frappe-list .result .list-row-container:nth-child(5) { animation-delay: 0.09s; }\n.frappe-list .result .list-row-container:nth-child(6) { animation-delay: 0.11s; }\n.frappe-list .result .list-row-container:nth-child(7) { animation-delay: 0.13s; }\n.frappe-list .result .list-row-container:nth-child(8) { animation-delay: 0.15s; }\n.frappe-list .result .list-row-container:nth-child(9) { animation-delay: 0.17s; }\n.frappe-list .result .list-row-container:nth-child(10) { animation-delay: 0.19s; }\n.frappe-list .result .list-row-container:nth-child(11) { animation-delay: 0.21s; }\n.frappe-list .result .list-row-container:nth-child(12) { animation-delay: 0.23s; }\n.frappe-list .result .list-row-container:nth-child(13) { animation-delay: 0.25s; }\n.frappe-list .result .list-row-container:nth-child(14) { animation-delay: 0.27s; }\n.frappe-list .result .list-row-container:nth-child(15) { animation-delay: 0.29s; }\n.frappe-list .result .list-row-container:nth-child(16) { animation-delay: 0.31s; }\n.frappe-list .result .list-row-container:nth-child(17) { animation-delay: 0.33s; }\n.frappe-list .result .list-row-container:nth-child(18) { animation-delay: 0.35s; }\n.frappe-list .result .list-row-container:nth-child(19) { animation-delay: 0.37s; }\n.frappe-list .result .list-row-container:nth-child(20) { animation-delay: 0.39s; }\n.frappe-list .result .list-row-container:nth-child(21) { animation-delay: 0.41s; }\n\n\n/* ==========================================================================\n Search Dialog \u2014 Fade In / Out\n ========================================================================== */\n\n.modal:has(.cool-awesomebar-modal-footer) {\n display: block !important;\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n visibility 0.5s;\n}\n\n.modal:has(.cool-awesomebar-modal-footer) .modal-dialog {\n transform: translateY(-30px);\n transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.modal.show:has(.cool-awesomebar-modal-footer) {\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n}\n\n.modal.show:has(.cool-awesomebar-modal-footer) .modal-dialog {\n transform: none;\n}\n\n\n/* ==========================================================================\n Report Summary \u2014 Card Cascade\n ========================================================================== */\n\n@keyframes jey-summary-in {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.report-summary .summary-item {\n animation: jey-summary-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.report-summary .summary-item:nth-child(1) { animation-delay: 0.05s; }\n.report-summary .summary-item:nth-child(2) { animation-delay: 0.10s; }\n.report-summary .summary-item:nth-child(3) { animation-delay: 0.15s; }\n.report-summary .summary-item:nth-child(4) { animation-delay: 0.20s; }\n.report-summary .summary-item:nth-child(5) { animation-delay: 0.25s; }\n.report-summary .summary-item:nth-child(6) { animation-delay: 0.30s; }\n\n\n/* ==========================================================================\n Form Section Collapse / Expand \u2014 Smooth\n ========================================================================== */\n\n.form-section .collapse-indicator {\n transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n display: inline-block;\n}\n\n.form-section .section-head.collapsed .collapse-indicator {\n transform: rotate(90deg);\n}\n\n/* Expanded section-body has no `overflow: hidden` \u2014 so Link-field autocomplete\n dropdowns (and any other overflow) are not clipped by the section boundary.\n `overflow: hidden` is applied via JS only during the collapse/expand\n transition (see jey_theme.js), then removed once the animation finishes. */\n.form-section .section-head.collapsible + .section-body {\n display: flex !important;\n flex-wrap: wrap;\n transition: max-height 0.5s ease-in-out,\n padding 0.5s ease-in-out;\n}\n\n.form-section .section-head.collapsed + .section-body {\n max-height: 0 !important;\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n overflow: hidden;\n transition: max-height 0.5s ease-in-out,\n padding 0.5s ease-in-out;\n}\n\n\n\n/* ==========================================================================\n Link Field \u2014 Awesomplete Dropdown Fade\n ========================================================================== */\n\n.awesomplete > [role=\"listbox\"] {\n animation: jey-awesomplete-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n/* Applied by JS on awesomplete-close so the listbox fades instead of\n vanishing when [hidden] is set. See \"Awesomplete fade-out\" in jey_theme.js. */\n.awesomplete > [role=\"listbox\"].jey-awesomplete-hiding {\n display: block !important;\n pointer-events: none;\n animation: jey-awesomplete-out 0.2s ease forwards;\n}\n\n@keyframes jey-awesomplete-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes jey-awesomplete-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n/* Lift the open autocomplete listbox above its siblings so the dropdown can\n spill past the section boundary without being painted over by later\n sections (which naturally paint above earlier ones in DOM order).\n Lift only the listbox itself, NOT the surrounding .form-section, because a\n z-index on the section creates a stacking context that traps Frappe's\n child-table row form (.form-in-grid, z-index 1021) below the freeze\n backdrop (#freeze.modal-backdrop, z-index 1020), leaving the screen\n unclickable when editing a row. */\n.awesomplete > ul[role=\"listbox\"]:not([hidden]) {\n z-index: 10;\n}\n\n\n/* ==========================================================================\n Input Focus \u2014 Inset Press\n ========================================================================== */\n\ninput.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\ntextarea.form-control,\n.frappe-control input:not([type=\"checkbox\"]):not([type=\"radio\"]),\n.frappe-control textarea {\n transition:\n background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\ninput.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\ntextarea.form-control:focus,\n.frappe-control input:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n.frappe-control textarea:focus {\n border-color: var(--gray-500, #a8b0b8) !important;\n outline: none;\n}\n\n\n/* ==========================================================================\n Buttons \u2014 Shine on Hover, Press on Click\n ========================================================================== */\n\n.btn {\n position: relative;\n overflow: hidden;\n transition: box-shadow 0.4s ease, background-color 0.3s ease, color 0.3s ease;\n}\n\n.btn::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: linear-gradient(-105deg,\n transparent 35%,\n rgba(255, 255, 255, 0.25) 45%,\n rgba(255, 255, 255, 0.25) 55%,\n transparent 65%);\n transform: translateX(110%);\n transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);\n pointer-events: none;\n}\n\n.btn:hover::after {\n transform: translateX(-110%);\n}\n\n.btn:active {\n box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.2) !important;\n}\n\n\n/* Hide dropdown items now surfaced as sidebar buttons */\n.dropdown-menu-item[onclick*=\"toggle_full_width\"],\n.dropdown-menu-item[onclick*=\"clear_cache\"],\n.dropdown-menu-item[onclick*=\"ThemeSwitcher\"],\n.dropdown-menu-item[data-name=\"website\"],\n.dropdown-menu-item.jey-hidden-item {\n display: none !important;\n}\n\n\n/* ==========================================================================\n Desktop Icons \u2014 Shared base (all themes)\n ========================================================================== */\n\n.desktop-icon:hover {\n transform: translateY(-2px) !important;\n}\n\n.desktop-icon:active {\n transform: scale(0.97) !important;\n}\n\n.icon-container.jey-chrome-done {\n width: 72px !important;\n height: 72px !important;\n padding: 0 !important;\n border-radius: 50% !important;\n background: none !important;\n overflow: visible !important;\n position: relative !important;\n}\n\n.icon-container.jey-chrome-done:hover {\n transform: none !important;\n}\n\n.icon-container.folder-icon.jey-chrome-done {\n box-shadow: none !important;\n}\n\n/* ==========================================================================\n Desktop Icon captions \u2014 full label, wrapped, never truncated, never colliding\n ==========================================================================\n Frappe ships the caption as a fixed-height, nowrap + ellipsis line inside a\n 127px cell, which breaks on long (az/ru) module names two different ways:\n \u2022 main desk \u2014 .icon-caption is shrink-to-fit, so it grows PAST the cell and\n the ellipsis never triggers; the label spills into the neighbouring cell.\n \u2022 folder modal \u2014 the label wraps but is cut with \"\u2026\".\n Fix: widen the cell, let the caption take the full cell width and wrap over as\n many lines as it needs, and let the cell grow taller instead of overflowing.\n `:has(> .icon-caption)` keeps the caption-less mini icons inside a folder\n thumbnail (rendered with in_folder=true) at their stock size. */\n\n.desktop-icon:has(> .icon-caption) {\n display: flex !important;\n flex-direction: column !important;\n align-items: center !important;\n text-align: center !important;\n min-width: 0 !important;\n height: auto !important;\n align-self: start !important;\n padding: 13px 6px 12px !important;\n}\n\n/* Wider cell = fewer wraps, but only where there is room for it: below ~1060px the\n 6-column desk grid is already at the edge of the viewport, so keep frappe's width\n there and let the caption take an extra line instead. Mobile (< 571px) keeps its\n own smaller cell entirely. */\n@media (min-width: 571px) {\n .desktop-icon:has(> .icon-caption) {\n min-height: 126px !important;\n }\n}\n\n@media (min-width: 1060px) {\n .desktop-icon:has(> .icon-caption) {\n width: 152px !important;\n }\n}\n\n.desktop-icon:has(> .icon-caption) > .icon-caption {\n width: 100% !important;\n max-width: 100% !important;\n height: auto !important;\n min-height: 35px !important;\n justify-content: flex-start !important;\n overflow: visible !important;\n text-wrap: wrap !important;\n white-space: normal !important;\n}\n\n.desktop-icon:has(> .icon-caption) .icon-title {\n display: block !important;\n width: 100% !important;\n max-width: 100% !important;\n -webkit-line-clamp: none !important;\n line-clamp: none !important;\n overflow: visible !important;\n text-overflow: clip !important;\n white-space: normal !important;\n text-wrap: balance;\n overflow-wrap: break-word !important;\n word-break: normal !important;\n -webkit-hyphens: auto;\n hyphens: auto;\n line-height: 1.25 !important;\n}\n\n/* The \"remove icon\" x is absolutely positioned for the stock 127px cell */\n.desktop-icon:has(> .icon-caption) > .hide-button {\n right: auto !important;\n left: -5px !important;\n}\n\n/* ==========================================================================\n Desktop Modal (module icons picker) \u2014 grid room + clean heading\n ========================================================================== */\n\n/* Give the 4-col icon grid room between cells so captions don't collide */\n#desktop-modal .icons-container .icons {\n gap: 12px 8px !important;\n padding: 12px 0 !important;\n}\n\n/* Card sizes to its icon grid (Bootstrap caps the dialog at a fixed width, so the\n last column used to hang outside the card) and grows with its taller rows */\n#desktop-modal {\n width: -moz-fit-content !important;\n width: fit-content !important;\n max-width: calc(100vw - 40px) !important;\n}\n\n#desktop-modal .modal-content {\n width: 100% !important;\n}\n\n#desktop-modal .modal-body.desktop-modal-body {\n width: auto !important;\n height: auto !important;\n min-width: var(--desktop-modal-width) !important;\n min-height: var(--desktop-modal-height) !important;\n}\n\n/* Strip the themed gradient/border off the desktop-modal header \u2014 title only, no bar */\n#desktop-modal .modal-header.desktop-modal-heading {\n background: transparent !important;\n border-bottom: 0 !important;\n box-shadow: none !important;\n}\n\n#desktop-modal .modal-header.desktop-modal-heading .modal-title,\n#desktop-modal .modal-header.desktop-modal-heading .title-input-label span {\n background: transparent !important;\n box-shadow: none !important;\n text-shadow: none !important;\n}\n\n/* Everything inside the desktop-modal renders text crisply \u2014 no inherited blur */\n#desktop-modal .icon-title,\n#desktop-modal .icon-caption {\n text-shadow: none !important;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* Grow to content: no inner scrollbar when icons fit */\n#desktop-modal .modal-body.desktop-modal-body {\n overflow: visible !important;\n max-height: none !important;\n}\n\n#desktop-modal .icons-container {\n overflow: visible !important;\n max-height: none !important;\n}\n\n/* ==========================================================================\n Icon Animations \u2014 Shared (all themes)\n ========================================================================== */\n\n/* Framework \u2014 gentle float */\n.ico-framework { animation: ico-float 5s ease-in-out infinite; transform-origin: center; }\n@keyframes ico-float {\n 0%,100% { transform: translateY(0) rotate(0deg); opacity: 0.85; }\n 30% { transform: translateY(-2px) rotate(-0.8deg); opacity: 1; }\n 70% { transform: translateY(0.5px) rotate(0.4deg); opacity: 0.9; }\n}\n\n.ico-org { animation: ico-org 6s ease-in-out infinite; transform-origin: center bottom; }\n@keyframes ico-org {\n 0%,100% { transform: scaleY(1) scaleX(1); }\n 25% { transform: scaleY(1.03) scaleX(0.99); }\n 50% { transform: scaleY(1.05) scaleX(0.98); }\n 75% { transform: scaleY(1.02) scaleX(1); }\n}\n\n.ico-acc .acc-btn { animation: ico-press 3s ease-in-out infinite; }\n@keyframes ico-press { 0%,25%,100% { opacity: 0.5; stroke-width: 2.5; } 12% { opacity: 1; stroke-width: 3.2; } }\n\n.ico-assets { animation: ico-safe 6s ease-in-out infinite; transform-origin: center; }\n.ico-assets .lock-dot { animation: ico-blink 5s ease-in-out infinite; }\n@keyframes ico-safe { 0%,100% { transform: translateY(0); } 40% { transform: translateY(-0.6px); } 60% { transform: translateY(0.3px); } }\n@keyframes ico-blink { 0%,35%,65%,100% { opacity: 1; } 50% { opacity: 0.15; } }\n\n.ico-buying { animation: ico-cart 6s ease-in-out infinite; transform-origin: 12px 21px; }\n@keyframes ico-cart { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-1.5px) rotate(-0.8deg); } 50% { transform: translateX(0.5px) rotate(0.3deg); } 80% { transform: translateX(-0.8px) rotate(-0.4deg); } }\n\n.ico-mfg .gear1 { animation: ico-spin 9s linear infinite; transform-origin: 9px 12px; }\n.ico-mfg .gear2 { animation: ico-spin-r 7s linear infinite; transform-origin: 17px 8px; }\n@keyframes ico-spin { to { transform: rotate(-360deg); } }\n@keyframes ico-spin-r { to { transform: rotate(360deg); } }\n\n.ico-proj .col1 { animation: ico-g1 5s ease-in-out infinite; transform-origin: 5.5px 21px; }\n.ico-proj .col2 { animation: ico-g2 5s ease-in-out infinite 0.5s; transform-origin: 12.5px 15px; }\n.ico-proj .col3 { animation: ico-g3 5s ease-in-out infinite 1s; transform-origin: 19.5px 18px; }\n@keyframes ico-g1 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(0.85); opacity: 1; } }\n@keyframes ico-g2 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(1.15); opacity: 1; } }\n@keyframes ico-g3 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(0.88); opacity: 1; } }\n\n.ico-quality { animation: ico-shield 6s ease-in-out infinite; transform-origin: 12px 14px; }\n@keyframes ico-shield { 0%,100% { transform: rotate(0deg) scale(1); } 15% { transform: rotate(-1.5deg) scale(1.03); } 35% { transform: rotate(0.5deg) scale(1.01); } 55% { transform: rotate(1.5deg) scale(1.03); } 75% { transform: rotate(-0.5deg) scale(1.01); } }\n\n.ico-selling { animation: ico-sell 4s ease-in-out infinite; transform-origin: center; }\n.ico-selling .arrow-head { animation: ico-up 4s ease-in-out infinite; }\n@keyframes ico-sell { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }\n@keyframes ico-up { 0%,100% { transform: translate(0,0); } 30% { transform: translate(-1px, -1.5px); } 60% { transform: translate(-2px, -2.5px); } }\n\n.ico-stock { animation: ico-bob 5s ease-in-out infinite; transform-origin: center; }\n@keyframes ico-bob { 0%,100% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(-2deg) translateY(-0.7px); } 50% { transform: rotate(1deg) translateY(0.3px); } 80% { transform: rotate(-1.5deg) translateY(-0.4px); } }\n\n.ico-sub .person-l { animation: ico-rl 6s ease-in-out infinite; transform-origin: 8px 12px; }\n.ico-sub .person-r { animation: ico-rr 6s ease-in-out infinite; transform-origin: 16px 12px; }\n@keyframes ico-rl { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-1px) rotate(-1deg); } 60% { transform: translateX(-1.5px) rotate(-0.5deg); } }\n@keyframes ico-rr { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(1px) rotate(1deg); } 60% { transform: translateX(1.5px) rotate(0.5deg); } }\n\n.ico-settings { animation: ico-gear-main 12s linear infinite; transform-origin: center; }\n@keyframes ico-gear-main { to { transform: rotate(-360deg); } }\n\n/* HR \u2014 plus sign pulsing */\n.ico-hr .plus-v { animation: ico-pv 4s ease-in-out infinite; transform-origin: center; }\n.ico-hr .plus-h { animation: ico-ph 4s ease-in-out infinite 0.3s; transform-origin: center; }\n@keyframes ico-pv { 0%,100% { opacity: 0.4; stroke-width: 1.8; } 50% { opacity: 1; stroke-width: 2.4; } }\n@keyframes ico-ph { 0%,100% { opacity: 0.4; stroke-width: 1.8; } 50% { opacity: 1; stroke-width: 2.4; } }\n\n/* ==========================================================================\n Theme Switcher Dialog\n ========================================================================== */\n\n.jey-theme-grid {\n display: flex;\n gap: 20px;\n padding: 20px;\n justify-content: center;\n}\n\n.jey-theme-card {\n cursor: pointer;\n text-align: center;\n padding: 16px;\n border-radius: 12px;\n border: 2px solid transparent;\n transition: border-color 0.2s, background 0.2s;\n min-width: 140px;\n}\n\n.jey-theme-card:hover {\n background: var(--subtle-fg, #f5f5f5);\n}\n\n.jey-theme-card.selected {\n border-color: var(--primary, #2490ef);\n background: var(--subtle-fg, #f5f5f5);\n}\n\n.jey-theme-preview {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n margin: 0 auto 12px;\n position: relative;\n overflow: hidden;\n}\n\n.jey-theme-preview--chrome {\n background: conic-gradient(from -140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg);\n box-shadow: 0 3px 8px rgba(0,0,0,0.15), inset 0 1px 1px rgba(255,255,255,0.5);\n}\n\n.jey-theme-preview--chrome .jey-theme-preview-icon {\n position: absolute;\n inset: 9px;\n border-radius: 50%;\n background: linear-gradient(-168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%);\n}\n\n.jey-theme-preview--silk {\n border-radius: 16px;\n background: rgba(255, 255, 255, 0.4);\n -webkit-backdrop-filter: blur(6px);\n backdrop-filter: blur(6px);\n border: 1px solid rgba(255, 255, 255, 0.5);\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n}\n\n.jey-theme-preview--silk .jey-theme-preview-icon {\n position: absolute;\n inset: 22px;\n border-radius: 6px;\n background: #4f46e5;\n opacity: 0.25;\n}\n\n.jey-theme-label {\n font-weight: 600;\n font-size: var(--text-base);\n margin-bottom: 2px;\n}\n\n.jey-theme-info {\n font-size: var(--text-sm);\n color: var(--text-muted);\n}\n\n/* ==========================================================================\n Module Widget Cards \u2014 Entrance & Hover Animations\n ========================================================================== */\n\n/* --- Animation variant #2 (final): Slide-up entrance + Accent Bar hover --- */\n\n/* Entrance: fade-in slide-up (from variant #1) */\n.ce-block .links-widget-box,\n.ce-block .number-widget-box {\n opacity: 0;\n transform: translateY(24px) scale(0.97);\n animation: jey-card-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;\n border-radius: var(--border-radius-lg, 12px);\n transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 0.35s ease;\n position: relative;\n}\n\n/* Number card value \u2014 delayed fade-in after card entrance */\n@keyframes jey-number-in {\n from { opacity: 0; transform: translateY(6px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n.number-widget-box .widget-content .number {\n animation: jey-number-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both;\n}\n\n/* Allow dropdown menus (card actions) to escape the widget box.\n Without this, .widget-control .dropdown-menu is clipped/hidden behind\n the widget because Popper renders it as a sibling inside the box. */\n.ce-block .links-widget-box .widget-control .dropdown-menu,\n.ce-block .number-widget-box .widget-control .dropdown-menu {\n z-index: 1050;\n}\n\n/* Stagger delays */\n.ce-block:nth-child(1) .links-widget-box,\n.ce-block:nth-child(1) .number-widget-box { animation-delay: 0.00s; }\n.ce-block:nth-child(2) .links-widget-box,\n.ce-block:nth-child(2) .number-widget-box { animation-delay: 0.06s; }\n.ce-block:nth-child(3) .links-widget-box,\n.ce-block:nth-child(3) .number-widget-box { animation-delay: 0.12s; }\n.ce-block:nth-child(4) .links-widget-box,\n.ce-block:nth-child(4) .number-widget-box { animation-delay: 0.18s; }\n.ce-block:nth-child(5) .links-widget-box,\n.ce-block:nth-child(5) .number-widget-box { animation-delay: 0.24s; }\n.ce-block:nth-child(6) .links-widget-box,\n.ce-block:nth-child(6) .number-widget-box { animation-delay: 0.30s; }\n.ce-block:nth-child(7) .links-widget-box,\n.ce-block:nth-child(7) .number-widget-box { animation-delay: 0.36s; }\n.ce-block:nth-child(8) .links-widget-box,\n.ce-block:nth-child(8) .number-widget-box { animation-delay: 0.42s; }\n.ce-block:nth-child(9) .links-widget-box,\n.ce-block:nth-child(9) .number-widget-box { animation-delay: 0.48s; }\n.ce-block:nth-child(10) .links-widget-box,\n.ce-block:nth-child(10) .number-widget-box { animation-delay: 0.54s; }\n.ce-block:nth-child(11) .links-widget-box,\n.ce-block:nth-child(11) .number-widget-box { animation-delay: 0.60s; }\n.ce-block:nth-child(12) .links-widget-box,\n.ce-block:nth-child(12) .number-widget-box { animation-delay: 0.66s; }\n\n@keyframes jey-card-in {\n from {\n opacity: 0;\n transform: translateY(24px) scale(0.97);\n }\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n/* Hover: soft bottom accent line + lift */\n.ce-block .links-widget-box::after,\n.ce-block .number-widget-box::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n right: 10%;\n left: 10%;\n height: 2.5px;\n border-radius: 2px 2px 0 0;\n background: var(--primary, #2490ef);\n transform: scaleX(0);\n transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);\n transform-origin: center;\n}\n\n.ce-block .links-widget-box:hover::after,\n.ce-block .number-widget-box:hover::after {\n transform: scaleX(1);\n}\n\n.ce-block .links-widget-box:hover,\n.ce-block .number-widget-box:hover {\n transform: translateY(-3px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08),\n 0 2px 6px rgba(0, 0, 0, 0.04);\n}\n\n/* Lift widget above its siblings while hovered or while its card-actions\n dropdown is open, so the dropdown menu (which lives inside the widget's\n own stacking context due to transform) is not covered by neighbours. */\n.ce-block .links-widget-box:hover,\n.ce-block .number-widget-box:hover,\n.ce-block .links-widget-box:focus-within,\n.ce-block .number-widget-box:focus-within {\n z-index: 100;\n}\n\n.ce-block .links-widget-box:has(.dropdown-menu.show),\n.ce-block .number-widget-box:has(.dropdown-menu.show) {\n z-index: 200;\n}\n\n\n/* Link items: colored left accent bar slides in */\n.links-widget-box .link-item {\n position: relative;\n transition: background 0.25s ease, transform 0.25s ease;\n border-radius: var(--border-radius, 8px);\n overflow: hidden;\n}\n\n.links-widget-box .link-item:hover {\n transform: translateX(-6px);\n background: var(--subtle-fg, rgba(0, 0, 0, 0.02));\n}\n\n.links-widget-box .link-item .es-icon {\n display: none !important;\n}\n\n\n/* ==========================================================================\n Select Field \u2014 Custom chevron icon\n ========================================================================== */\n\n.select-icon svg {\n display: none !important;\n}\n\n.select-icon {\n top: 0 !important;\n bottom: 0 !important;\n display: flex !important;\n align-items: center !important;\n}\n\n.select-icon::after {\n content: \"\" !important;\n display: block;\n width: 12px;\n height: 12px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n/* ==========================================================================\n Empty State \u2014 Custom folder icon\n ========================================================================== */\n\n.msg-box .icon-xl {\n display: none !important;\n}\n\n.msg-box .mb-4 {\n display: flex;\n justify-content: center;\n}\n\n.msg-box .mb-4::after {\n content: \"\" !important;\n display: block;\n width: 48px;\n height: 48px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b0b8c0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 16 12 14 15 10 15 8 12 2 12'/%3E%3Cpath d='M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E\");\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n/* ==========================================================================\n Hide \"Getting Started\" onboarding panels\n ========================================================================== */\n\n.user-onboarding {\n display: none !important;\n}\n\n/* ==========================================================================\n Comment-count icon override\n jey_theme.js swaps the sprite href from #es-line-chat-alt (filled)\n to a lucide stroke-based icon. The SVG element still carries .es-icon\n (fill: currentColor; stroke-width: 0), which would render the new\n icon as a solid black shape \u2014 force stroke rendering here.\n ========================================================================== */\n.comment-count svg {\n fill: none !important;\n stroke: currentColor !important;\n stroke-width: 1.5 !important;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n/* ==========================================================================\n Activity panel & comment input \u2014 transparent background\n Frappe core paints .activity-title / .timeline-actions with var(--bg-color),\n .frappe-control .ql-editor with var(--control-bg), and the form footer's\n .comment-box wraps the input area; strip them all so the activity panel\n and comment composer blend with the form background.\n ========================================================================== */\n.new-timeline .activity-title,\n.new-timeline .timeline-actions,\n.comment-box,\n.comment-input-wrapper,\n.comment-input-wrapper .ql-container,\n.comment-input-wrapper .frappe-control .ql-editor {\n background: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n}\n\n/* List view \u2014 period (Between) filter sized to fit \"DD/MM/YYYY to DD/MM/YYYY\". */\n.standard-filter-section .frappe-control.jey-period-filter {\n flex: 0 0 auto;\n min-width: 200px;\n}\n.standard-filter-section .frappe-control.jey-period-filter input {\n min-width: 200px;\n}\n\n/* Grid \"Configure Columns\" dialog \u2014 let rows grow when label wraps.\n Frappe hardcodes height:32px inline on each .fields_order row in\n grid_row.js, which clips long translated labels (eg. Azerbaijani\n \"\u018Fsas Tarif (Anbar \u00D6l\u00E7\u00FC Vahidin\u0259 g\u00F6r\u0259)\") so the wrapped portion\n overflows into the next row and into the help text below. Switch\n to flex centering with min-height so rows grow with content. */\n.control-input.fields_order {\n height: auto !important;\n min-height: 32px;\n display: flex;\n align-items: center;\n}\n.control-input.fields_order > .row {\n width: 100%;\n align-items: center;\n margin: 0;\n}\n.control-input.fields_order > .row > [class*=\"col-\"] {\n padding-top: 0 !important;\n margin-top: 0 !important;\n}\n\n/* ===== theme_chrome.css ===== */\n/* ==========================================================================\n THEME: Chrome [data-jey-theme=\"chrome\"]\n Metallic chrome button with conic-gradient rings and rotating glow.\n ========================================================================== */\n\n@keyframes jey-chrome-rotate-glow {\n from { transform: rotate(0deg); }\n to { transform: rotate(-360deg); }\n}\n\n@keyframes jey-chrome-face-light {\n 0% { background: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n 25% { background: radial-gradient(circle at 75% 25%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n 50% { background: radial-gradient(circle at 70% 75%, rgba(255,255,255,0.35) 0%, transparent 55%); }\n 75% { background: radial-gradient(circle at 25% 70%, rgba(255,255,255,0.35) 0%, transparent 55%); }\n 100% { background: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n}\n\n@keyframes jey-chrome-refl-drift {\n 0%, 100% { top: 12%; opacity: 0.7; }\n 50% { top: 18%; opacity: 0.5; }\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome {\n width: 72px; height: 72px; border-radius: 50%; position: relative;\n background: radial-gradient(ellipse at 35% 20%, rgba(255,255,255,0.7) 0%, transparent 55%), linear-gradient(-180deg, #e0e0e0 0%, #b8b8b8 100%);\n box-shadow: 0 4px 10px rgba(0,0,0,0.18), 0 1px 3px rgba(0,0,0,0.1), inset 0 1px 1px rgba(255,255,255,0.7);\n transition: box-shadow 0.3s ease;\n}\n\n[data-jey-theme=\"chrome\"] .desktop-icon:hover .jey-chrome {\n box-shadow: 0 6px 16px rgba(0,0,0,0.22), 0 1px 3px rgba(0,0,0,0.12), 0 0 14px rgba(255,255,255,0.2), inset 0 1px 1px rgba(255,255,255,0.7);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-ring {\n position: absolute; inset: 2px; border-radius: 50%;\n background: conic-gradient(from -140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg);\n box-shadow: inset 0 1px 2px rgba(0,0,0,0.2); overflow: hidden;\n}\n\n[data-jey-theme=\"chrome\"] .jey-ring-glow {\n position: absolute; inset: -10px; border-radius: 50%;\n background: conic-gradient(from 0deg, transparent 0deg, transparent 140deg, rgba(255,255,255,0.55) 165deg, rgba(255,255,255,0.8) 180deg, rgba(255,255,255,0.55) 195deg, transparent 220deg, transparent 360deg);\n animation: jey-chrome-rotate-glow 8s linear infinite; pointer-events: none;\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-gap {\n position: absolute; inset: 5px; border-radius: 50%;\n background: linear-gradient(-180deg, #888 0%, #aaa 50%, #999 100%);\n box-shadow: inset 0 1px 3px rgba(0,0,0,0.35), inset 0 -1px 1px rgba(255,255,255,0.2);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-ring-inner {\n position: absolute; inset: 6px; border-radius: 50%;\n background: conic-gradient(from -200deg, #b0b0b0 0deg, #eee 30deg, #999 70deg, #ddd 110deg, #aaa 160deg, #f0f0f0 200deg, #909090 250deg, #ccc 300deg, #b0b0b0 360deg);\n box-shadow: inset 0 1px 1px rgba(0,0,0,0.15);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-face {\n position: absolute; inset: 9px; border-radius: 50%; overflow: hidden;\n background: linear-gradient(-168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%);\n box-shadow: inset 0 3px 7px rgba(255,255,255,0.7), inset 0 -3px 6px rgba(0,0,0,0.06);\n display: flex; align-items: center; justify-content: center;\n}\n\n[data-jey-theme=\"chrome\"] .jey-face-glow {\n position: absolute; inset: 0; border-radius: 50%;\n animation: jey-chrome-face-light 8s ease-in-out infinite;\n pointer-events: none; z-index: 1;\n}\n\n[data-jey-theme=\"chrome\"] .jey-face-reflection {\n position: absolute; top: 15%; right: 10%; width: 80%; height: 30%;\n background: linear-gradient(-180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.15) 60%, transparent 100%);\n border-radius: 50%; pointer-events: none; z-index: 1;\n animation: jey-chrome-refl-drift 10s ease-in-out infinite;\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-face .jey-icon {\n width: 24px !important; height: 24px !important;\n stroke: #505050 !important; fill: none !important;\n stroke-width: 1.8 !important; stroke-linecap: round !important; stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.5)) !important;\n position: relative; z-index: 2;\n}\n\n\n/* ==========================================================================\n FULL APP CHROME THEME\n Real metallic chrome with 45\u00B0 multi-stop reflective gradients,\n brushed metal textures, beveled edges, and conic-gradient accents.\n ========================================================================== */\n\n/* --- Shine sweep animation for interactive elements --- */\n@keyframes jey-chrome-shine {\n 0% { transform: translateX(100%) skewX(15deg); }\n 100% { transform: translateX(-200%) skewX(15deg); }\n}\n\n/* ==========================================================================\n CSS Variable Overrides\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] {\n /* --- Surfaces --- */\n --bg-color: #d8d8d8;\n --fg-color: #e8e8e8;\n --card-bg: #e0e0e0;\n --subtle-accent: #d4d4d4;\n --subtle-fg: #d0d0d0;\n --fg-hover-color: #ccc;\n --highlight-color: #d4d4d4;\n --navbar-bg: #d0d0d0;\n --modal-bg: #ddd;\n --toast-bg: #ddd;\n --popover-bg: #e0e0e0;\n --control-bg: #d5d5d5;\n --control-bg-on-gray: #ccc;\n --awesomebar-focus-bg: #e8e8e8;\n --disabled-control-bg: #d0d0d0;\n --skeleton-bg: #c8c8c8;\n --surface-menu-bar: #d4d4d4;\n --surface-white: #e0e0e0;\n --surface-gray-1: #d8d8d8;\n --surface-gray-2: #d0d0d0;\n --surface-gray-3: #c8c8c8;\n --surface-gray-4: #bbb;\n --surface-modal: #ddd;\n --placeholder-color: #ccc;\n\n /* --- Sidebar --- */\n --sidebar-hover-color: #c8c8c8;\n --sidebar-active-color: #d8d8d8;\n --sidebar-border-color: #aaa;\n --divider-color: #b0b0b0;\n\n /* --- Text --- */\n --heading-color: #333;\n --text-color: #404040;\n --text-neutral: #333;\n --text-muted: #666;\n --text-light: #888;\n --text-dark: #f0f0f0;\n --disabled-text-color: #888;\n --ink-gray-7: #555;\n --ink-gray-8: #404040;\n --ink-gray-9: #333;\n\n /* --- Borders --- */\n --border-color: #aaa;\n --dark-border-color: #999;\n --table-border-color: #aaa;\n --btn-group-border-color: #999;\n --outline-gray-1: #b0b0b0;\n --outline-gray-2: #999;\n --outline-gray-modals: #aaa;\n\n /* --- Primary / Buttons --- */\n --primary: #555;\n --brand-color: #555;\n --btn-primary: #777;\n --btn-default-bg: #ccc;\n --btn-default-hover-bg: #bbb;\n --btn-ghost-hover-bg: #c0c0c0;\n --border-primary: #777;\n\n /* --- Shadows (beveled metallic) --- */\n --shadow-xs: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.5);\n --shadow-sm: 1px 1px 3px rgba(0,0,0,0.18), -1px -1px 2px rgba(255,255,255,0.45);\n --shadow-base: 2px 2px 4px rgba(0,0,0,0.15), -1px -1px 2px rgba(255,255,255,0.4);\n --shadow-md: 2px 2px 6px rgba(0,0,0,0.18), -1px -1px 3px rgba(255,255,255,0.35);\n --shadow-lg: 3px 3px 10px rgba(0,0,0,0.15), -2px -2px 5px rgba(255,255,255,0.3);\n --shadow-xl: 4px 4px 16px rgba(0,0,0,0.18), -2px -2px 6px rgba(255,255,255,0.25);\n --shadow-2xl: 6px 6px 24px rgba(0,0,0,0.2), -3px -3px 8px rgba(255,255,255,0.2);\n --shadow-inset: inset 0px -1px 0px #999;\n --btn-shadow: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.4);\n --card-shadow: 2px 2px 6px rgba(0,0,0,0.12), -1px -1px 3px rgba(255,255,255,0.4);\n --modal-shadow: 6px 6px 30px rgba(0,0,0,0.3), -3px -3px 10px rgba(255,255,255,0.15);\n --awesomebar-shadow: 3px 3px 12px rgba(0,0,0,0.15), -2px -2px 6px rgba(255,255,255,0.3);\n\n /* --- Focus rings --- */\n --focus-default: 0 0 0 2px rgba(150,150,150,0.5);\n\n /* --- Scrollbar --- */\n --scrollbar-thumb-color: #999;\n --scrollbar-track-color: #c8c8c8;\n\n /* --- Checkbox / Switch --- */\n --switch-bg: #aaa;\n --checkbox-color: #555;\n --checkbox-gradient: linear-gradient(180deg, #777 0%, #666 100%);\n\n /* --- Timeline --- */\n --timeline-badge-color: #555;\n --timeline-badge-bg: #ccc;\n\n /* --- Date picker --- */\n --date-active-bg: #777;\n --date-active-text: #f0f0f0;\n --date-range-bg: #ccc;\n\n /* --- Progress / Misc --- */\n --progress-bar-bg: #777;\n --code-block-bg: #444;\n --code-block-text: #ccc;\n}\n\n\n/* ==========================================================================\n Body \u2014 Brushed Metal Background\n 3 layered repeating-gradients at different lengths = realistic grain\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] body {\n background:\n radial-gradient(ellipse at 25% 15%, rgba(255,255,255,0.45) 0%, transparent 50%),\n radial-gradient(ellipse at 80% 80%, rgba(255,255,255,0.2) 0%, transparent 45%),\n radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.03) 0%, transparent 70%),\n linear-gradient(-168deg, #d8d8d8 0%, #c4c4c4 40%, #b8b8b8 70%, #c8c8c8 100%) !important;\n background-attachment: fixed !important;\n}\n\n[data-jey-theme=\"chrome\"] .page-container {\n background: transparent !important;\n}\n\n\n/* ==========================================================================\n Navbar \u2014 Reflective Chrome Bar\n 45\u00B0 multi-stop gradient simulating polished metal reflection\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .navbar {\n background:\n linear-gradient(-45deg, #aaa 2%, #ddd 8%, #bbb 18%, #e8e8e8 30%, #ccc 45%, #eee 55%, #bbb 68%, #ddd 80%, #aaa 95%) !important;\n border-bottom: 1px solid #888 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.08),\n 0 2px 4px rgba(0,0,0,0.15) !important;\n}\n\n[data-jey-theme=\"chrome\"] .navbar .navbar-nav .nav-link {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .navbar .navbar-nav .nav-link:hover {\n color: #222 !important;\n background: linear-gradient(-180deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.1) 100%) !important;\n border-radius: 6px;\n}\n\n\n/* ==========================================================================\n Awesomebar \u2014 Sunken Metal Slot\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .search-bar input {\n background: linear-gradient(-180deg, #c0c0c0 0%, #d0d0d0 100%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n inset 0 2px 4px rgba(0,0,0,0.15),\n inset 0 0 0 1px rgba(0,0,0,0.05),\n 0 1px 0 rgba(255,255,255,0.5) !important;\n color: #333 !important;\n border-radius: 6px !important;\n}\n\n[data-jey-theme=\"chrome\"] .search-bar input:focus {\n background: linear-gradient(-180deg, #d5d5d5 0%, #e0e0e0 100%) !important;\n border-color: #888 !important;\n box-shadow:\n inset 0 1px 3px rgba(0,0,0,0.1),\n 0 0 0 2px rgba(150,150,150,0.3),\n 0 1px 0 rgba(255,255,255,0.4) !important;\n}\n\n[data-jey-theme=\"chrome\"] .search-bar .search-icon {\n color: #777 !important;\n}\n\n\n/* ==========================================================================\n Sidebar \u2014 Brushed Metal Panel\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .body-sidebar-container {\n background: linear-gradient(-160deg, #b8b8b8 0%, #f0f0f0 12%, #c0c0c0 28%, #f4f4f4 42%, #b8b8b8 58%, #ededed 72%, #aaa 88%, #ddd 100%) !important;\n border-left: 1px solid #888 !important;\n box-shadow:\n inset 1px 0 0 rgba(255,255,255,0.6),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.1),\n -2px 0 8px rgba(0,0,0,0.12) !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-top,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-bottom,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-cards {\n background: transparent !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .standard-sidebar-item .item-anchor:hover {\n background: linear-gradient(-90deg, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor {\n background: linear-gradient(-45deg, #bbb 5%, #ddd 30%, #ccc 60%, #ddd 90%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.08),\n -1px 1px 2px rgba(0,0,0,0.1),\n 1px -1px 1px rgba(255,255,255,0.3) !important;\n border-radius: 8px;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .sidebar-item-icon {\n color: #666 !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.5));\n}\n\n\n/* ==========================================================================\n Context Menu \u2014 Themed icons\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .frappe-menu .menu-item-icon .jey-icon {\n width: 20px !important;\n height: 20px !important;\n stroke: #555 !important;\n fill: none !important;\n stroke-width: 1.8 !important;\n stroke-linecap: round !important;\n stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.4)) !important;\n}\n\n\n/* ==========================================================================\n Sidebar Header \u2014 Themed icon\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .sidebar-header .header-logo .jey-icon {\n width: 22px !important;\n height: 22px !important;\n stroke: #555 !important;\n fill: none !important;\n stroke-width: 1.8 !important;\n stroke-linecap: round !important;\n stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.4)) !important;\n}\n\n\n/* ==========================================================================\n Primary Buttons \u2014 Polished Chrome with Shine\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .btn-primary {\n background: linear-gradient(-45deg, #666 5%, #aaa 10%, #888 30%, #999 50%, #888 70%, #aaa 85%, #666 95%) !important;\n color: #f0f0f0 !important;\n border: 1px solid #555 !important;\n box-shadow:\n -2px 2px 4px rgba(0,0,0,0.2),\n 1px -1px 2px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.3),\n inset 0 -1px 0 rgba(0,0,0,0.15),\n inset -2px 2px 5px rgba(0,0,0,0),\n inset 1px -1px 2px rgba(255,255,255,0) !important;\n text-shadow: 0 -1px 0 rgba(0,0,0,0.25);\n position: relative;\n overflow: hidden;\n transition:\n box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary::before {\n content: \"\";\n position: absolute;\n top: 0; right: -50%; width: 30%; height: 100%;\n background: linear-gradient(-90deg, transparent, rgba(255,255,255,0.25), transparent);\n transform: skewX(15deg);\n transition: right 0.4s ease;\n pointer-events: none;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:hover::before {\n right: 120%;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:hover {\n background: linear-gradient(-45deg, #777 5%, #bbb 10%, #999 30%, #aaa 50%, #999 70%, #bbb 85%, #777 95%) !important;\n box-shadow:\n -2px 2px 6px rgba(0,0,0,0.25),\n 1px -1px 3px rgba(255,255,255,0.2),\n inset 0 1px 0 rgba(255,255,255,0.35),\n inset 0 -1px 0 rgba(0,0,0,0.15),\n inset -2px 2px 5px rgba(0,0,0,0),\n inset 1px -1px 2px rgba(255,255,255,0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:active {\n background: linear-gradient(-45deg, #555 5%, #888 10%, #777 30%, #888 50%, #777 70%, #888 85%, #555 95%) !important;\n box-shadow:\n -2px 2px 4px rgba(0,0,0,0),\n 1px -1px 2px rgba(255,255,255,0),\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset -3px 3px 7px rgba(0,0,0,0.35),\n inset 1px -1px 2px rgba(255,255,255,0.12) !important;\n transition: box-shadow 0.08s ease-out !important;\n}\n\n\n/* ==========================================================================\n Default/Secondary Buttons \u2014 Brushed Metal\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .btn-default,\n[data-jey-theme=\"chrome\"] .btn-secondary {\n background: linear-gradient(-45deg, #bbb 5%, #eee 10%, #ccc 30%, #e0e0e0 50%, #ccc 70%, #eee 85%, #bbb 95%) !important;\n border: 1px solid #999 !important;\n color: #444 !important;\n box-shadow:\n -1px 1px 3px rgba(0,0,0,0.12),\n 1px -1px 2px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n inset -2px 2px 4px rgba(0,0,0,0),\n inset 1px -1px 1px rgba(255,255,255,0) !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n transition:\n box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-default:hover,\n[data-jey-theme=\"chrome\"] .btn-secondary:hover {\n background: linear-gradient(-45deg, #c0c0c0 5%, #f2f2f2 10%, #d4d4d4 30%, #e8e8e8 50%, #d4d4d4 70%, #f2f2f2 85%, #c0c0c0 95%) !important;\n border-color: #888 !important;\n box-shadow:\n -2px 2px 4px rgba(0,0,0,0.15),\n 1px -1px 2px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n inset -2px 2px 4px rgba(0,0,0,0),\n inset 1px -1px 1px rgba(255,255,255,0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-default:active,\n[data-jey-theme=\"chrome\"] .btn-secondary:active {\n background: linear-gradient(-45deg, #aaa 5%, #d8d8d8 10%, #bbb 30%, #ccc 50%, #bbb 70%, #d8d8d8 85%, #aaa 95%) !important;\n box-shadow:\n -1px 1px 3px rgba(0,0,0,0),\n 1px -1px 2px rgba(255,255,255,0),\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset -3px 3px 6px rgba(0,0,0,0.3),\n inset 1px -1px 1px rgba(255,255,255,0.15) !important;\n transition: box-shadow 0.08s ease-out !important;\n}\n\n/* Danger */\n[data-jey-theme=\"chrome\"] .btn-danger {\n background: linear-gradient(-45deg, #b33 5%, #e88 10%, #c55 30%, #d77 50%, #c55 70%, #e88 85%, #b33 95%) !important;\n color: #fff !important;\n border: 1px solid #944 !important;\n box-shadow:\n -2px 2px 4px rgba(0,0,0,0.2),\n 1px -1px 2px rgba(255,255,255,0.1),\n inset 0 1px 0 rgba(255,255,255,0.25) !important;\n text-shadow: 0 -1px 0 rgba(0,0,0,0.2);\n}\n\n[data-jey-theme=\"chrome\"] .btn-danger:hover {\n background: linear-gradient(-45deg, #c44 5%, #f99 10%, #d66 30%, #e88 50%, #d66 70%, #f99 85%, #c44 95%) !important;\n}\n\n/* Ghost */\n[data-jey-theme=\"chrome\"] .btn-ghost:hover {\n background: linear-gradient(-180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n\n/* ==========================================================================\n Input Fields \u2014 Sunken Metal Inset\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\n[data-jey-theme=\"chrome\"] textarea.form-control {\n background: #d0d0d0 !important;\n border: 1px solid #999 !important;\n color: #333 !important;\n box-shadow:\n inset -1px 1px 2px rgba(0,0,0,0.10),\n inset 1px -1px 1px rgba(255,255,255,0.25),\n inset 0 1px 1px rgba(0,0,0,0.04) !important;\n transition:\n background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n[data-jey-theme=\"chrome\"] textarea.form-control:focus {\n background: #cbcbcb !important;\n border-color: #777 !important;\n box-shadow:\n inset -4px 4px 8px rgba(0,0,0,0.28),\n inset 1px -1px 1px rgba(255,255,255,0.15),\n inset 0 3px 5px rgba(0,0,0,0.18) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-control:disabled,\n[data-jey-theme=\"chrome\"] .form-control[disabled] {\n background: #d8d8d8 !important;\n color: #888 !important;\n box-shadow: inset -1px 1px 2px rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-control .control-label,\n[data-jey-theme=\"chrome\"] .frappe-control label {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] select.form-control,\n[data-jey-theme=\"chrome\"] select.input-with-feedback {\n background: #d0d0d0 !important;\n}\n\n\n/* ==========================================================================\n Forms / Cards \u2014 Raised Metal Panels\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .form-page {\n background:\n linear-gradient(-45deg, #ccc 3%, #e8e8e8 10%, #d5d5d5 25%, #eee 45%, #d8d8d8 60%, #e8e8e8 80%, #ccc 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n -3px 3px 8px rgba(0,0,0,0.12),\n 2px -2px 4px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.05) !important;\n border-radius: var(--border-radius-lg) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-section .section-head {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n border-bottom: 1px solid #b0b0b0 !important;\n position: relative;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-card {\n background: linear-gradient(-45deg, #c8c8c8 3%, #e5e5e5 12%, #d4d4d4 30%, #eaeaea 50%, #d4d4d4 70%, #e5e5e5 88%, #c8c8c8 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n -2px 2px 6px rgba(0,0,0,0.1),\n 1px -1px 3px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n/* Form sidebar */\n[data-jey-theme=\"chrome\"] .form-sidebar {\n border-right: 1px solid #aaa !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-sidebar .sidebar-section {\n border-bottom: 1px solid #b0b0b0 !important;\n}\n\n\n/* ==========================================================================\n Modals / Dialogs \u2014 Chrome Frame with Conic-Gradient Border\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .modal-content {\n background: linear-gradient(-45deg, #ccc 3%, #e8e8e8 12%, #d5d5d5 30%, #eee 50%, #d5d5d5 70%, #e8e8e8 88%, #ccc 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n -6px 6px 24px rgba(0,0,0,0.25),\n 3px -3px 8px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 0 0 1px rgba(255,255,255,0.35) !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-header {\n background: linear-gradient(-45deg, #b0b0b0 5%, #ddd 12%, #c0c0c0 30%, #e5e5e5 50%, #c0c0c0 70%, #ddd 88%, #b0b0b0 95%) !important;\n border-bottom: 1px solid #999 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-header .modal-title {\n color: #333 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .modal-footer {\n background: linear-gradient(-45deg, #b8b8b8 5%, #d8d8d8 20%, #c0c0c0 50%, #d8d8d8 80%, #b8b8b8 95%) !important;\n border-top: 1px solid #999 !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-backdrop {\n background-color: rgba(40,40,40,0.55) !important;\n}\n\n\n/* ==========================================================================\n Page Head \u2014 Chrome Title Bar\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .page-head {\n background: linear-gradient(-45deg, #b8b8b8 3%, #e0e0e0 10%, #c8c8c8 25%, #eaeaea 45%, #ccc 60%, #e0e0e0 80%, #b8b8b8 97%) !important;\n border-bottom: 1px solid #999 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n 0 2px 4px rgba(0,0,0,0.08) !important;\n}\n\n[data-jey-theme=\"chrome\"] .page-head .title-text {\n color: #333 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n\n/* ==========================================================================\n List View \u2014 Metal Table\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .list-row-head {\n background: linear-gradient(-45deg, #aaa 3%, #d8d8d8 10%, #bbb 25%, #e0e0e0 45%, #bbb 60%, #d8d8d8 80%, #aaa 97%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .list-row-container .list-row {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n[data-jey-theme=\"chrome\"] .list-row-container:hover {\n background: linear-gradient(-90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .result .list-row-container .level-left .list-row--col .level-left .ellipsis {\n color: #404040 !important;\n}\n\n/* Sticky right column: blend with metallic body + visible separator.\n Uses a translucent bg so it reads continuous with body gradient while\n still covering horizontally-overflowing columns under it. */\n[data-jey-theme=\"chrome\"] .frappe-list .list-row .level-right,\n[data-jey-theme=\"chrome\"] .frappe-list .list-row-head .level-right {\n background: linear-gradient(-90deg,\n rgba(216,216,216,0.85) 0%,\n rgba(208,208,208,0.88) 100%) !important;\n backdrop-filter: blur(3px);\n -webkit-backdrop-filter: blur(3px);\n border-right: 1px solid #a0a0a0 !important;\n box-shadow: inset -1px 0 0 rgba(255,255,255,0.5) !important;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-list .list-row-container:hover .level-right {\n background: linear-gradient(-90deg,\n rgba(224,224,224,0.9) 0%,\n rgba(216,216,216,0.92) 100%) !important;\n box-shadow:\n inset -1px 0 0 rgba(255,255,255,0.55),\n 6px 0 10px rgba(0,0,0,0.05) !important;\n}\n\n/* List sidebar */\n[data-jey-theme=\"chrome\"] .layout-side-section {\n border-left: 1px solid #aaa !important;\n}\n\n\n/* ==========================================================================\n Tables / Grids \u2014 Metallic Header & Rows\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .frappe-control[data-fieldtype=\"Table\"] .form-grid {\n border: 1px solid #999 !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-heading-row {\n background: linear-gradient(-45deg, #aaa 3%, #d5d5d5 10%, #bbb 30%, #ddd 50%, #bbb 70%, #d5d5d5 90%, #aaa 97%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-heading-row .static-area {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .rows .grid-row:hover {\n background: linear-gradient(-90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .rows .grid-row {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-footer {\n background: transparent !important;\n border-top: 1px solid #999 !important;\n}\n\n/* --- Active (edit-mode) grid cells: identical look to the static row --- */\n/* Keep the row's bottom border visible even when in edit mode */\n[data-jey-theme=\"chrome\"] .rows .grid-row.editable-row,\n[data-jey-theme=\"chrome\"] .rows .grid-row:has(.editable-row) {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n/* Flatten every form control inside a grid row \u2014 no bg, no border, no shadow.\n Scoped to .data-row so the row-edit modal (`.form-in-grid`, which is a\n sibling of .data-row inside .grid-row) keeps its normal field styling. */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .awesomplete input,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .like-disabled-input {\n background: transparent !important;\n border: 0 !important;\n box-shadow: none !important;\n outline: none !important;\n color: #333 !important;\n transition:\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n/* Focused cell: pressed-in look \u2014 same shadow pattern as .btn-default:active */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .awesomplete input:focus {\n background: linear-gradient(-45deg, #bbb 5%, #d8d8d8 10%, #c4c4c4 30%, #d0d0d0 50%, #c4c4c4 70%, #d8d8d8 85%, #bbb 95%) !important;\n border: 0 !important;\n outline: none !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset -3px 3px 6px rgba(0,0,0,0.3),\n inset 1px -1px 1px rgba(255,255,255,0.15) !important;\n transition:\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n/* Read-only cells \u2014 darker grey bg. Specificity matches the \"flatten\" rule above\n (tag.class + two :not()), so it wins over `background: transparent`. Frappe hides\n .field-area on inactive rows, so the tint only shows on the currently-active row. */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[disabled],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[readonly],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control[readonly],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback:disabled {\n background: #d8d8d8 !important;\n box-shadow: none !important;\n color: #666 !important;\n}\n\n/* No pressed-in effect on focus for read-only cells */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):disabled:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[disabled]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[readonly]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:disabled:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control[readonly]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:disabled:focus {\n background: #d8d8d8 !important;\n box-shadow: none !important;\n}\n\n/* Match static-row cell height: static cells use padding 10px 8px; form-control in\n Frappe uses padding-top:10px, padding-bottom: calc(--padding-md - 3px). Equalise so\n the active row doesn't grow or shrink compared to an idle row. */\n[data-jey-theme=\"chrome\"] .grid-row .editable-row .form-control {\n padding-top: 10px !important;\n padding-bottom: 10px !important;\n height: auto !important;\n}\n\n\n/* ==========================================================================\n Tabs \u2014 Metallic Tab Strip\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link {\n color: #666 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.4);\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link:hover {\n color: #444 !important;\n background: linear-gradient(-180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link.active {\n color: #333 !important;\n background: linear-gradient(-180deg, rgba(255,255,255,0.2) 0%, transparent 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link::after {\n background: #777;\n}\n\n\n/* ==========================================================================\n Dropdowns \u2014 Chrome Panel\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .dropdown-menu {\n background: linear-gradient(-45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n -4px 4px 12px rgba(0,0,0,0.18),\n 2px -2px 4px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-item {\n color: #444 !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-item:hover,\n[data-jey-theme=\"chrome\"] .dropdown-item:focus {\n background: linear-gradient(-90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%) !important;\n color: #222 !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-divider {\n border-top-color: #aaa !important;\n}\n\n\n/* ==========================================================================\n Alerts / Toasts\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .desk-alert {\n background: linear-gradient(-45deg, #c0c0c0 5%, #e5e5e5 15%, #d0d0d0 40%, #e8e8e8 60%, #d0d0d0 85%, #c0c0c0 95%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n -3px 3px 8px rgba(0,0,0,0.12),\n 1px -1px 3px rgba(255,255,255,0.3),\n inset 0 1px 0 rgba(255,255,255,0.5) !important;\n}\n\n\n/* ==========================================================================\n Breadcrumbs\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .breadcrumb-container a {\n color: #666 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.4);\n}\n\n[data-jey-theme=\"chrome\"] .breadcrumb-container a:hover {\n color: #333 !important;\n}\n\n\n/* ==========================================================================\n Timeline\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .new-timeline::before {\n border-right-color: #aaa !important;\n}\n\n[data-jey-theme=\"chrome\"] .timeline-dot {\n background: linear-gradient(-45deg, #bbb, #ddd, #bbb) !important;\n border: 1px solid #999 !important;\n box-shadow: -1px 1px 2px rgba(0,0,0,0.1), 1px -1px 1px rgba(255,255,255,0.3);\n}\n\n\n/* ==========================================================================\n Badges / Indicators\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .indicator-pill {\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.3),\n -1px 1px 1px rgba(0,0,0,0.08);\n}\n\n\n/* ==========================================================================\n Popovers\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .popover {\n background: linear-gradient(-45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n -4px 4px 12px rgba(0,0,0,0.15),\n 2px -2px 4px rgba(255,255,255,0.2),\n inset 0 1px 0 rgba(255,255,255,0.5) !important;\n}\n\n[data-jey-theme=\"chrome\"] .popover .popover-body {\n color: #404040 !important;\n}\n\n\n/* ==========================================================================\n Module Widget Cards \u2014 Chrome Panels with Conic Border Accent\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box {\n background: linear-gradient(-45deg, #c0c0c0 3%, #e5e5e5 12%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 88%, #c0c0c0 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n -2px 2px 6px rgba(0,0,0,0.1),\n 1px -1px 3px rgba(255,255,255,0.35),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box::after,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box::after {\n background: conic-gradient(from -140deg, #a0a0a0, #e0e0e0, #888, #d0d0d0, #a0a0a0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box:hover,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box:hover {\n box-shadow:\n -3px 3px 10px rgba(0,0,0,0.14),\n 2px -2px 5px rgba(255,255,255,0.3),\n inset 0 1px 0 rgba(255,255,255,0.7) !important;\n}\n\n\n/* ==========================================================================\n Scrollbars \u2014 Metal Cylinder\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-track {\n background: linear-gradient(-90deg, #c0c0c0, #d0d0d0, #c0c0c0);\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-thumb {\n background: linear-gradient(-90deg, #888, #bbb, #999, #bbb, #888);\n border-radius: 5px;\n border: 1px solid #999;\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-thumb:hover {\n background: linear-gradient(-90deg, #777, #aaa, #888, #aaa, #777);\n}\n\n\n/* ==========================================================================\n Link Colors\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] a {\n color: #555;\n}\n\n[data-jey-theme=\"chrome\"] a:hover {\n color: #333;\n}\n\n\n/* ==========================================================================\n Print \u2014 Reset\n ========================================================================== */\n\n@media print {\n [data-jey-theme=\"chrome\"] body,\n [data-jey-theme=\"chrome\"] .page-container,\n [data-jey-theme=\"chrome\"] .form-page,\n [data-jey-theme=\"chrome\"] .frappe-card,\n [data-jey-theme=\"chrome\"] .modal-content,\n [data-jey-theme=\"chrome\"] .navbar {\n background: white !important;\n box-shadow: none !important;\n border-color: #ddd !important;\n text-shadow: none !important;\n }\n [data-jey-theme=\"chrome\"] .btn-primary {\n background: #333 !important;\n text-shadow: none !important;\n }\n}\n\n/* ===== theme_silk.css ===== */\n/* ==========================================================================\n THEME: Silk [data-jey-theme=\"silk\"]\n Warm ivory & champagne-gold. Soft frosted cards, generous rounding,\n diffuse shadows. Full-desk skin (see theme_chrome.css for the pattern).\n\n Background: pure CSS silk sheen for now, exposed via --jey-silk-bg so it\n can later be swapped for an image with a single edit, e.g.\n --jey-silk-bg: url(\"/assets/jey_theme/images/silk.jpg\") center/cover;\n ========================================================================== */\n\n@keyframes jey-silk-glow {\n 0%, 100% { opacity: 0.35; }\n 50% { opacity: 0.6; }\n}\n\n/* ==========================================================================\n Palette + CSS Variable Overrides\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] {\n /* --- Silk tokens --- */\n --jey-gold: #c39a54;\n --jey-gold-deep: #a67f3b;\n --jey-gold-soft: #e6d3a8;\n --jey-gold-tint: rgba(196, 160, 84, 0.12);\n --jey-cream: #f4ecde;\n --jey-card: #fbf8f2;\n --jey-ink: #453d31;\n --jey-ink-soft: #6d6252;\n --jey-line: #ebe0cd;\n\n --jey-shadow-card: 0 6px 24px rgba(120, 100, 60, 0.11), 0 1px 4px rgba(120, 100, 60, 0.06);\n --jey-shadow-hover: 0 12px 34px rgba(120, 100, 60, 0.16), 0 2px 8px rgba(120, 100, 60, 0.08);\n\n /* Silk background \u2014 real fabric photo with a soft warm champagne wash on\n top so the near-white centre stays tinted and frosted cards separate.\n The CSS-gradient fallback below is kept commented for reference. */\n --jey-silk-bg:\n linear-gradient(135deg, rgba(230, 213, 182, 0.30) 0%, rgba(244, 236, 222, 0.10) 45%, rgba(226, 208, 178, 0.34) 100%),\n url(\"/assets/jey_theme/images/silk-bg.jpg\") center center / cover no-repeat;\n /* --jey-silk-bg (pure-CSS fallback):\n radial-gradient(ellipse 80% 65% at 12% -5%, rgba(255, 255, 255, 0.7) 0%, transparent 55%),\n radial-gradient(ellipse 70% 55% at 88% 15%, rgba(246, 236, 216, 0.55) 0%, transparent 50%),\n radial-gradient(ellipse 95% 75% at 75% 105%, rgba(230, 213, 182, 0.45) 0%, transparent 55%),\n linear-gradient(135deg, #f2e9da 0%, #e9ddc7 45%, #e4d6bc 72%, #eee3d0 100%); */\n\n /* --- Surfaces --- */\n --bg-color: #f1e8d8;\n --fg-color: #fbf8f2;\n --card-bg: #fbf8f2;\n --subtle-accent: #f4ecde;\n --subtle-fg: #efe6d5;\n --fg-hover-color: #f6efe3;\n --highlight-color: #f4ecde;\n --navbar-bg: transparent;\n --modal-bg: #fbf8f2;\n --toast-bg: #fbf8f2;\n --popover-bg: #fbf8f2;\n --control-bg: #fbf8f2;\n --control-bg-on-gray: #f1e8d8;\n --awesomebar-focus-bg: #ffffff;\n --disabled-control-bg: #efe6d5;\n --skeleton-bg: #ece1cd;\n --surface-menu-bar: #f4ecde;\n --surface-white: #fbf8f2;\n --surface-gray-1: #f4ecde;\n --surface-gray-2: #efe6d5;\n --surface-gray-3: #e9dcc6;\n --surface-gray-4: #ddceb2;\n --surface-modal: #fbf8f2;\n --placeholder-color: #b3a58c;\n\n /* --- Sidebar --- */\n --sidebar-hover-color: #efe6d5;\n --sidebar-active-color: #ffffff;\n --sidebar-border-color: transparent;\n --divider-color: #e6dcc6;\n\n /* --- Text --- */\n --heading-color: #453d31;\n --text-color: #5a5040;\n --text-neutral: #453d31;\n --text-muted: #8a7d68;\n --text-light: #a4977f;\n --text-dark: #453d31;\n --disabled-text-color: #a4977f;\n --ink-gray-6: #8a7d68;\n --ink-gray-7: #6d6252;\n --ink-gray-8: #504733;\n --ink-gray-9: #453d31;\n\n /* --- Borders --- */\n --border-color: #ebe0cd;\n --dark-border-color: #ddceb2;\n --table-border-color: #ebe0cd;\n --btn-group-border-color: #ddceb2;\n --outline-gray-1: #ebe0cd;\n --outline-gray-2: #ddceb2;\n --outline-gray-modals: #e6dcc6;\n\n /* --- Primary / Buttons --- */\n --primary: #c39a54;\n --primary-color: #c39a54;\n --brand-color: #c39a54;\n --btn-primary: #c39a54;\n --btn-default-bg: #fbf8f2;\n --btn-default-hover-bg: #f1e8d8;\n --btn-ghost-hover-bg: #efe6d5;\n --border-primary: #c39a54;\n\n /* --- Rounding (silk = soft, generous) --- */\n --border-radius: 8px;\n --border-radius-sm: 6px;\n --border-radius-md: 12px;\n --border-radius-lg: 16px;\n --border-radius-full: 999px;\n\n /* --- Shadows (soft, diffuse, warm) --- */\n --shadow-xs: 0 1px 2px rgba(120, 100, 60, 0.06);\n --shadow-sm: 0 2px 6px rgba(120, 100, 60, 0.07);\n --shadow-base: 0 3px 10px rgba(120, 100, 60, 0.08);\n --shadow-md: 0 4px 16px rgba(120, 100, 60, 0.09);\n --shadow-lg: 0 8px 24px rgba(120, 100, 60, 0.11);\n --shadow-xl: 0 12px 32px rgba(120, 100, 60, 0.13);\n --shadow-2xl: 0 18px 44px rgba(120, 100, 60, 0.16);\n --card-shadow: 0 4px 20px rgba(120, 100, 60, 0.08), 0 1px 3px rgba(120, 100, 60, 0.05);\n --btn-shadow: 0 1px 2px rgba(120, 100, 60, 0.08);\n --modal-shadow: 0 20px 48px rgba(90, 70, 40, 0.22);\n --awesomebar-shadow: 0 4px 16px rgba(120, 100, 60, 0.1);\n\n /* --- Focus rings --- */\n --focus-default: 0 0 0 3px rgba(196, 160, 84, 0.25);\n\n /* --- Scrollbar --- */\n --scrollbar-thumb-color: #d8c8a6;\n --scrollbar-track-color: #f1e8d8;\n\n /* --- Checkbox / Switch --- */\n --switch-bg: #d8c8a6;\n --checkbox-color: #c39a54;\n --checkbox-gradient: linear-gradient(180deg, #cfa863 0%, #b98f45 100%);\n\n /* --- Timeline --- */\n --timeline-badge-color: #c39a54;\n --timeline-badge-bg: #f1e8d8;\n\n /* --- Date picker --- */\n --date-active-bg: #c39a54;\n --date-active-text: #ffffff;\n --date-range-bg: #f1e4cb;\n\n /* --- Progress / Misc --- */\n --progress-bar-bg: #c39a54;\n}\n\n/* ==========================================================================\n Body \u2014 Silk sheen background\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] body {\n background: var(--jey-silk-bg) !important;\n background-attachment: fixed !important;\n color: var(--text-color);\n}\n\n[data-jey-theme=\"silk\"] .page-container,\n[data-jey-theme=\"silk\"] .layout-main-section-wrapper,\n[data-jey-theme=\"silk\"] .layout-main-section {\n background: transparent !important;\n}\n\n/* ==========================================================================\n Navbar \u2014 Light, borderless, blends into silk\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .navbar {\n background: rgba(251, 248, 242, 0.72) !important;\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n border-bottom: 1px solid rgba(235, 224, 205, 0.6) !important;\n box-shadow: 0 1px 8px rgba(120, 100, 60, 0.05) !important;\n}\n\n[data-jey-theme=\"silk\"] .navbar .navbar-nav .nav-link {\n color: var(--jey-ink-soft) !important;\n}\n\n[data-jey-theme=\"silk\"] .navbar .navbar-nav .nav-link:hover {\n color: var(--jey-ink) !important;\n background: var(--jey-gold-tint) !important;\n border-radius: 10px;\n}\n\n/* ==========================================================================\n Awesomebar \u2014 Soft pill slot\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .search-bar input,\n[data-jey-theme=\"silk\"] .navbar .search-bar .form-control {\n background: rgba(255, 255, 255, 0.75) !important;\n border: 1px solid var(--jey-line) !important;\n box-shadow: inset 0 1px 2px rgba(120, 100, 60, 0.05) !important;\n color: var(--jey-ink) !important;\n border-radius: 999px !important;\n}\n\n[data-jey-theme=\"silk\"] .search-bar input:focus {\n background: #ffffff !important;\n border-color: var(--jey-gold-soft) !important;\n box-shadow: 0 0 0 3px rgba(196, 160, 84, 0.18) !important;\n}\n\n[data-jey-theme=\"silk\"] .search-bar .search-icon {\n color: var(--jey-gold-deep) !important;\n}\n\n/* ==========================================================================\n Sidebar \u2014 Cream panel, rounded white active pill\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .body-sidebar-container {\n background: rgba(247, 240, 227, 0.6) !important;\n border-left: 1px solid rgba(235, 224, 205, 0.7) !important;\n box-shadow: none !important;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar-container .body-sidebar,\n[data-jey-theme=\"silk\"] .body-sidebar-container .body-sidebar-top,\n[data-jey-theme=\"silk\"] .body-sidebar-container .body-sidebar-bottom,\n[data-jey-theme=\"silk\"] .body-sidebar-container .body-sidebar-cards {\n background: transparent !important;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item .item-anchor {\n border-radius: 12px;\n transition: background 0.2s ease, box-shadow 0.2s ease;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item .item-anchor:hover {\n background: rgba(255, 255, 255, 0.55) !important;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor,\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item.selected .item-anchor {\n background: #ffffff !important;\n box-shadow: 0 2px 10px rgba(120, 100, 60, 0.1) !important;\n border-radius: 12px;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item.active-sidebar .sidebar-item-label,\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item.selected .sidebar-item-label {\n color: var(--jey-ink) !important;\n font-weight: 600;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar .sidebar-item-icon,\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item.active-sidebar .sidebar-item-icon {\n color: var(--jey-gold-deep) !important;\n}\n\n/* Keep sidebar text neutral \u2014 gold is reserved for active/icons/accents,\n not every anchor (the global `a` gold rule would otherwise bleed here). */\n[data-jey-theme=\"silk\"] .body-sidebar-container a,\n[data-jey-theme=\"silk\"] .body-sidebar-container .sidebar-item-label,\n[data-jey-theme=\"silk\"] .body-sidebar-container .sidebar-item-control {\n color: var(--text-color) !important;\n}\n\n/* Sidebar header + context menu themed icons */\n[data-jey-theme=\"silk\"] .sidebar-header .header-logo .jey-icon,\n[data-jey-theme=\"silk\"] .frappe-menu .menu-item-icon .jey-icon {\n stroke: var(--jey-gold-deep) !important;\n fill: none !important;\n stroke-width: 1.7 !important;\n stroke-linecap: round !important;\n stroke-linejoin: round !important;\n}\n\n/* ==========================================================================\n Buttons\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .btn-primary {\n background: linear-gradient(-180deg, #cfa863 0%, #bd9146 100%) !important;\n color: #fffdf8 !important;\n border: 1px solid #b0873f !important;\n box-shadow: 0 2px 8px rgba(180, 140, 60, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;\n text-shadow: 0 -1px 0 rgba(120, 90, 30, 0.2);\n border-radius: 10px !important;\n transition: box-shadow 0.2s ease, transform 0.1s ease, background 0.2s ease !important;\n}\n\n[data-jey-theme=\"silk\"] .btn-primary:hover {\n background: linear-gradient(-180deg, #d6b170 0%, #c59a4f 100%) !important;\n box-shadow: 0 4px 14px rgba(180, 140, 60, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;\n}\n\n[data-jey-theme=\"silk\"] .btn-primary:active {\n transform: translateY(1px);\n box-shadow: 0 1px 4px rgba(180, 140, 60, 0.2), inset 0 2px 4px rgba(120, 90, 30, 0.18) !important;\n}\n\n[data-jey-theme=\"silk\"] .btn-default,\n[data-jey-theme=\"silk\"] .btn-secondary {\n background: rgba(255, 255, 255, 0.85) !important;\n border: 1px solid var(--jey-line) !important;\n color: var(--jey-ink) !important;\n box-shadow: 0 1px 3px rgba(120, 100, 60, 0.06) !important;\n border-radius: 10px !important;\n transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important;\n}\n\n[data-jey-theme=\"silk\"] .btn-default:hover,\n[data-jey-theme=\"silk\"] .btn-secondary:hover {\n background: #ffffff !important;\n border-color: var(--jey-gold-soft) !important;\n box-shadow: 0 3px 10px rgba(120, 100, 60, 0.1) !important;\n}\n\n[data-jey-theme=\"silk\"] .btn-ghost:hover {\n background: var(--jey-gold-tint) !important;\n}\n\n/* ==========================================================================\n Inputs\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\n[data-jey-theme=\"silk\"] textarea.form-control,\n[data-jey-theme=\"silk\"] select.form-control,\n[data-jey-theme=\"silk\"] select.input-with-feedback {\n background: rgba(255, 255, 255, 0.8) !important;\n border: 1px solid var(--jey-line) !important;\n color: var(--jey-ink) !important;\n box-shadow: inset 0 1px 2px rgba(120, 100, 60, 0.04) !important;\n border-radius: 10px !important;\n transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease !important;\n}\n\n[data-jey-theme=\"silk\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n[data-jey-theme=\"silk\"] textarea.form-control:focus,\n[data-jey-theme=\"silk\"] select.form-control:focus {\n background: #ffffff !important;\n border-color: var(--jey-gold-soft) !important;\n box-shadow: 0 0 0 3px rgba(196, 160, 84, 0.18) !important;\n}\n\n[data-jey-theme=\"silk\"] .form-control:disabled,\n[data-jey-theme=\"silk\"] .form-control[disabled] {\n background: #efe6d5 !important;\n color: var(--text-light) !important;\n box-shadow: none !important;\n}\n\n[data-jey-theme=\"silk\"] .frappe-control .control-label,\n[data-jey-theme=\"silk\"] .frappe-control label {\n color: var(--jey-ink-soft) !important;\n}\n\n/* ==========================================================================\n Cards / Widgets \u2014 Soft frosted panels, generous rounding\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .widget,\n[data-jey-theme=\"silk\"] .ce-block .links-widget-box,\n[data-jey-theme=\"silk\"] .ce-block .number-widget-box,\n[data-jey-theme=\"silk\"] .ce-block .chart-widget-box,\n[data-jey-theme=\"silk\"] .ce-block .shortcut-widget-box,\n[data-jey-theme=\"silk\"] .ce-block .onboarding-widget-box,\n[data-jey-theme=\"silk\"] .frappe-card {\n /* Frosted glass: the \"glassy\" read comes from a bright, thin, CONTINUOUS\n light rim around the whole perimeter (like light on the edge of a glass\n pane) \u2014 not a top-only highlight. Strong blur + a milky fill keep the\n surface even; the silk still whispers through. */\n background: linear-gradient(-160deg, rgba(255, 255, 255, 0.46) 0%, rgba(255, 252, 245, 0.34) 55%, rgba(252, 246, 236, 0.40) 100%) !important;\n backdrop-filter: blur(22px) saturate(1.2);\n -webkit-backdrop-filter: blur(22px) saturate(1.2);\n border: 1.5px solid rgba(255, 255, 255, 0.9) !important;\n box-shadow:\n 0 14px 34px rgba(74, 57, 35, 0.18),\n 0 4px 10px rgba(74, 57, 35, 0.10),\n inset 0 1px 1px rgba(255, 255, 255, 0.6) !important;\n border-radius: 22px !important;\n transition: box-shadow 0.25s ease, transform 0.2s ease !important;\n}\n\n[data-jey-theme=\"silk\"] .widget.onboarding-widget-box {\n background: linear-gradient(-160deg, rgba(255, 255, 255, 0.46) 0%, rgba(255, 252, 245, 0.34) 55%, rgba(252, 246, 236, 0.40) 100%) !important;\n}\n\n[data-jey-theme=\"silk\"] .ce-block .links-widget-box:hover,\n[data-jey-theme=\"silk\"] .ce-block .number-widget-box:hover,\n[data-jey-theme=\"silk\"] .ce-block .shortcut-widget-box:hover {\n border-color: rgba(255, 255, 255, 1) !important;\n box-shadow:\n 0 22px 48px rgba(74, 57, 35, 0.24),\n 0 6px 14px rgba(74, 57, 35, 0.13),\n inset 0 1px 1px rgba(255, 255, 255, 0.7) !important;\n transform: translateY(-3px);\n}\n\n/* Widget titles */\n[data-jey-theme=\"silk\"] .widget .widget-head .widget-title,\n[data-jey-theme=\"silk\"] .widget-group .widget-group-head .widget-group-title {\n color: var(--jey-ink) !important;\n font-weight: 600;\n}\n\n/* Number card \u2014 big number in warm ink */\n[data-jey-theme=\"silk\"] .number-widget-box .widget-content .number {\n color: var(--jey-ink) !important;\n}\n\n/* Shortcut icon chips \u2014 soft gold */\n[data-jey-theme=\"silk\"] .shortcut-widget-box .indicator-pill,\n[data-jey-theme=\"silk\"] .widget .shortcut-icon {\n color: var(--jey-gold-deep) !important;\n}\n\n/* Form page + sections */\n[data-jey-theme=\"silk\"] .form-page {\n background: rgba(251, 248, 242, 0.9) !important;\n border: 1px solid rgba(235, 224, 205, 0.8) !important;\n box-shadow: var(--jey-shadow-card) !important;\n border-radius: 16px !important;\n}\n\n[data-jey-theme=\"silk\"] .form-section .section-head {\n color: var(--jey-ink) !important;\n border-bottom: 1px solid var(--jey-line) !important;\n}\n\n/* ==========================================================================\n Charts \u2014 champagne gold line/area\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .chart-container .line-chart-rect,\n[data-jey-theme=\"silk\"] .chart-container path.line-graph-path,\n[data-jey-theme=\"silk\"] .chart-container path.dataset-path {\n stroke: var(--jey-gold) !important;\n}\n\n[data-jey-theme=\"silk\"] .chart-container .dataset-circle,\n[data-jey-theme=\"silk\"] .chart-container circle.fill {\n fill: var(--jey-gold) !important;\n stroke: var(--jey-gold) !important;\n}\n\n[data-jey-theme=\"silk\"] .chart-container path.region-fill {\n fill: rgba(196, 160, 84, 0.12) !important;\n stroke: none !important;\n}\n\n/* ==========================================================================\n Page Head\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .page-head {\n background: transparent !important;\n border-bottom: none !important;\n box-shadow: none !important;\n}\n\n[data-jey-theme=\"silk\"] .page-head .title-text,\n[data-jey-theme=\"silk\"] .page-title .title-text {\n color: var(--jey-ink) !important;\n}\n\n/* ==========================================================================\n List View\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .list-row-head {\n background: rgba(244, 236, 222, 0.85) !important;\n border-bottom: 1px solid var(--jey-line) !important;\n box-shadow: none !important;\n border-radius: 12px 12px 0 0;\n}\n\n[data-jey-theme=\"silk\"] .list-row-container .list-row {\n border-bottom: 1px solid rgba(235, 224, 205, 0.7) !important;\n}\n\n[data-jey-theme=\"silk\"] .list-row-container:hover {\n background: var(--jey-gold-tint) !important;\n}\n\n[data-jey-theme=\"silk\"] .layout-side-section {\n border-left: 1px solid var(--jey-line) !important;\n}\n\n/* ==========================================================================\n Modals / Dialogs\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .modal-content {\n background: #fbf8f2 !important;\n border: 1px solid var(--jey-line) !important;\n box-shadow: 0 20px 48px rgba(90, 70, 40, 0.22) !important;\n border-radius: 18px !important;\n}\n\n[data-jey-theme=\"silk\"] .modal-header {\n background: transparent !important;\n border-bottom: 1px solid var(--jey-line) !important;\n}\n\n[data-jey-theme=\"silk\"] .modal-header .modal-title {\n color: var(--jey-ink) !important;\n}\n\n[data-jey-theme=\"silk\"] .modal-footer {\n background: transparent !important;\n border-top: 1px solid var(--jey-line) !important;\n}\n\n[data-jey-theme=\"silk\"] .modal-backdrop {\n background-color: rgba(70, 55, 35, 0.4) !important;\n}\n\n/* ==========================================================================\n Dropdowns / Popovers\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .dropdown-menu,\n[data-jey-theme=\"silk\"] .popover {\n background: #fbf8f2 !important;\n border: 1px solid var(--jey-line) !important;\n box-shadow: 0 8px 24px rgba(120, 100, 60, 0.14) !important;\n border-radius: 14px !important;\n}\n\n[data-jey-theme=\"silk\"] .dropdown-item {\n color: var(--jey-ink-soft) !important;\n border-radius: 8px;\n}\n\n[data-jey-theme=\"silk\"] .dropdown-item:hover,\n[data-jey-theme=\"silk\"] .dropdown-item:focus {\n background: var(--jey-gold-tint) !important;\n color: var(--jey-ink) !important;\n}\n\n[data-jey-theme=\"silk\"] .dropdown-divider {\n border-top-color: var(--jey-line) !important;\n}\n\n/* ==========================================================================\n Tabs\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .form-tabs .nav-link {\n color: var(--jey-ink-soft) !important;\n}\n\n[data-jey-theme=\"silk\"] .form-tabs .nav-link:hover {\n color: var(--jey-ink) !important;\n background: var(--jey-gold-tint) !important;\n border-radius: 8px;\n}\n\n[data-jey-theme=\"silk\"] .form-tabs .nav-link.active {\n color: var(--jey-gold-deep) !important;\n}\n\n[data-jey-theme=\"silk\"] .form-tabs .nav-link::after {\n background: var(--jey-gold) !important;\n}\n\n/* ==========================================================================\n Links / Scrollbars\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] a {\n color: var(--jey-gold-deep);\n}\n\n[data-jey-theme=\"silk\"] a:hover {\n color: #8c6b2c;\n}\n\n[data-jey-theme=\"silk\"] ::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n}\n\n[data-jey-theme=\"silk\"] ::-webkit-scrollbar-track {\n background: #f1e8d8;\n}\n\n[data-jey-theme=\"silk\"] ::-webkit-scrollbar-thumb {\n background: #dccba4;\n border-radius: 5px;\n border: 2px solid #f1e8d8;\n}\n\n[data-jey-theme=\"silk\"] ::-webkit-scrollbar-thumb:hover {\n background: #cdb885;\n}\n\n/* ==========================================================================\n Desktop workspace icons \u2014 frosted glass square, gold icon\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .jey-chrome {\n width: 72px; height: 72px; border-radius: 22px; position: relative;\n background: rgba(255, 255, 255, 0.55);\n backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);\n border: 1px solid rgba(255, 255, 255, 0.7);\n box-shadow: 0 4px 16px rgba(120, 100, 60, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.85);\n transition: all 0.3s ease;\n}\n\n[data-jey-theme=\"silk\"] .desktop-icon:hover .jey-chrome {\n box-shadow: 0 8px 24px rgba(120, 100, 60, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.9);\n transform: translateY(-2px);\n}\n\n[data-jey-theme=\"silk\"] .jey-chrome-ring,\n[data-jey-theme=\"silk\"] .jey-chrome-gap,\n[data-jey-theme=\"silk\"] .jey-chrome-ring-inner {\n display: none;\n}\n\n[data-jey-theme=\"silk\"] .jey-chrome-face {\n position: absolute; inset: 0; border-radius: 22px; overflow: hidden;\n background: transparent; box-shadow: none;\n display: flex; align-items: center; justify-content: center;\n}\n\n[data-jey-theme=\"silk\"] .jey-face-glow {\n position: absolute; bottom: -4px; right: 16px; left: 16px; height: 20px;\n border-radius: 50%;\n background: radial-gradient(ellipse, rgba(196, 160, 84, 0.4) 0%, transparent 70%);\n animation: jey-silk-glow 4s ease-in-out infinite;\n pointer-events: none; z-index: 0;\n}\n\n[data-jey-theme=\"silk\"] .jey-face-reflection {\n position: absolute; top: 0; right: 0; left: 0; height: 50%;\n border-radius: 22px 22px 0 0;\n background: linear-gradient(-180deg, rgba(255, 255, 255, 0.55) 0%, transparent 100%);\n pointer-events: none; z-index: 1; animation: none;\n}\n\n[data-jey-theme=\"silk\"] .jey-chrome-face .jey-icon {\n width: 26px !important; height: 26px !important;\n stroke: #b58f47 !important; fill: none !important;\n stroke-width: 1.6 !important; stroke-linecap: round !important; stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 2px rgba(180, 140, 60, 0.25)) !important;\n position: relative; z-index: 2;\n}\n\n[data-jey-theme=\"silk\"] .icon-container.jey-chrome-done {\n border-radius: 22px !important;\n}\n"], + "mappings": "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,yDAGR,mDACQ,qBAAwB,sBACxB,yBAA4B,oBAC5B,2BAA8B,+BAAkC,gCAChE,2DACA,kBAAoB,UAW5B,+BACe,yCACA,wCAOf,wBAEQ,oBACA,oBACA,mBACA,yBACA,qBACA,uBACA,2BACA,qBACA,iBACA,iBACA,sBACA,sBACA,2BACA,+BACA,+BACA,uBACA,4BACA,yBACA,0BACA,0BACA,0BACA,uBACA,sBACA,0BAGA,+BACA,gCACA,6BACA,yBAGA,sBACA,sBACA,qBACA,mBACA,mBACA,qBACA,4BACA,mBACA,sBACA,mBAGA,qBACA,0BACA,2BACA,+BACA,0BACA,uBACA,4BAGA,gBACA,oBACA,oBACA,uBACA,6BACA,8BACA,uBAGA,6EACA,8EACA,+EACA,8EACA,8EACA,+EACA,8EACA,wCACA,8EACA,+EACA,kFACA,sFAGA,gDAGA,8BACA,iCAGA,kBACA,uBACA,iEAGA,6BACA,0BAGA,uBACA,4BACA,sBAGA,wBACA,sBACA,wBASR,6BACQ,8TAKA,sCAGR,wCACQ,iCASR,gCACQ,+HAEA,uCACA,sFAMR,sDACQ,qBACA,yCAGR,4DACQ,qBACA,iGA/rDR,kBAwsDA,0CACQ,sEACA,gCACA,yFAIA,qBA/sDR,4BAmtDA,gDACQ,sEACA,4BACA,+EAMR,iDACQ,qBAQR,gDACQ,wIACA,qCACA,yGAOR,yQAIQ,iCAGR,gFACQ,iGAGR,yFACQ,gFACA,4GA5vDR,kBAowDA,yDACQ,qBACA,iDAQR,+DACQ,qBACA,sBACA,sBACA,oBACA,2BACA,+BACA,gCACA,2DAQR,+DACQ,qBACA,sBACA,sBACA,oBACA,2BACA,+BACA,gCACA,2DAQR,qCACQ,2GACA,wBACA,gCACA,8JAOA,qCACA,kBACA,gBACA,2GAKR,4CACQ,WACA,kBACA,MAAQ,WAAa,UAAY,YACjC,iFACA,sBACA,0BACA,oBAGR,kDACQ,WAGR,2CACQ,2GACA,8JASR,4CACQ,2GACA,8JAOA,8CAQR,4EAEQ,8GACA,gCACA,qBACA,0JAOA,yCACA,2GAKR,wFAEQ,gIACA,4BACA,8JASR,0FAEQ,iHACA,8J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", + "names": [] +} diff --git a/jey_theme/public/dist/css/jey_theme.bundle.S6M2WDGN.css b/jey_theme/public/dist/css/jey_theme.bundle.S6M2WDGN.css deleted file mode 100644 index 838e340..0000000 --- a/jey_theme/public/dist/css/jey_theme.bundle.S6M2WDGN.css +++ /dev/null @@ -1,2180 +0,0 @@ -/* ../../../../../tmp/tmp-16010-GNkNpqu9JQON/jey_theme/jey_theme/public/css/jey_theme.bundle.css */ -.splash img { - content: url(/assets/jey_theme/images/preloader.png); - max-width: 64px !important; - width: 64px !important; - height: auto; -} -.desktop-icon[data-id=Organization], -.desktop-icon[data-id=ERPNext] { - display: none !important; -} -.desktop-icon[data-id=Quality], -.desktop-icon[data-id="Quality Management"], -.desktop-icon[data-id=Subcontracting] { - display: none !important; -} -input[type=checkbox] { - -webkit-appearance: none !important; - -moz-appearance: none !important; - appearance: none !important; - width: 28px !important; - min-width: 28px !important; - height: 16px !important; - background-color: var(--gray-400, #c0c6cc) !important; - background-image: none !important; - border-radius: 999px !important; - border: none !important; - position: relative !important; - cursor: pointer !important; - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12) !important; - transition: background-color 0.25s ease !important; - vertical-align: middle !important; - margin: 0 !important; - margin-right: 8px !important; - outline: none !important; -} -input[type=checkbox]::after { - content: "" !important; - width: 12px !important; - height: 12px !important; - background-color: #fff !important; - border-radius: 50% !important; - position: absolute !important; - top: 2px !important; - left: 2px !important; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important; - transition: transform 0.25s ease !important; - border: none !important; -} -input[type=checkbox]:checked, -input[type=checkbox].disabled-selected { - background-color: #2da44e !important; - background-image: none !important; - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08) !important; -} -input[type=checkbox]:checked::after, -input[type=checkbox].disabled-selected::after { - transform: translateX(12px) !important; -} -input[type=checkbox]:focus { - outline: none !important; - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(45, 164, 78, 0.25) !important; -} -input[type=checkbox]:disabled { - opacity: 0.5 !important; - cursor: not-allowed !important; - background-image: none !important; -} -input[type=checkbox].disabled-selected { - opacity: 0.7 !important; - cursor: not-allowed !important; -} -.row-check input[type=checkbox], -.grid-row-check { - width: var(--checkbox-size, 14px) !important; - min-width: var(--checkbox-size, 14px) !important; - height: var(--checkbox-size, 14px) !important; - border-radius: 4px !important; - border: 1px solid var(--gray-500) !important; - background-color: transparent !important; - background-image: none !important; - box-shadow: none !important; - margin-right: 0 !important; - transition: none !important; -} -.row-check input[type=checkbox]::after, -.grid-row-check::after { - content: "" !important; - width: auto !important; - height: auto !important; - background: none !important; - border-radius: 0 !important; - position: absolute !important; - top: auto !important; - left: auto !important; - box-shadow: none !important; - transition: none !important; - transform: none !important; - inset: -8px !important; - opacity: 0 !important; -} -.row-check input[type=checkbox]:checked, -.grid-row-check:checked { - background-color: var(--primary) !important; - background-image: url("data:image/svg+xml, "), var(--checkbox-gradient) !important; - background-size: 57%, 100% !important; - background-repeat: no-repeat !important; - background-position: center !important; - border: none !important; - box-shadow: none !important; -} -.row-check input[type=checkbox]:checked::after, -.grid-row-check:checked::after { - transform: none !important; -} -.datatable input[type=checkbox] { - -webkit-appearance: none !important; - -moz-appearance: none !important; - appearance: none !important; - width: var(--checkbox-size, 14px) !important; - min-width: var(--checkbox-size, 14px) !important; - height: var(--checkbox-size, 14px) !important; - margin: 0 !important; - padding: 0 !important; - border: 1px solid var(--gray-500) !important; - border-radius: 4px !important; - background-color: transparent !important; - background-image: none !important; - box-shadow: none !important; - cursor: pointer !important; - vertical-align: middle !important; - transition: none !important; -} -.datatable input[type=checkbox]::after { - content: none !important; - display: none !important; -} -.datatable input[type=checkbox]:checked { - background-color: var(--primary) !important; - background-image: url("data:image/svg+xml, ") !important; - background-size: 57% !important; - background-repeat: no-repeat !important; - background-position: center !important; - border: none !important; -} -.datatable input[type=checkbox]:disabled { - opacity: 0.5 !important; - cursor: not-allowed !important; -} -.datatable .dt-cell__content:has(> input[type="checkbox"]:only-child) { - display: flex !important; - align-items: center !important; - justify-content: flex-start !important; -} -.datatable .dt-row-filter .dt-cell__content { - display: flex !important; - align-items: center !important; - gap: 2px; -} -.datatable .dt-row-filter .dt-filter.dt-input { - flex: 1 1 0 !important; - min-width: 0 !important; -} -.datatable .dt-row-filter .comparison-help-icon { - flex: 0 0 auto; -} -input.list-row-checkbox::after, -input.list-header-checkbox::after { - inset: auto !important; - width: 12px !important; - height: 12px !important; - background-color: #fff !important; - border-radius: 50% !important; - position: absolute !important; - top: 2px !important; - left: 2px !important; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important; - transition: transform 0.25s ease !important; - opacity: 1 !important; -} -input.list-row-checkbox:checked::after, -input.list-header-checkbox:checked::after { - transform: translateX(12px) !important; -} -.frappe-control[data-fieldtype=Check] .checkbox label { - align-items: center !important; -} -.frappe-control[data-fieldtype=Check] .checkbox .input-area:not(.hide) { - padding-top: 0 !important; - display: flex !important; - align-items: center !important; -} -.filter-section { - display: flex !important; -} -.filter-section .sort-selector { - order: -1 !important; - margin-right: 8px !important; -} -.form-grid { - overflow-x: scroll !important; - padding-bottom: 12px !important; - scrollbar-width: auto !important; -} -.form-grid::-webkit-scrollbar { - height: 10px !important; -} -.form-grid::-webkit-scrollbar-track { - background: var(--gray-100, #f5f5f5) !important; -} -.form-grid::-webkit-scrollbar-thumb { - background: var(--gray-400, #c0c6cc) !important; - border-radius: 5px !important; - border: 2px solid var(--gray-100, #f5f5f5) !important; -} -.form-grid::-webkit-scrollbar-thumb:hover { - background: var(--gray-500, #98a2ab) !important; -} -.jey-col-resize { - position: absolute; - top: 0; - right: -2px; - width: 5px; - height: 100%; - cursor: col-resize; - z-index: 2; - background: transparent; - transition: background 0.15s; -} -.jey-col-resize:hover, -.jey-col-resize:active { - background: var(--primary, #2490ef); - opacity: 0.5; -} -.grid-heading-row .grid-static-col[data-jey-draggable] { - cursor: grab; -} -.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-left { - box-shadow: inset 3px 0 0 var(--primary, #2490ef); - background: rgba(36, 144, 239, 0.05); -} -.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-right { - box-shadow: inset -3px 0 0 var(--primary, #2490ef); - background: rgba(36, 144, 239, 0.05); -} -.list-row-head .list-row-col { - position: relative; -} -.list-row-head .list-row-col:not(:last-child) { - border-right: 1px solid var(--border-color, #e2e6e9); -} -.list-row-head .jey-col-resize { - position: absolute; - top: 0; - right: -2px; - width: 5px; - height: 100%; - cursor: col-resize; - z-index: 3; - background: transparent; - transition: background 0.15s; -} -.list-row-head .jey-col-resize:hover, -.list-row-head .jey-col-resize:active { - background: var(--primary, #2490ef); - opacity: 0.5; -} -.list-row-head .list-row-col[data-jey-draggable]:not(.list-subject) { - cursor: grab; -} -.list-row-head .list-row-col.jey-drop-target.jey-drop-left { - box-shadow: inset 3px 0 0 var(--primary, #2490ef); - background: rgba(36, 144, 239, 0.05); -} -.list-row-head .list-row-col.jey-drop-target.jey-drop-right { - box-shadow: inset -3px 0 0 var(--primary, #2490ef); - background: rgba(36, 144, 239, 0.05); -} -.body-sidebar .body-sidebar-bottom { - min-width: 0; -} -.jey-fullwidth-link, -.jey-theme-switch-link, -.jey-collapse-link { - text-decoration: none; - font-size: var(--text-sm); - display: flex; - align-items: center; - cursor: pointer; - margin-bottom: 8px; - width: 100%; - overflow: hidden; -} -.jey-fullwidth-link svg, -.jey-theme-switch-link svg, -.jey-collapse-link svg { - margin: 0; - flex: 0 0 auto; -} -.jey-fullwidth-link span, -.jey-theme-switch-link span, -.jey-collapse-link span { - margin-left: 10px; - max-width: 200px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - transition: max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1), margin-left 0.3s cubic-bezier(0.4, 0, 0.2, 1); -} -.body-sidebar-container:not(.expanded) .jey-fullwidth-link span, -.body-sidebar-container:not(.expanded) .jey-theme-switch-link span, -.body-sidebar-container:not(.expanded) .jey-collapse-link span { - max-width: 0; - margin-left: 0; -} -.body-sidebar .sidebar-bottom-actions { - display: none !important; -} -.body-sidebar .nav-item { - transition: padding 0.3s cubic-bezier(0.4, 0, 0.2, 1); -} -.modal.fade .modal-dialog { - transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) !important; - transform: translateY(-24px) scale(0.97); - opacity: 0; -} -.modal.show .modal-dialog { - transform: none; - opacity: 1; -} -@keyframes jey-section-in { - from { - top: -12px; - } - to { - top: 0; - } -} -.form-layout .form-section .section-head, -.form-layout .form-section .section-body { - position: relative; - animation: jey-section-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both; -} -.form-layout .form-section:nth-child(1) .section-head, -.form-layout .form-section:nth-child(1) .section-body { - animation-delay: 0.04s; -} -.form-layout .form-section:nth-child(2) .section-head, -.form-layout .form-section:nth-child(2) .section-body { - animation-delay: 0.10s; -} -.form-layout .form-section:nth-child(3) .section-head, -.form-layout .form-section:nth-child(3) .section-body { - animation-delay: 0.16s; -} -.form-layout .form-section:nth-child(4) .section-head, -.form-layout .form-section:nth-child(4) .section-body { - animation-delay: 0.22s; -} -.form-layout .form-section:nth-child(5) .section-head, -.form-layout .form-section:nth-child(5) .section-body { - animation-delay: 0.28s; -} -.form-layout .form-section:nth-child(6) .section-head, -.form-layout .form-section:nth-child(6) .section-body { - animation-delay: 0.34s; -} -.form-layout .form-section:nth-child(7) .section-head, -.form-layout .form-section:nth-child(7) .section-body { - animation-delay: 0.40s; -} -.form-layout .form-section:nth-child(8) .section-head, -.form-layout .form-section:nth-child(8) .section-body { - animation-delay: 0.46s; -} -.form-layout .form-section:nth-child(9) .section-head, -.form-layout .form-section:nth-child(9) .section-body { - animation-delay: 0.52s; -} -.form-layout .form-section:nth-child(10) .section-head, -.form-layout .form-section:nth-child(10) .section-body { - animation-delay: 0.58s; -} -.form-layout .form-section:nth-child(11) .section-head, -.form-layout .form-section:nth-child(11) .section-body { - animation-delay: 0.64s; -} -.form-layout .form-section:nth-child(12) .section-head, -.form-layout .form-section:nth-child(12) .section-body { - animation-delay: 0.70s; -} -.form-tabs .nav-link { - position: relative; - border-bottom: none !important; - transition: color 0.3s ease; -} -.form-tabs .nav-link::after { - content: ""; - position: absolute; - bottom: 0; - left: 0; - right: 0; - height: 2px; - background: var(--text-color); - transform: scaleX(0); - transform-origin: center; - transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1); -} -.form-tabs .nav-link.active::after { - transform: scaleX(1); -} -.dropdown-menu { - display: block !important; - visibility: hidden; - opacity: 0; - pointer-events: none; -} -.dropdown-menu.show { - visibility: visible; - opacity: 1; - pointer-events: auto; - animation: jey-dropdown-in 0.2s ease; -} -.dropdown-menu.jey-dropdown-hiding { - visibility: visible !important; - pointer-events: none; - animation: jey-dropdown-out 0.2s ease forwards; -} -@keyframes jey-dropdown-in { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes jey-dropdown-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@media (min-width: 576px) { - .body-sidebar-container { - width: 50px; - transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); - } - .body-sidebar-container.expanded { - width: var(--sidebar-width); - } -} -.body-sidebar .sidebar-header { - padding-left: 0 !important; - padding-right: 0 !important; -} -.body-sidebar-container.expanded .sidebar-user-button { - padding: 0 !important; -} -.body-sidebar .standard-sidebar-item .item-anchor { - transition: padding-left 0.4s cubic-bezier(0.22, 1, 0.36, 1), background 0.4s ease; -} -.body-sidebar .standard-sidebar-item .item-anchor:hover { - padding-left: calc(var(--padding-xs, 8px) + 4px); -} -.body-sidebar .standard-sidebar-item .sidebar-item-icon { - transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); -} -.body-sidebar .standard-sidebar-item .item-anchor:hover .sidebar-item-icon { - transform: scale(1.15); -} -.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor { - position: relative; -} -.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor::before { - content: ""; - position: absolute; - left: 0; - top: 20%; - bottom: 20%; - width: 3px; - border-radius: 0 3px 3px 0; - background: var(--primary, #2490ef); - opacity: 0.8; -} -@keyframes jey-list-row-in { - from { - opacity: 0; - transform: translateX(-16px); - } - to { - opacity: 1; - transform: translateX(0); - } -} -.frappe-list .result .list-row-container:not(:first-child) { - animation: jey-list-row-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both; -} -.frappe-list .result .list-row-container:nth-child(2) { - animation-delay: 0.03s; -} -.frappe-list .result .list-row-container:nth-child(3) { - animation-delay: 0.05s; -} -.frappe-list .result .list-row-container:nth-child(4) { - animation-delay: 0.07s; -} -.frappe-list .result .list-row-container:nth-child(5) { - animation-delay: 0.09s; -} -.frappe-list .result .list-row-container:nth-child(6) { - animation-delay: 0.11s; -} -.frappe-list .result .list-row-container:nth-child(7) { - animation-delay: 0.13s; -} -.frappe-list .result .list-row-container:nth-child(8) { - animation-delay: 0.15s; -} -.frappe-list .result .list-row-container:nth-child(9) { - animation-delay: 0.17s; -} -.frappe-list .result .list-row-container:nth-child(10) { - animation-delay: 0.19s; -} -.frappe-list .result .list-row-container:nth-child(11) { - animation-delay: 0.21s; -} -.frappe-list .result .list-row-container:nth-child(12) { - animation-delay: 0.23s; -} -.frappe-list .result .list-row-container:nth-child(13) { - animation-delay: 0.25s; -} -.frappe-list .result .list-row-container:nth-child(14) { - animation-delay: 0.27s; -} -.frappe-list .result .list-row-container:nth-child(15) { - animation-delay: 0.29s; -} -.frappe-list .result .list-row-container:nth-child(16) { - animation-delay: 0.31s; -} -.frappe-list .result .list-row-container:nth-child(17) { - animation-delay: 0.33s; -} -.frappe-list .result .list-row-container:nth-child(18) { - animation-delay: 0.35s; -} -.frappe-list .result .list-row-container:nth-child(19) { - animation-delay: 0.37s; -} -.frappe-list .result .list-row-container:nth-child(20) { - animation-delay: 0.39s; -} -.frappe-list .result .list-row-container:nth-child(21) { - animation-delay: 0.41s; -} -.modal:has(.cool-awesomebar-modal-footer) { - display: block !important; - visibility: hidden; - opacity: 0; - pointer-events: none; - transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.5s; -} -.modal:has(.cool-awesomebar-modal-footer) .modal-dialog { - transform: translateY(-30px); - transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); -} -.modal.show:has(.cool-awesomebar-modal-footer) { - visibility: visible; - opacity: 1; - pointer-events: auto; -} -.modal.show:has(.cool-awesomebar-modal-footer) .modal-dialog { - transform: none; -} -@keyframes jey-summary-in { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -.report-summary .summary-item { - animation: jey-summary-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both; -} -.report-summary .summary-item:nth-child(1) { - animation-delay: 0.05s; -} -.report-summary .summary-item:nth-child(2) { - animation-delay: 0.10s; -} -.report-summary .summary-item:nth-child(3) { - animation-delay: 0.15s; -} -.report-summary .summary-item:nth-child(4) { - animation-delay: 0.20s; -} -.report-summary .summary-item:nth-child(5) { - animation-delay: 0.25s; -} -.report-summary .summary-item:nth-child(6) { - animation-delay: 0.30s; -} -.form-section .collapse-indicator { - transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); - display: inline-block; -} -.form-section .section-head.collapsed .collapse-indicator { - transform: rotate(-90deg); -} -.form-section .section-head.collapsible + .section-body { - display: flex !important; - flex-wrap: wrap; - transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out; -} -.form-section .section-head.collapsed + .section-body { - max-height: 0 !important; - padding-top: 0 !important; - padding-bottom: 0 !important; - overflow: hidden; - transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out; -} -.awesomplete > [role=listbox] { - animation: jey-awesomplete-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both; -} -.awesomplete > [role=listbox].jey-awesomplete-hiding { - display: block !important; - pointer-events: none; - animation: jey-awesomplete-out 0.2s ease forwards; -} -@keyframes jey-awesomplete-in { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes jey-awesomplete-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -.awesomplete > ul[role=listbox]:not([hidden]) { - z-index: 10; -} -input.form-control:not([type="checkbox"]):not([type="radio"]), -textarea.form-control, -.frappe-control input:not([type="checkbox"]):not([type="radio"]), -.frappe-control textarea { - transition: background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1); -} -input.form-control:not([type="checkbox"]):not([type="radio"]):focus, -textarea.form-control:focus, -.frappe-control input:not([type="checkbox"]):not([type="radio"]):focus, -.frappe-control textarea:focus { - border-color: var(--gray-500, #a8b0b8) !important; - outline: none; -} -.btn { - position: relative; - overflow: hidden; - transition: - box-shadow 0.4s ease, - background-color 0.3s ease, - color 0.3s ease; -} -.btn::after { - content: ""; - position: absolute; - inset: 0; - background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, 0.25) 45%, rgba(255, 255, 255, 0.25) 55%, transparent 65%); - transform: translateX(-110%); - transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); - pointer-events: none; -} -.btn:hover::after { - transform: translateX(110%); -} -.btn:active { - box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.2) !important; -} -.dropdown-menu-item[onclick*=toggle_full_width], -.dropdown-menu-item[onclick*=clear_cache], -.dropdown-menu-item[onclick*=ThemeSwitcher], -.dropdown-menu-item[data-name=website], -.dropdown-menu-item.jey-hidden-item { - display: none !important; -} -.desktop-icon:hover { - transform: translateY(-2px) !important; -} -.desktop-icon:active { - transform: scale(0.97) !important; -} -.icon-container.jey-chrome-done { - width: 72px !important; - height: 72px !important; - padding: 0 !important; - border-radius: 50% !important; - background: none !important; - overflow: visible !important; - position: relative !important; -} -.icon-container.jey-chrome-done:hover { - transform: none !important; -} -.icon-container.folder-icon.jey-chrome-done { - box-shadow: none !important; -} -#desktop-modal .icons-container .icons { - gap: 12px 8px !important; - padding: 12px 0 !important; -} -#desktop-modal .desktop-icon { - min-width: 0 !important; - display: flex !important; - flex-direction: column !important; - align-items: center !important; - text-align: center !important; -} -#desktop-modal .desktop-icon .icon-caption { - width: 100% !important; - max-width: 100% !important; - padding: 0 4px !important; - margin-top: 14px !important; -} -#desktop-modal .desktop-icon .icon-title { - width: 100% !important; - max-width: 100% !important; - display: -webkit-box !important; - -webkit-line-clamp: 2; - line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden !important; - text-overflow: ellipsis !important; - overflow-wrap: anywhere !important; - word-break: break-word !important; - line-height: 1.25 !important; - white-space: normal !important; -} -#desktop-modal .modal-header.desktop-modal-heading { - background: transparent !important; - border-bottom: 0 !important; - box-shadow: none !important; -} -#desktop-modal .modal-header.desktop-modal-heading .modal-title, -#desktop-modal .modal-header.desktop-modal-heading .title-input-label span { - background: transparent !important; - box-shadow: none !important; - text-shadow: none !important; -} -#desktop-modal .icon-title, -#desktop-modal .icon-caption { - text-shadow: none !important; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -#desktop-modal .modal-body.desktop-modal-body { - overflow: visible !important; - max-height: none !important; -} -#desktop-modal .icons-container { - overflow: visible !important; - max-height: none !important; -} -.ico-framework { - animation: ico-float 5s ease-in-out infinite; - transform-origin: center; -} -@keyframes ico-float { - 0%, 100% { - transform: translateY(0) rotate(0deg); - opacity: 0.85; - } - 30% { - transform: translateY(-2px) rotate(0.8deg); - opacity: 1; - } - 70% { - transform: translateY(0.5px) rotate(-0.4deg); - opacity: 0.9; - } -} -.ico-org { - animation: ico-org 6s ease-in-out infinite; - transform-origin: center bottom; -} -@keyframes ico-org { - 0%, 100% { - transform: scaleY(1) scaleX(1); - } - 25% { - transform: scaleY(1.03) scaleX(0.99); - } - 50% { - transform: scaleY(1.05) scaleX(0.98); - } - 75% { - transform: scaleY(1.02) scaleX(1); - } -} -.ico-acc .acc-btn { - animation: ico-press 3s ease-in-out infinite; -} -@keyframes ico-press { - 0%, 25%, 100% { - opacity: 0.5; - stroke-width: 2.5; - } - 12% { - opacity: 1; - stroke-width: 3.2; - } -} -.ico-assets { - animation: ico-safe 6s ease-in-out infinite; - transform-origin: center; -} -.ico-assets .lock-dot { - animation: ico-blink 5s ease-in-out infinite; -} -@keyframes ico-safe { - 0%, 100% { - transform: translateY(0); - } - 40% { - transform: translateY(-0.6px); - } - 60% { - transform: translateY(0.3px); - } -} -@keyframes ico-blink { - 0%, 35%, 65%, 100% { - opacity: 1; - } - 50% { - opacity: 0.15; - } -} -.ico-buying { - animation: ico-cart 6s ease-in-out infinite; - transform-origin: 12px 21px; -} -@keyframes ico-cart { - 0%, 100% { - transform: translateX(0) rotate(0deg); - } - 20% { - transform: translateX(1.5px) rotate(0.8deg); - } - 50% { - transform: translateX(-0.5px) rotate(-0.3deg); - } - 80% { - transform: translateX(0.8px) rotate(0.4deg); - } -} -.ico-mfg .gear1 { - animation: ico-spin 9s linear infinite; - transform-origin: 9px 12px; -} -.ico-mfg .gear2 { - animation: ico-spin-r 7s linear infinite; - transform-origin: 17px 8px; -} -@keyframes ico-spin { - to { - transform: rotate(360deg); - } -} -@keyframes ico-spin-r { - to { - transform: rotate(-360deg); - } -} -.ico-proj .col1 { - animation: ico-g1 5s ease-in-out infinite; - transform-origin: 5.5px 21px; -} -.ico-proj .col2 { - animation: ico-g2 5s ease-in-out infinite 0.5s; - transform-origin: 12.5px 15px; -} -.ico-proj .col3 { - animation: ico-g3 5s ease-in-out infinite 1s; - transform-origin: 19.5px 18px; -} -@keyframes ico-g1 { - 0%, 100% { - transform: scaleY(1); - opacity: 0.75; - } - 50% { - transform: scaleY(0.85); - opacity: 1; - } -} -@keyframes ico-g2 { - 0%, 100% { - transform: scaleY(1); - opacity: 0.75; - } - 50% { - transform: scaleY(1.15); - opacity: 1; - } -} -@keyframes ico-g3 { - 0%, 100% { - transform: scaleY(1); - opacity: 0.75; - } - 50% { - transform: scaleY(0.88); - opacity: 1; - } -} -.ico-quality { - animation: ico-shield 6s ease-in-out infinite; - transform-origin: 12px 14px; -} -@keyframes ico-shield { - 0%, 100% { - transform: rotate(0deg) scale(1); - } - 15% { - transform: rotate(1.5deg) scale(1.03); - } - 35% { - transform: rotate(-0.5deg) scale(1.01); - } - 55% { - transform: rotate(-1.5deg) scale(1.03); - } - 75% { - transform: rotate(0.5deg) scale(1.01); - } -} -.ico-selling { - animation: ico-sell 4s ease-in-out infinite; - transform-origin: center; -} -.ico-selling .arrow-head { - animation: ico-up 4s ease-in-out infinite; -} -@keyframes ico-sell { - 0%, 100% { - opacity: 0.8; - } - 50% { - opacity: 1; - } -} -@keyframes ico-up { - 0%, 100% { - transform: translate(0, 0); - } - 30% { - transform: translate(1px, -1.5px); - } - 60% { - transform: translate(2px, -2.5px); - } -} -.ico-stock { - animation: ico-bob 5s ease-in-out infinite; - transform-origin: center; -} -@keyframes ico-bob { - 0%, 100% { - transform: rotate(0deg) translateY(0); - } - 20% { - transform: rotate(2deg) translateY(-0.7px); - } - 50% { - transform: rotate(-1deg) translateY(0.3px); - } - 80% { - transform: rotate(1.5deg) translateY(-0.4px); - } -} -.ico-sub .person-l { - animation: ico-rl 6s ease-in-out infinite; - transform-origin: 8px 12px; -} -.ico-sub .person-r { - animation: ico-rr 6s ease-in-out infinite; - transform-origin: 16px 12px; -} -@keyframes ico-rl { - 0%, 100% { - transform: translateX(0) rotate(0deg); - } - 30% { - transform: translateX(1px) rotate(1deg); - } - 60% { - transform: translateX(1.5px) rotate(0.5deg); - } -} -@keyframes ico-rr { - 0%, 100% { - transform: translateX(0) rotate(0deg); - } - 30% { - transform: translateX(-1px) rotate(-1deg); - } - 60% { - transform: translateX(-1.5px) rotate(-0.5deg); - } -} -.ico-settings { - animation: ico-gear-main 12s linear infinite; - transform-origin: center; -} -@keyframes ico-gear-main { - to { - transform: rotate(360deg); - } -} -.ico-hr .plus-v { - animation: ico-pv 4s ease-in-out infinite; - transform-origin: center; -} -.ico-hr .plus-h { - animation: ico-ph 4s ease-in-out infinite 0.3s; - transform-origin: center; -} -@keyframes ico-pv { - 0%, 100% { - opacity: 0.4; - stroke-width: 1.8; - } - 50% { - opacity: 1; - stroke-width: 2.4; - } -} -@keyframes ico-ph { - 0%, 100% { - opacity: 0.4; - stroke-width: 1.8; - } - 50% { - opacity: 1; - stroke-width: 2.4; - } -} -.jey-theme-grid { - display: flex; - gap: 20px; - padding: 20px; - justify-content: center; -} -.jey-theme-card { - cursor: pointer; - text-align: center; - padding: 16px; - border-radius: 12px; - border: 2px solid transparent; - transition: border-color 0.2s, background 0.2s; - min-width: 140px; -} -.jey-theme-card:hover { - background: var(--subtle-fg, #f5f5f5); -} -.jey-theme-card.selected { - border-color: var(--primary, #2490ef); - background: var(--subtle-fg, #f5f5f5); -} -.jey-theme-preview { - width: 72px; - height: 72px; - border-radius: 50%; - margin: 0 auto 12px; - position: relative; - overflow: hidden; -} -.jey-theme-preview--chrome { - background: conic-gradient(from 140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg); - box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15), inset 0 1px 1px rgba(255, 255, 255, 0.5); -} -.jey-theme-preview--chrome .jey-theme-preview-icon { - position: absolute; - inset: 9px; - border-radius: 50%; - background: linear-gradient(168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%); -} -.jey-theme-preview--modern { - border-radius: 16px; - background: rgba(255, 255, 255, 0.4); - -webkit-backdrop-filter: blur(6px); - backdrop-filter: blur(6px); - border: 1px solid rgba(255, 255, 255, 0.5); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); -} -.jey-theme-preview--modern .jey-theme-preview-icon { - position: absolute; - inset: 22px; - border-radius: 6px; - background: #4f46e5; - opacity: 0.25; -} -.jey-theme-label { - font-weight: 600; - font-size: var(--text-base); - margin-bottom: 2px; -} -.jey-theme-info { - font-size: var(--text-sm); - color: var(--text-muted); -} -.ce-block .links-widget-box, -.ce-block .number-widget-box { - opacity: 0; - transform: translateY(24px) scale(0.97); - animation: jey-card-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards; - border-radius: var(--border-radius-lg, 12px); - transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease; - position: relative; -} -@keyframes jey-number-in { - from { - opacity: 0; - transform: translateY(6px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -.number-widget-box .widget-content .number { - animation: jey-number-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both; -} -.ce-block .links-widget-box .widget-control .dropdown-menu, -.ce-block .number-widget-box .widget-control .dropdown-menu { - z-index: 1050; -} -.ce-block:nth-child(1) .links-widget-box, -.ce-block:nth-child(1) .number-widget-box { - animation-delay: 0.00s; -} -.ce-block:nth-child(2) .links-widget-box, -.ce-block:nth-child(2) .number-widget-box { - animation-delay: 0.06s; -} -.ce-block:nth-child(3) .links-widget-box, -.ce-block:nth-child(3) .number-widget-box { - animation-delay: 0.12s; -} -.ce-block:nth-child(4) .links-widget-box, -.ce-block:nth-child(4) .number-widget-box { - animation-delay: 0.18s; -} -.ce-block:nth-child(5) .links-widget-box, -.ce-block:nth-child(5) .number-widget-box { - animation-delay: 0.24s; -} -.ce-block:nth-child(6) .links-widget-box, -.ce-block:nth-child(6) .number-widget-box { - animation-delay: 0.30s; -} -.ce-block:nth-child(7) .links-widget-box, -.ce-block:nth-child(7) .number-widget-box { - animation-delay: 0.36s; -} -.ce-block:nth-child(8) .links-widget-box, -.ce-block:nth-child(8) .number-widget-box { - animation-delay: 0.42s; -} -.ce-block:nth-child(9) .links-widget-box, -.ce-block:nth-child(9) .number-widget-box { - animation-delay: 0.48s; -} -.ce-block:nth-child(10) .links-widget-box, -.ce-block:nth-child(10) .number-widget-box { - animation-delay: 0.54s; -} -.ce-block:nth-child(11) .links-widget-box, -.ce-block:nth-child(11) .number-widget-box { - animation-delay: 0.60s; -} -.ce-block:nth-child(12) .links-widget-box, -.ce-block:nth-child(12) .number-widget-box { - animation-delay: 0.66s; -} -@keyframes jey-card-in { - from { - opacity: 0; - transform: translateY(24px) scale(0.97); - } - to { - opacity: 1; - transform: none; - } -} -.ce-block .links-widget-box::after, -.ce-block .number-widget-box::after { - content: ""; - position: absolute; - bottom: 0; - left: 10%; - right: 10%; - height: 2.5px; - border-radius: 2px 2px 0 0; - background: var(--primary, #2490ef); - transform: scaleX(0); - transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1); - transform-origin: center; -} -.ce-block .links-widget-box:hover::after, -.ce-block .number-widget-box:hover::after { - transform: scaleX(1); -} -.ce-block .links-widget-box:hover, -.ce-block .number-widget-box:hover { - transform: translateY(-3px); - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08), 0 2px 6px rgba(0, 0, 0, 0.04); -} -.ce-block .links-widget-box:hover, -.ce-block .number-widget-box:hover, -.ce-block .links-widget-box:focus-within, -.ce-block .number-widget-box:focus-within { - z-index: 100; -} -.ce-block .links-widget-box:has(.dropdown-menu.show), -.ce-block .number-widget-box:has(.dropdown-menu.show) { - z-index: 200; -} -.links-widget-box .link-item { - position: relative; - transition: background 0.25s ease, transform 0.25s ease; - border-radius: var(--border-radius, 8px); - overflow: hidden; -} -.links-widget-box .link-item:hover { - transform: translateX(6px); - background: var(--subtle-fg, rgba(0, 0, 0, 0.02)); -} -.links-widget-box .link-item .es-icon { - display: none !important; -} -.select-icon svg { - display: none !important; -} -.select-icon { - top: 0 !important; - bottom: 0 !important; - display: flex !important; - align-items: center !important; -} -.select-icon::after { - content: "" !important; - display: block; - width: 12px; - height: 12px; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); - background-size: contain; - background-repeat: no-repeat; - background-position: center; -} -.msg-box .icon-xl { - display: none !important; -} -.msg-box .mb-4 { - display: flex; - justify-content: center; -} -.msg-box .mb-4::after { - content: "" !important; - display: block; - width: 48px; - height: 48px; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b0b8c0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 16 12 14 15 10 15 8 12 2 12'/%3E%3Cpath d='M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E"); - background-size: contain; - background-repeat: no-repeat; - background-position: center; -} -.user-onboarding { - display: none !important; -} -.comment-count svg { - fill: none !important; - stroke: currentColor !important; - stroke-width: 1.5 !important; - stroke-linecap: round; - stroke-linejoin: round; -} -.new-timeline .activity-title, -.new-timeline .timeline-actions, -.comment-box, -.comment-input-wrapper, -.comment-input-wrapper .ql-container, -.comment-input-wrapper .frappe-control .ql-editor { - background: transparent !important; - border-color: transparent !important; - box-shadow: none !important; -} -.standard-filter-section .frappe-control.jey-period-filter { - flex: 0 0 auto; - min-width: 200px; -} -.standard-filter-section .frappe-control.jey-period-filter input { - min-width: 200px; -} -.control-input.fields_order { - height: auto !important; - min-height: 32px; - display: flex; - align-items: center; -} -.control-input.fields_order > .row { - width: 100%; - align-items: center; - margin: 0; -} -.control-input.fields_order > .row > [class*=col-] { - padding-top: 0 !important; - margin-top: 0 !important; -} -@keyframes jey-chrome-rotate-glow { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} -@keyframes jey-chrome-face-light { - 0% { - background: radial-gradient(circle at 25% 20%, rgba(255, 255, 255, 0.5) 0%, transparent 55%); - } - 25% { - background: radial-gradient(circle at 75% 25%, rgba(255, 255, 255, 0.5) 0%, transparent 55%); - } - 50% { - background: radial-gradient(circle at 70% 75%, rgba(255, 255, 255, 0.35) 0%, transparent 55%); - } - 75% { - background: radial-gradient(circle at 25% 70%, rgba(255, 255, 255, 0.35) 0%, transparent 55%); - } - 100% { - background: radial-gradient(circle at 25% 20%, rgba(255, 255, 255, 0.5) 0%, transparent 55%); - } -} -@keyframes jey-chrome-refl-drift { - 0%, 100% { - top: 12%; - opacity: 0.7; - } - 50% { - top: 18%; - opacity: 0.5; - } -} -[data-jey-theme=chrome] .jey-chrome { - width: 72px; - height: 72px; - border-radius: 50%; - position: relative; - background: radial-gradient(ellipse at 35% 20%, rgba(255, 255, 255, 0.7) 0%, transparent 55%), linear-gradient(180deg, #e0e0e0 0%, #b8b8b8 100%); - box-shadow: - 0 4px 10px rgba(0, 0, 0, 0.18), - 0 1px 3px rgba(0, 0, 0, 0.1), - inset 0 1px 1px rgba(255, 255, 255, 0.7); - transition: box-shadow 0.3s ease; -} -[data-jey-theme=chrome] .desktop-icon:hover .jey-chrome { - box-shadow: - 0 6px 16px rgba(0, 0, 0, 0.22), - 0 1px 3px rgba(0, 0, 0, 0.12), - 0 0 14px rgba(255, 255, 255, 0.2), - inset 0 1px 1px rgba(255, 255, 255, 0.7); -} -[data-jey-theme=chrome] .jey-chrome-ring { - position: absolute; - inset: 2px; - border-radius: 50%; - background: conic-gradient(from 140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); - overflow: hidden; -} -[data-jey-theme=chrome] .jey-ring-glow { - position: absolute; - inset: -10px; - border-radius: 50%; - background: conic-gradient(from 0deg, transparent 0deg, transparent 140deg, rgba(255, 255, 255, 0.55) 165deg, rgba(255, 255, 255, 0.8) 180deg, rgba(255, 255, 255, 0.55) 195deg, transparent 220deg, transparent 360deg); - animation: jey-chrome-rotate-glow 8s linear infinite; - pointer-events: none; -} -[data-jey-theme=chrome] .jey-chrome-gap { - position: absolute; - inset: 5px; - border-radius: 50%; - background: linear-gradient(180deg, #888 0%, #aaa 50%, #999 100%); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.35), inset 0 -1px 1px rgba(255, 255, 255, 0.2); -} -[data-jey-theme=chrome] .jey-chrome-ring-inner { - position: absolute; - inset: 6px; - border-radius: 50%; - background: conic-gradient(from 200deg, #b0b0b0 0deg, #eee 30deg, #999 70deg, #ddd 110deg, #aaa 160deg, #f0f0f0 200deg, #909090 250deg, #ccc 300deg, #b0b0b0 360deg); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.15); -} -[data-jey-theme=chrome] .jey-chrome-face { - position: absolute; - inset: 9px; - border-radius: 50%; - overflow: hidden; - background: linear-gradient(168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%); - box-shadow: inset 0 3px 7px rgba(255, 255, 255, 0.7), inset 0 -3px 6px rgba(0, 0, 0, 0.06); - display: flex; - align-items: center; - justify-content: center; -} -[data-jey-theme=chrome] .jey-face-glow { - position: absolute; - inset: 0; - border-radius: 50%; - animation: jey-chrome-face-light 8s ease-in-out infinite; - pointer-events: none; - z-index: 1; -} -[data-jey-theme=chrome] .jey-face-reflection { - position: absolute; - top: 15%; - left: 10%; - width: 80%; - height: 30%; - background: linear-gradient(180deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.15) 60%, transparent 100%); - border-radius: 50%; - pointer-events: none; - z-index: 1; - animation: jey-chrome-refl-drift 10s ease-in-out infinite; -} -[data-jey-theme=chrome] .jey-chrome-face .jey-icon { - width: 24px !important; - height: 24px !important; - stroke: #505050 !important; - fill: none !important; - stroke-width: 1.8 !important; - stroke-linecap: round !important; - stroke-linejoin: round !important; - filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.5)) !important; - position: relative; - z-index: 2; -} -@keyframes jey-chrome-shine { - 0% { - transform: translateX(-100%) skewX(-15deg); - } - 100% { - transform: translateX(200%) skewX(-15deg); - } -} -[data-jey-theme=chrome] { - --bg-color: #d8d8d8; - --fg-color: #e8e8e8; - --card-bg: #e0e0e0; - --subtle-accent: #d4d4d4; - --subtle-fg: #d0d0d0; - --fg-hover-color: #ccc; - --highlight-color: #d4d4d4; - --navbar-bg: #d0d0d0; - --modal-bg: #ddd; - --toast-bg: #ddd; - --popover-bg: #e0e0e0; - --control-bg: #d5d5d5; - --control-bg-on-gray: #ccc; - --awesomebar-focus-bg: #e8e8e8; - --disabled-control-bg: #d0d0d0; - --skeleton-bg: #c8c8c8; - --surface-menu-bar: #d4d4d4; - --surface-white: #e0e0e0; - --surface-gray-1: #d8d8d8; - --surface-gray-2: #d0d0d0; - --surface-gray-3: #c8c8c8; - --surface-gray-4: #bbb; - --surface-modal: #ddd; - --placeholder-color: #ccc; - --sidebar-hover-color: #c8c8c8; - --sidebar-active-color: #d8d8d8; - --sidebar-border-color: #aaa; - --divider-color: #b0b0b0; - --heading-color: #333; - --text-color: #404040; - --text-neutral: #333; - --text-muted: #666; - --text-light: #888; - --text-dark: #f0f0f0; - --disabled-text-color: #888; - --ink-gray-7: #555; - --ink-gray-8: #404040; - --ink-gray-9: #333; - --border-color: #aaa; - --dark-border-color: #999; - --table-border-color: #aaa; - --btn-group-border-color: #999; - --outline-gray-1: #b0b0b0; - --outline-gray-2: #999; - --outline-gray-modals: #aaa; - --primary: #555; - --brand-color: #555; - --btn-primary: #777; - --btn-default-bg: #ccc; - --btn-default-hover-bg: #bbb; - --btn-ghost-hover-bg: #c0c0c0; - --border-primary: #777; - --shadow-xs: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.5); - --shadow-sm: 1px 1px 3px rgba(0,0,0,0.18), -1px -1px 2px rgba(255,255,255,0.45); - --shadow-base: 2px 2px 4px rgba(0,0,0,0.15), -1px -1px 2px rgba(255,255,255,0.4); - --shadow-md: 2px 2px 6px rgba(0,0,0,0.18), -1px -1px 3px rgba(255,255,255,0.35); - --shadow-lg: 3px 3px 10px rgba(0,0,0,0.15), -2px -2px 5px rgba(255,255,255,0.3); - --shadow-xl: 4px 4px 16px rgba(0,0,0,0.18), -2px -2px 6px rgba(255,255,255,0.25); - --shadow-2xl: 6px 6px 24px rgba(0,0,0,0.2), -3px -3px 8px rgba(255,255,255,0.2); - --shadow-inset: inset 0px -1px 0px #999; - --btn-shadow: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.4); - --card-shadow: 2px 2px 6px rgba(0,0,0,0.12), -1px -1px 3px rgba(255,255,255,0.4); - --modal-shadow: 6px 6px 30px rgba(0,0,0,0.3), -3px -3px 10px rgba(255,255,255,0.15); - --awesomebar-shadow: 3px 3px 12px rgba(0,0,0,0.15), -2px -2px 6px rgba(255,255,255,0.3); - --focus-default: 0 0 0 2px rgba(150,150,150,0.5); - --scrollbar-thumb-color: #999; - --scrollbar-track-color: #c8c8c8; - --switch-bg: #aaa; - --checkbox-color: #555; - --checkbox-gradient: linear-gradient(180deg, #777 0%, #666 100%); - --timeline-badge-color: #555; - --timeline-badge-bg: #ccc; - --date-active-bg: #777; - --date-active-text: #f0f0f0; - --date-range-bg: #ccc; - --progress-bar-bg: #777; - --code-block-bg: #444; - --code-block-text: #ccc; -} -[data-jey-theme=chrome] body { - background: - radial-gradient(ellipse at 25% 15%, rgba(255, 255, 255, 0.45) 0%, transparent 50%), - radial-gradient(ellipse at 80% 80%, rgba(255, 255, 255, 0.2) 0%, transparent 45%), - radial-gradient(ellipse at 50% 50%, rgba(0, 0, 0, 0.03) 0%, transparent 70%), - linear-gradient(168deg, #d8d8d8 0%, #c4c4c4 40%, #b8b8b8 70%, #c8c8c8 100%) !important; - background-attachment: fixed !important; -} -[data-jey-theme=chrome] .page-container { - background: transparent !important; -} -[data-jey-theme=chrome] .navbar { - background: linear-gradient(45deg, #aaa 2%, #ddd 8%, #bbb 18%, #e8e8e8 30%, #ccc 45%, #eee 55%, #bbb 68%, #ddd 80%, #aaa 95%) !important; - border-bottom: 1px solid #888 !important; - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.7), - inset 0 -1px 0 rgba(0, 0, 0, 0.08), - 0 2px 4px rgba(0, 0, 0, 0.15) !important; -} -[data-jey-theme=chrome] .navbar .navbar-nav .nav-link { - color: #444 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -[data-jey-theme=chrome] .navbar .navbar-nav .nav-link:hover { - color: #222 !important; - background: linear-gradient(180deg, rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.1) 100%) !important; - border-radius: 6px; -} -[data-jey-theme=chrome] .search-bar input { - background: linear-gradient(180deg, #c0c0c0 0%, #d0d0d0 100%) !important; - border: 1px solid #999 !important; - box-shadow: - inset 0 2px 4px rgba(0, 0, 0, 0.15), - inset 0 0 0 1px rgba(0, 0, 0, 0.05), - 0 1px 0 rgba(255, 255, 255, 0.5) !important; - color: #333 !important; - border-radius: 6px !important; -} -[data-jey-theme=chrome] .search-bar input:focus { - background: linear-gradient(180deg, #d5d5d5 0%, #e0e0e0 100%) !important; - border-color: #888 !important; - box-shadow: - inset 0 1px 3px rgba(0, 0, 0, 0.1), - 0 0 0 2px rgba(150, 150, 150, 0.3), - 0 1px 0 rgba(255, 255, 255, 0.4) !important; -} -[data-jey-theme=chrome] .search-bar .search-icon { - color: #777 !important; -} -[data-jey-theme=chrome] .body-sidebar-container { - background: linear-gradient(160deg, #b8b8b8 0%, #f0f0f0 12%, #c0c0c0 28%, #f4f4f4 42%, #b8b8b8 58%, #ededed 72%, #aaa 88%, #ddd 100%) !important; - border-right: 1px solid #888 !important; - box-shadow: - inset -1px 0 0 rgba(255, 255, 255, 0.6), - inset 0 1px 0 rgba(255, 255, 255, 0.7), - inset 0 -1px 0 rgba(0, 0, 0, 0.1), - 2px 0 8px rgba(0, 0, 0, 0.12) !important; -} -[data-jey-theme=chrome] .body-sidebar-container .body-sidebar, -[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-top, -[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-bottom, -[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-cards { - background: transparent !important; -} -[data-jey-theme=chrome] .body-sidebar .standard-sidebar-item .item-anchor:hover { - background: linear-gradient(90deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.05) 100%) !important; -} -[data-jey-theme=chrome] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor { - background: linear-gradient(45deg, #bbb 5%, #ddd 30%, #ccc 60%, #ddd 90%) !important; - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.6), - inset 0 -1px 0 rgba(0, 0, 0, 0.08), - 1px 1px 2px rgba(0, 0, 0, 0.1), - -1px -1px 1px rgba(255, 255, 255, 0.3) !important; - border-radius: 8px; -} -[data-jey-theme=chrome] .body-sidebar .sidebar-item-icon { - color: #666 !important; - filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.5)); -} -[data-jey-theme=chrome] .frappe-menu .menu-item-icon .jey-icon { - width: 20px !important; - height: 20px !important; - stroke: #555 !important; - fill: none !important; - stroke-width: 1.8 !important; - stroke-linecap: round !important; - stroke-linejoin: round !important; - filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.4)) !important; -} -[data-jey-theme=chrome] .sidebar-header .header-logo .jey-icon { - width: 22px !important; - height: 22px !important; - stroke: #555 !important; - fill: none !important; - stroke-width: 1.8 !important; - stroke-linecap: round !important; - stroke-linejoin: round !important; - filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.4)) !important; -} -[data-jey-theme=chrome] .btn-primary { - background: linear-gradient(45deg, #666 5%, #aaa 10%, #888 30%, #999 50%, #888 70%, #aaa 85%, #666 95%) !important; - color: #f0f0f0 !important; - border: 1px solid #555 !important; - box-shadow: - 2px 2px 4px rgba(0, 0, 0, 0.2), - -1px -1px 2px rgba(255, 255, 255, 0.15), - inset 0 1px 0 rgba(255, 255, 255, 0.3), - inset 0 -1px 0 rgba(0, 0, 0, 0.15), - inset 2px 2px 5px rgba(0, 0, 0, 0), - inset -1px -1px 2px rgba(255, 255, 255, 0) !important; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - position: relative; - overflow: hidden; - transition: box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important; -} -[data-jey-theme=chrome] .btn-primary::before { - content: ""; - position: absolute; - top: 0; - left: -50%; - width: 30%; - height: 100%; - background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent); - transform: skewX(-15deg); - transition: left 0.4s ease; - pointer-events: none; -} -[data-jey-theme=chrome] .btn-primary:hover::before { - left: 120%; -} -[data-jey-theme=chrome] .btn-primary:hover { - background: linear-gradient(45deg, #777 5%, #bbb 10%, #999 30%, #aaa 50%, #999 70%, #bbb 85%, #777 95%) !important; - box-shadow: - 2px 2px 6px rgba(0, 0, 0, 0.25), - -1px -1px 3px rgba(255, 255, 255, 0.2), - inset 0 1px 0 rgba(255, 255, 255, 0.35), - inset 0 -1px 0 rgba(0, 0, 0, 0.15), - inset 2px 2px 5px rgba(0, 0, 0, 0), - inset -1px -1px 2px rgba(255, 255, 255, 0) !important; -} -[data-jey-theme=chrome] .btn-primary:active { - background: linear-gradient(45deg, #555 5%, #888 10%, #777 30%, #888 50%, #777 70%, #888 85%, #555 95%) !important; - box-shadow: - 2px 2px 4px rgba(0, 0, 0, 0), - -1px -1px 2px rgba(255, 255, 255, 0), - inset 0 1px 0 rgba(255, 255, 255, 0), - inset 0 -1px 0 rgba(0, 0, 0, 0.05), - inset 3px 3px 7px rgba(0, 0, 0, 0.35), - inset -1px -1px 2px rgba(255, 255, 255, 0.12) !important; - transition: box-shadow 0.08s ease-out !important; -} -[data-jey-theme=chrome] .btn-default, -[data-jey-theme=chrome] .btn-secondary { - background: linear-gradient(45deg, #bbb 5%, #eee 10%, #ccc 30%, #e0e0e0 50%, #ccc 70%, #eee 85%, #bbb 95%) !important; - border: 1px solid #999 !important; - color: #444 !important; - box-shadow: - 1px 1px 3px rgba(0, 0, 0, 0.12), - -1px -1px 2px rgba(255, 255, 255, 0.4), - inset 0 1px 0 rgba(255, 255, 255, 0.6), - inset 0 -1px 0 rgba(0, 0, 0, 0.06), - inset 2px 2px 4px rgba(0, 0, 0, 0), - inset -1px -1px 1px rgba(255, 255, 255, 0) !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - transition: box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important; -} -[data-jey-theme=chrome] .btn-default:hover, -[data-jey-theme=chrome] .btn-secondary:hover { - background: linear-gradient(45deg, #c0c0c0 5%, #f2f2f2 10%, #d4d4d4 30%, #e8e8e8 50%, #d4d4d4 70%, #f2f2f2 85%, #c0c0c0 95%) !important; - border-color: #888 !important; - box-shadow: - 2px 2px 4px rgba(0, 0, 0, 0.15), - -1px -1px 2px rgba(255, 255, 255, 0.4), - inset 0 1px 0 rgba(255, 255, 255, 0.7), - inset 0 -1px 0 rgba(0, 0, 0, 0.06), - inset 2px 2px 4px rgba(0, 0, 0, 0), - inset -1px -1px 1px rgba(255, 255, 255, 0) !important; -} -[data-jey-theme=chrome] .btn-default:active, -[data-jey-theme=chrome] .btn-secondary:active { - background: linear-gradient(45deg, #aaa 5%, #d8d8d8 10%, #bbb 30%, #ccc 50%, #bbb 70%, #d8d8d8 85%, #aaa 95%) !important; - box-shadow: - 1px 1px 3px rgba(0, 0, 0, 0), - -1px -1px 2px rgba(255, 255, 255, 0), - inset 0 1px 0 rgba(255, 255, 255, 0), - inset 0 -1px 0 rgba(0, 0, 0, 0.05), - inset 3px 3px 6px rgba(0, 0, 0, 0.3), - inset -1px -1px 1px rgba(255, 255, 255, 0.15) !important; - transition: box-shadow 0.08s ease-out !important; -} -[data-jey-theme=chrome] .btn-danger { - background: linear-gradient(45deg, #b33 5%, #e88 10%, #c55 30%, #d77 50%, #c55 70%, #e88 85%, #b33 95%) !important; - color: #fff !important; - border: 1px solid #944 !important; - box-shadow: - 2px 2px 4px rgba(0, 0, 0, 0.2), - -1px -1px 2px rgba(255, 255, 255, 0.1), - inset 0 1px 0 rgba(255, 255, 255, 0.25) !important; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); -} -[data-jey-theme=chrome] .btn-danger:hover { - background: linear-gradient(45deg, #c44 5%, #f99 10%, #d66 30%, #e88 50%, #d66 70%, #f99 85%, #c44 95%) !important; -} -[data-jey-theme=chrome] .btn-ghost:hover { - background: linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.05) 100%) !important; -} -[data-jey-theme=chrome] input.form-control:not([type="checkbox"]):not([type="radio"]), -[data-jey-theme=chrome] textarea.form-control { - background: #d0d0d0 !important; - border: 1px solid #999 !important; - color: #333 !important; - box-shadow: - inset 1px 1px 2px rgba(0, 0, 0, 0.10), - inset -1px -1px 1px rgba(255, 255, 255, 0.25), - inset 0 1px 1px rgba(0, 0, 0, 0.04) !important; - transition: - background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1), - border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1), - box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important; -} -[data-jey-theme=chrome] input.form-control:not([type="checkbox"]):not([type="radio"]):focus, -[data-jey-theme=chrome] textarea.form-control:focus { - background: #cbcbcb !important; - border-color: #777 !important; - box-shadow: - inset 4px 4px 8px rgba(0, 0, 0, 0.28), - inset -1px -1px 1px rgba(255, 255, 255, 0.15), - inset 0 3px 5px rgba(0, 0, 0, 0.18) !important; -} -[data-jey-theme=chrome] .form-control:disabled, -[data-jey-theme=chrome] .form-control[disabled] { - background: #d8d8d8 !important; - color: #888 !important; - box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.06) !important; -} -[data-jey-theme=chrome] .frappe-control .control-label, -[data-jey-theme=chrome] .frappe-control label { - color: #444 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -[data-jey-theme=chrome] select.form-control, -[data-jey-theme=chrome] select.input-with-feedback { - background: #d0d0d0 !important; -} -[data-jey-theme=chrome] .form-page { - background: linear-gradient(45deg, #ccc 3%, #e8e8e8 10%, #d5d5d5 25%, #eee 45%, #d8d8d8 60%, #e8e8e8 80%, #ccc 97%) !important; - border: 1px solid #aaa !important; - box-shadow: - 3px 3px 8px rgba(0, 0, 0, 0.12), - -2px -2px 4px rgba(255, 255, 255, 0.4), - inset 0 1px 0 rgba(255, 255, 255, 0.7), - inset 0 -1px 0 rgba(0, 0, 0, 0.05) !important; - border-radius: var(--border-radius-lg) !important; -} -[data-jey-theme=chrome] .form-section .section-head { - color: #444 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - border-bottom: 1px solid #b0b0b0 !important; - position: relative; -} -[data-jey-theme=chrome] .frappe-card { - background: linear-gradient(45deg, #c8c8c8 3%, #e5e5e5 12%, #d4d4d4 30%, #eaeaea 50%, #d4d4d4 70%, #e5e5e5 88%, #c8c8c8 97%) !important; - border: 1px solid #aaa !important; - box-shadow: - 2px 2px 6px rgba(0, 0, 0, 0.1), - -1px -1px 3px rgba(255, 255, 255, 0.4), - inset 0 1px 0 rgba(255, 255, 255, 0.6) !important; -} -[data-jey-theme=chrome] .form-sidebar { - border-left: 1px solid #aaa !important; -} -[data-jey-theme=chrome] .form-sidebar .sidebar-section { - border-bottom: 1px solid #b0b0b0 !important; -} -[data-jey-theme=chrome] .modal-content { - background: linear-gradient(45deg, #ccc 3%, #e8e8e8 12%, #d5d5d5 30%, #eee 50%, #d5d5d5 70%, #e8e8e8 88%, #ccc 97%) !important; - border: 1px solid #999 !important; - box-shadow: - 6px 6px 24px rgba(0, 0, 0, 0.25), - -3px -3px 8px rgba(255, 255, 255, 0.15), - inset 0 1px 0 rgba(255, 255, 255, 0.6), - inset 0 0 0 1px rgba(255, 255, 255, 0.35) !important; -} -[data-jey-theme=chrome] .modal-header { - background: linear-gradient(45deg, #b0b0b0 5%, #ddd 12%, #c0c0c0 30%, #e5e5e5 50%, #c0c0c0 70%, #ddd 88%, #b0b0b0 95%) !important; - border-bottom: 1px solid #999 !important; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 -1px 0 rgba(0, 0, 0, 0.06) !important; -} -[data-jey-theme=chrome] .modal-header .modal-title { - color: #333 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -[data-jey-theme=chrome] .modal-footer { - background: linear-gradient(45deg, #b8b8b8 5%, #d8d8d8 20%, #c0c0c0 50%, #d8d8d8 80%, #b8b8b8 95%) !important; - border-top: 1px solid #999 !important; -} -[data-jey-theme=chrome] .modal-backdrop { - background-color: rgba(40, 40, 40, 0.55) !important; -} -[data-jey-theme=chrome] .page-head { - background: linear-gradient(45deg, #b8b8b8 3%, #e0e0e0 10%, #c8c8c8 25%, #eaeaea 45%, #ccc 60%, #e0e0e0 80%, #b8b8b8 97%) !important; - border-bottom: 1px solid #999 !important; - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.6), - inset 0 -1px 0 rgba(0, 0, 0, 0.06), - 0 2px 4px rgba(0, 0, 0, 0.08) !important; -} -[data-jey-theme=chrome] .page-head .title-text { - color: #333 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -[data-jey-theme=chrome] .list-row-head { - background: linear-gradient(45deg, #aaa 3%, #d8d8d8 10%, #bbb 25%, #e0e0e0 45%, #bbb 60%, #d8d8d8 80%, #aaa 97%) !important; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 -1px 0 rgba(0, 0, 0, 0.06) !important; -} -[data-jey-theme=chrome] .list-row-container .list-row { - border-bottom: 1px solid #b8b8b8 !important; -} -[data-jey-theme=chrome] .list-row-container:hover { - background: linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.05) 100%) !important; -} -[data-jey-theme=chrome] .result .list-row-container .level-left .list-row--col .level-left .ellipsis { - color: #404040 !important; -} -[data-jey-theme=chrome] .frappe-list .list-row .level-right, -[data-jey-theme=chrome] .frappe-list .list-row-head .level-right { - background: linear-gradient(90deg, rgba(216, 216, 216, 0.85) 0%, rgba(208, 208, 208, 0.88) 100%) !important; - backdrop-filter: blur(3px); - -webkit-backdrop-filter: blur(3px); - border-left: 1px solid #a0a0a0 !important; - box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.5) !important; -} -[data-jey-theme=chrome] .frappe-list .list-row-container:hover .level-right { - background: linear-gradient(90deg, rgba(224, 224, 224, 0.9) 0%, rgba(216, 216, 216, 0.92) 100%) !important; - box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.55), -6px 0 10px rgba(0, 0, 0, 0.05) !important; -} -[data-jey-theme=chrome] .layout-side-section { - border-right: 1px solid #aaa !important; -} -[data-jey-theme=chrome] .frappe-control[data-fieldtype=Table] .form-grid { - border: 1px solid #999 !important; -} -[data-jey-theme=chrome] .grid-heading-row { - background: linear-gradient(45deg, #aaa 3%, #d5d5d5 10%, #bbb 30%, #ddd 50%, #bbb 70%, #d5d5d5 90%, #aaa 97%) !important; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 -1px 0 rgba(0, 0, 0, 0.06) !important; -} -[data-jey-theme=chrome] .grid-heading-row .static-area { - color: #444 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -[data-jey-theme=chrome] .rows .grid-row:hover { - background: linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.05) 100%) !important; -} -[data-jey-theme=chrome] .rows .grid-row { - border-bottom: 1px solid #b8b8b8 !important; -} -[data-jey-theme=chrome] .grid-footer { - background: transparent !important; - border-top: 1px solid #999 !important; -} -[data-jey-theme=chrome] .rows .grid-row.editable-row, -[data-jey-theme=chrome] .rows .grid-row:has(.editable-row) { - border-bottom: 1px solid #b8b8b8 !important; -} -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"]), -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control, -[data-jey-theme=chrome] .grid-row > .data-row select.form-control, -[data-jey-theme=chrome] .grid-row > .data-row select.input-with-feedback, -[data-jey-theme=chrome] .grid-row > .data-row .awesomplete input, -[data-jey-theme=chrome] .grid-row > .data-row .like-disabled-input { - background: transparent !important; - border: 0 !important; - box-shadow: none !important; - outline: none !important; - color: #333 !important; - transition: box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1), background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important; -} -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"]):focus, -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control:focus, -[data-jey-theme=chrome] .grid-row > .data-row select.form-control:focus, -[data-jey-theme=chrome] .grid-row > .data-row select.input-with-feedback:focus, -[data-jey-theme=chrome] .grid-row > .data-row .awesomplete input:focus { - background: linear-gradient(45deg, #bbb 5%, #d8d8d8 10%, #c4c4c4 30%, #d0d0d0 50%, #c4c4c4 70%, #d8d8d8 85%, #bbb 95%) !important; - border: 0 !important; - outline: none !important; - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0), - inset 0 -1px 0 rgba(0, 0, 0, 0.05), - inset 3px 3px 6px rgba(0, 0, 0, 0.3), - inset -1px -1px 1px rgba(255, 255, 255, 0.15) !important; - transition: box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1), background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important; -} -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"]):disabled, -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"])[disabled], -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"])[readonly], -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control:disabled, -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control[readonly], -[data-jey-theme=chrome] .grid-row > .data-row select.form-control:disabled, -[data-jey-theme=chrome] .grid-row > .data-row select.input-with-feedback:disabled { - background: #d8d8d8 !important; - box-shadow: none !important; - color: #666 !important; -} -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"]):disabled:focus, -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"])[disabled]:focus, -[data-jey-theme=chrome] .grid-row > .data-row input.form-control:not([type="checkbox"]):not([type="radio"])[readonly]:focus, -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control:disabled:focus, -[data-jey-theme=chrome] .grid-row > .data-row textarea.form-control[readonly]:focus, -[data-jey-theme=chrome] .grid-row > .data-row select.form-control:disabled:focus { - background: #d8d8d8 !important; - box-shadow: none !important; -} -[data-jey-theme=chrome] .grid-row .editable-row .form-control { - padding-top: 10px !important; - padding-bottom: 10px !important; - height: auto !important; -} -[data-jey-theme=chrome] .form-tabs .nav-link { - color: #666 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); -} -[data-jey-theme=chrome] .form-tabs .nav-link:hover { - color: #444 !important; - background: linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.05) 100%) !important; -} -[data-jey-theme=chrome] .form-tabs .nav-link.active { - color: #333 !important; - background: linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, transparent 100%) !important; -} -[data-jey-theme=chrome] .form-tabs .nav-link::after { - background: #777; -} -[data-jey-theme=chrome] .dropdown-menu { - background: linear-gradient(45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important; - border: 1px solid #999 !important; - box-shadow: - 4px 4px 12px rgba(0, 0, 0, 0.18), - -2px -2px 4px rgba(255, 255, 255, 0.15), - inset 0 1px 0 rgba(255, 255, 255, 0.6) !important; -} -[data-jey-theme=chrome] .dropdown-item { - color: #444 !important; -} -[data-jey-theme=chrome] .dropdown-item:hover, -[data-jey-theme=chrome] .dropdown-item:focus { - background: linear-gradient(90deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.05) 100%) !important; - color: #222 !important; -} -[data-jey-theme=chrome] .dropdown-divider { - border-top-color: #aaa !important; -} -[data-jey-theme=chrome] .desk-alert { - background: linear-gradient(45deg, #c0c0c0 5%, #e5e5e5 15%, #d0d0d0 40%, #e8e8e8 60%, #d0d0d0 85%, #c0c0c0 95%) !important; - border: 1px solid #999 !important; - box-shadow: - 3px 3px 8px rgba(0, 0, 0, 0.12), - -1px -1px 3px rgba(255, 255, 255, 0.3), - inset 0 1px 0 rgba(255, 255, 255, 0.5) !important; -} -[data-jey-theme=chrome] .breadcrumb-container a { - color: #666 !important; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); -} -[data-jey-theme=chrome] .breadcrumb-container a:hover { - color: #333 !important; -} -[data-jey-theme=chrome] .new-timeline::before { - border-left-color: #aaa !important; -} -[data-jey-theme=chrome] .timeline-dot { - background: linear-gradient(45deg, #bbb, #ddd, #bbb) !important; - border: 1px solid #999 !important; - box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1), -1px -1px 1px rgba(255, 255, 255, 0.3); -} -[data-jey-theme=chrome] .indicator-pill { - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 1px 1px 1px rgba(0, 0, 0, 0.08); -} -[data-jey-theme=chrome] .popover { - background: linear-gradient(45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important; - border: 1px solid #999 !important; - box-shadow: - 4px 4px 12px rgba(0, 0, 0, 0.15), - -2px -2px 4px rgba(255, 255, 255, 0.2), - inset 0 1px 0 rgba(255, 255, 255, 0.5) !important; -} -[data-jey-theme=chrome] .popover .popover-body { - color: #404040 !important; -} -[data-jey-theme=chrome] .ce-block .links-widget-box, -[data-jey-theme=chrome] .ce-block .number-widget-box { - background: linear-gradient(45deg, #c0c0c0 3%, #e5e5e5 12%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 88%, #c0c0c0 97%) !important; - border: 1px solid #aaa !important; - box-shadow: - 2px 2px 6px rgba(0, 0, 0, 0.1), - -1px -1px 3px rgba(255, 255, 255, 0.35), - inset 0 1px 0 rgba(255, 255, 255, 0.6) !important; -} -[data-jey-theme=chrome] .ce-block .links-widget-box::after, -[data-jey-theme=chrome] .ce-block .number-widget-box::after { - background: conic-gradient(from 140deg, #a0a0a0, #e0e0e0, #888, #d0d0d0, #a0a0a0) !important; -} -[data-jey-theme=chrome] .ce-block .links-widget-box:hover, -[data-jey-theme=chrome] .ce-block .number-widget-box:hover { - box-shadow: - 3px 3px 10px rgba(0, 0, 0, 0.14), - -2px -2px 5px rgba(255, 255, 255, 0.3), - inset 0 1px 0 rgba(255, 255, 255, 0.7) !important; -} -[data-jey-theme=chrome] ::-webkit-scrollbar { - width: 10px; - height: 10px; -} -[data-jey-theme=chrome] ::-webkit-scrollbar-track { - background: linear-gradient(90deg, #c0c0c0, #d0d0d0, #c0c0c0); -} -[data-jey-theme=chrome] ::-webkit-scrollbar-thumb { - background: linear-gradient(90deg, #888, #bbb, #999, #bbb, #888); - border-radius: 5px; - border: 1px solid #999; -} -[data-jey-theme=chrome] ::-webkit-scrollbar-thumb:hover { - background: linear-gradient(90deg, #777, #aaa, #888, #aaa, #777); -} -[data-jey-theme=chrome] a { - color: #555; -} -[data-jey-theme=chrome] a:hover { - color: #333; -} -@media print { - [data-jey-theme=chrome] body, - [data-jey-theme=chrome] .page-container, - [data-jey-theme=chrome] .form-page, - [data-jey-theme=chrome] .frappe-card, - [data-jey-theme=chrome] .modal-content, - [data-jey-theme=chrome] .navbar { - background: white !important; - box-shadow: none !important; - border-color: #ddd !important; - text-shadow: none !important; - } - [data-jey-theme=chrome] .btn-primary { - background: #333 !important; - text-shadow: none !important; - } -} -@keyframes jey-modern-glow { - 0%, 100% { - opacity: 0.4; - } - 50% { - opacity: 0.7; - } -} -[data-jey-theme=modern] .jey-chrome { - width: 72px; - height: 72px; - border-radius: 22px; - position: relative; - background: rgba(255, 255, 255, 0.45); - backdrop-filter: blur(12px); - -webkit-backdrop-filter: blur(12px); - border: 1px solid rgba(255, 255, 255, 0.6); - box-shadow: - 0 4px 16px rgba(0, 0, 0, 0.06), - 0 1px 3px rgba(0, 0, 0, 0.04), - inset 0 1px 0 rgba(255, 255, 255, 0.8); - transition: all 0.3s ease; -} -[data-jey-theme=modern] .desktop-icon:hover .jey-chrome { - box-shadow: - 0 8px 24px rgba(0, 0, 0, 0.1), - 0 2px 6px rgba(0, 0, 0, 0.06), - inset 0 1px 0 rgba(255, 255, 255, 0.9); - transform: translateY(-2px); -} -[data-jey-theme=modern] .jey-chrome-ring, -[data-jey-theme=modern] .jey-chrome-gap, -[data-jey-theme=modern] .jey-chrome-ring-inner { - display: none; -} -[data-jey-theme=modern] .jey-chrome-face { - position: absolute; - inset: 0; - border-radius: 22px; - overflow: hidden; - background: transparent; - box-shadow: none; - display: flex; - align-items: center; - justify-content: center; -} -[data-jey-theme=modern] .jey-face-glow { - position: absolute; - bottom: -4px; - left: 16px; - right: 16px; - height: 20px; - border-radius: 50%; - background: radial-gradient(ellipse, rgba(99, 102, 241, 0.35) 0%, transparent 70%); - animation: jey-modern-glow 4s ease-in-out infinite; - pointer-events: none; - z-index: 0; -} -[data-jey-theme=modern] .jey-face-reflection { - position: absolute; - top: 0; - left: 0; - right: 0; - height: 50%; - border-radius: 22px 22px 0 0; - background: linear-gradient(180deg, rgba(255, 255, 255, 0.5) 0%, transparent 100%); - pointer-events: none; - z-index: 1; - animation: none; -} -[data-jey-theme=modern] .jey-chrome-face .jey-icon { - width: 26px !important; - height: 26px !important; - stroke: #4f46e5 !important; - fill: none !important; - stroke-width: 1.6 !important; - stroke-linecap: round !important; - stroke-linejoin: round !important; - filter: drop-shadow(0 1px 2px rgba(79, 70, 229, 0.2)) !important; - position: relative; - z-index: 2; -} -[data-jey-theme=modern] .icon-container.jey-chrome-done { - border-radius: 22px !important; -} -/*# sourceMappingURL=jey_theme.bundle.S6M2WDGN.css.map */ diff --git a/jey_theme/public/dist/css/jey_theme.bundle.S6M2WDGN.css.map b/jey_theme/public/dist/css/jey_theme.bundle.S6M2WDGN.css.map deleted file mode 100644 index d8b7f44..0000000 --- a/jey_theme/public/dist/css/jey_theme.bundle.S6M2WDGN.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../../../../../tmp/tmp-16010-GNkNpqu9JQON/jey_theme/jey_theme/public/css/jey_theme.bundle.css"], - "sourcesContent": ["/* Bundled theme styles (was 3 raw app_include_css/web_include_css entries).\n One hashed bundle -> smaller preload header + auto cache-busting.\n Order preserved: shared -> theme_chrome -> theme_modern. */\n\n/* ===== shared.css ===== */\n/* ==========================================================================\n Jey Theme \u2014 Shared Styles (theme-independent)\n ========================================================================== */\n\n/* Override Frappe's default desk splash image (the blue \"E\").\n Splash markup is in templates/includes/splash_screen.html and gets removed\n by Frappe once the desk boots, so this only shows during page load. */\n.splash img {\n\tcontent: url(\"/assets/jey_theme/images/preloader.png\");\n\tmax-width: 64px !important;\n\twidth: 64px !important;\n\theight: auto;\n}\n\n/* Hide Organization desktop icon by default */\n.desktop-icon[data-id=\"Organization\"],\n.desktop-icon[data-id=\"ERPNext\"] {\n\tdisplay: none !important;\n}\n\n/* Fallback hide for blocked modules (main filtering happens in access_control.py).\n Desktop Icon records use label \"Quality\" and \"Subcontracting\" \u2014 match those. */\n.desktop-icon[data-id=\"Quality\"],\n.desktop-icon[data-id=\"Quality Management\"],\n.desktop-icon[data-id=\"Subcontracting\"] {\n\tdisplay: none !important;\n}\n\n/* ==========================================================================\n Toggle Switch Checkboxes\n ========================================================================== */\n\ninput[type=\"checkbox\"] {\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n appearance: none !important;\n width: 28px !important;\n min-width: 28px !important;\n height: 16px !important;\n background-color: var(--gray-400, #c0c6cc) !important;\n background-image: none !important;\n border-radius: 999px !important;\n border: none !important;\n position: relative !important;\n cursor: pointer !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12) !important;\n transition: background-color 0.25s ease !important;\n vertical-align: middle !important;\n margin: 0 !important;\n margin-right: 8px !important;\n outline: none !important;\n}\n\ninput[type=\"checkbox\"]::after {\n content: \"\" !important;\n width: 12px !important;\n height: 12px !important;\n background-color: #fff !important;\n border-radius: 50% !important;\n position: absolute !important;\n top: 2px !important;\n left: 2px !important;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;\n transition: transform 0.25s ease !important;\n border: none !important;\n}\n\ninput[type=\"checkbox\"]:checked,\ninput[type=\"checkbox\"].disabled-selected {\n background-color: #2da44e !important;\n background-image: none !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08) !important;\n}\n\ninput[type=\"checkbox\"]:checked::after,\ninput[type=\"checkbox\"].disabled-selected::after {\n transform: translateX(12px) !important;\n}\n\ninput[type=\"checkbox\"]:focus {\n outline: none !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(45, 164, 78, 0.25) !important;\n}\n\ninput[type=\"checkbox\"]:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n background-image: none !important;\n}\n\ninput[type=\"checkbox\"].disabled-selected {\n opacity: 0.7 !important;\n cursor: not-allowed !important;\n}\n\n\n/* ==========================================================================\n Table Grid \u2014 restore Frappe default checkboxes\n ========================================================================== */\n\n.row-check input[type=\"checkbox\"],\n.grid-row-check {\n width: var(--checkbox-size, 14px) !important;\n min-width: var(--checkbox-size, 14px) !important;\n height: var(--checkbox-size, 14px) !important;\n border-radius: 4px !important;\n border: 1px solid var(--gray-500) !important;\n background-color: transparent !important;\n background-image: none !important;\n box-shadow: none !important;\n margin-right: 0 !important;\n transition: none !important;\n}\n\n.row-check input[type=\"checkbox\"]::after,\n.grid-row-check::after {\n content: \"\" !important;\n width: auto !important;\n height: auto !important;\n background: none !important;\n border-radius: 0 !important;\n position: absolute !important;\n top: auto !important;\n left: auto !important;\n box-shadow: none !important;\n transition: none !important;\n transform: none !important;\n inset: -8px !important;\n opacity: 0 !important;\n}\n\n.row-check input[type=\"checkbox\"]:checked,\n.grid-row-check:checked {\n background-color: var(--primary) !important;\n background-image: url(\"data:image/svg+xml, \"), var(--checkbox-gradient) !important;\n background-size: 57%, 100% !important;\n background-repeat: no-repeat !important;\n background-position: center !important;\n border: none !important;\n box-shadow: none !important;\n}\n\n.row-check input[type=\"checkbox\"]:checked::after,\n.grid-row-check:checked::after {\n transform: none !important;\n}\n\n/* ==========================================================================\n Report View (frappe-datatable) \u2014 compact themed checkboxes\n The global toggle-switch styling (28\u00D716) doesn't fit the 32px select\n column or the 37px row-number column, so content gets clipped. Use the\n same compact square style as child-table grids (.row-check) \u2014 themed,\n not native.\n ========================================================================== */\n\n.datatable input[type=\"checkbox\"] {\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n appearance: none !important;\n width: var(--checkbox-size, 14px) !important;\n min-width: var(--checkbox-size, 14px) !important;\n height: var(--checkbox-size, 14px) !important;\n margin: 0 !important;\n padding: 0 !important;\n border: 1px solid var(--gray-500) !important;\n border-radius: 4px !important;\n background-color: transparent !important;\n background-image: none !important;\n box-shadow: none !important;\n cursor: pointer !important;\n vertical-align: middle !important;\n transition: none !important;\n}\n\n.datatable input[type=\"checkbox\"]::after {\n content: none !important;\n display: none !important;\n}\n\n.datatable input[type=\"checkbox\"]:checked {\n background-color: var(--primary) !important;\n background-image: url(\"data:image/svg+xml, \") !important;\n background-size: 57% !important;\n background-repeat: no-repeat !important;\n background-position: center !important;\n border: none !important;\n}\n\n.datatable input[type=\"checkbox\"]:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n}\n\n/* Centre the checkbox vertically in its cell \u2014 vertical-align:middle on the\n input alone isn't enough because datatable cells have their own line-box\n rules that anchor the box to the baseline. */\n.datatable .dt-cell__content:has(> input[type=\"checkbox\"]:only-child) {\n display: flex !important;\n align-items: center !important;\n justify-content: flex-start !important;\n}\n\n/* Filter row: input + help-icon squash each other in narrow columns. Let\n the input flex-shrink instead of overflowing its siblings. */\n.datatable .dt-row-filter .dt-cell__content {\n display: flex !important;\n align-items: center !important;\n gap: 2px;\n}\n\n.datatable .dt-row-filter .dt-filter.dt-input {\n flex: 1 1 0 !important;\n min-width: 0 !important;\n}\n\n.datatable .dt-row-filter .comparison-help-icon {\n flex: 0 0 auto;\n}\n\n/* ==========================================================================\n List View \u2014 restore toggle knob\n ========================================================================== */\n\ninput.list-row-checkbox::after,\ninput.list-header-checkbox::after {\n inset: auto !important;\n width: 12px !important;\n height: 12px !important;\n background-color: #fff !important;\n border-radius: 50% !important;\n position: absolute !important;\n top: 2px !important;\n left: 2px !important;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;\n transition: transform 0.25s ease !important;\n opacity: 1 !important;\n}\n\ninput.list-row-checkbox:checked::after,\ninput.list-header-checkbox:checked::after {\n transform: translateX(12px) !important;\n}\n\n\n.frappe-control[data-fieldtype=\"Check\"] .checkbox label {\n align-items: center !important;\n}\n\n.frappe-control[data-fieldtype=\"Check\"] .checkbox .input-area:not(.hide) {\n padding-top: 0 !important;\n display: flex !important;\n align-items: center !important;\n}\n\n/* ==========================================================================\n List View \u2014 swap filter and sort order\n ========================================================================== */\n\n.filter-section {\n display: flex !important;\n}\n\n.filter-section .sort-selector {\n order: -1 !important;\n margin-right: 8px !important;\n}\n\n/* ==========================================================================\n Table Horizontal Scrollbar \u2014 thicker & easier to grab\n ========================================================================== */\n\n/* Force scrollbar always visible & push it below table content */\n.form-grid {\n overflow-x: scroll !important;\n padding-bottom: 12px !important;\n scrollbar-width: auto !important;\n}\n\n.form-grid::-webkit-scrollbar {\n height: 10px !important;\n}\n\n.form-grid::-webkit-scrollbar-track {\n background: var(--gray-100, #f5f5f5) !important;\n}\n\n.form-grid::-webkit-scrollbar-thumb {\n background: var(--gray-400, #c0c6cc) !important;\n border-radius: 5px !important;\n border: 2px solid var(--gray-100, #f5f5f5) !important;\n}\n\n.form-grid::-webkit-scrollbar-thumb:hover {\n background: var(--gray-500, #98a2ab) !important;\n}\n\n\n/* ==========================================================================\n Grid Column Resize Handles\n ========================================================================== */\n\n.jey-col-resize {\n position: absolute;\n top: 0;\n right: -2px;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n z-index: 2;\n background: transparent;\n transition: background 0.15s;\n}\n\n.jey-col-resize:hover,\n.jey-col-resize:active {\n background: var(--primary, #2490ef);\n opacity: 0.5;\n}\n\n/* Column drag & drop */\n.grid-heading-row .grid-static-col[data-jey-draggable] {\n cursor: grab;\n}\n\n.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-left {\n box-shadow: inset 3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-right {\n box-shadow: inset -3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n/* ==========================================================================\n List View Column Resize + Reorder\n ========================================================================== */\n\n.list-row-head .list-row-col {\n position: relative;\n}\n\n/* Column dividers \u2014 hint that headers can be resized / reordered. */\n.list-row-head .list-row-col:not(:last-child) {\n border-right: 1px solid var(--border-color, #e2e6e9);\n}\n\n.list-row-head .jey-col-resize {\n position: absolute;\n top: 0;\n right: -2px;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n z-index: 3;\n background: transparent;\n transition: background 0.15s;\n}\n\n.list-row-head .jey-col-resize:hover,\n.list-row-head .jey-col-resize:active {\n background: var(--primary, #2490ef);\n opacity: 0.5;\n}\n\n.list-row-head .list-row-col[data-jey-draggable]:not(.list-subject) {\n cursor: grab;\n}\n\n.list-row-head .list-row-col.jey-drop-target.jey-drop-left {\n box-shadow: inset 3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n.list-row-head .list-row-col.jey-drop-target.jey-drop-right {\n box-shadow: inset -3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n/* ==========================================================================\n Sidebar \u2014 Full Width button\n ========================================================================== */\n\n/* .body-sidebar-bottom is a flex item of .body-sidebar (column flex).\n By default min-width:auto resolves to min-content, so it refuses to\n shrink below the natural width of its widest text \u2014 and our buttons'\n labels poke past the collapsed sidebar's right edge. Force min-width:0\n so it can match the cross-axis (50px collapsed) and clip properly. */\n.body-sidebar .body-sidebar-bottom {\n min-width: 0;\n}\n\n.jey-fullwidth-link,\n.jey-theme-switch-link,\n.jey-collapse-link {\n text-decoration: none;\n font-size: var(--text-sm);\n display: flex;\n align-items: center;\n cursor: pointer;\n margin-bottom: 8px;\n width: 100%;\n overflow: hidden;\n}\n\n.jey-fullwidth-link svg,\n.jey-theme-switch-link svg,\n.jey-collapse-link svg {\n margin: 0;\n flex: 0 0 auto;\n}\n\n.jey-fullwidth-link span,\n.jey-theme-switch-link span,\n.jey-collapse-link span {\n margin-left: 10px;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1),\n margin-left 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* When sidebar is collapsed, animate the label to zero width + zero\n margin so it smoothly slides under the icon instead of leaving a\n single ellipsized letter at the edge. */\n.body-sidebar-container:not(.expanded) .jey-fullwidth-link span,\n.body-sidebar-container:not(.expanded) .jey-theme-switch-link span,\n.body-sidebar-container:not(.expanded) .jey-collapse-link span {\n max-width: 0;\n margin-left: 0;\n}\n\n/* Hide the v16.17 native bottom row (about + collapse icon-buttons).\n Our labeled .jey-collapse-link replaces it. */\n.body-sidebar .sidebar-bottom-actions {\n display: none !important;\n}\n\n/* Frappe v16 toggles .nav-item padding 0\u21928px instantly between\n collapsed/expanded, while the sidebar width itself transitions over\n 0.3s \u2014 making the user/account button visibly jump 8px. Animate the\n padding so it stays in sync with the width. */\n.body-sidebar .nav-item {\n transition: padding 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* ==========================================================================\n Modal / Dialog \u2014 Smooth Entrance\n ========================================================================== */\n\n.modal.fade .modal-dialog {\n transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) !important;\n transform: translateY(-24px) scale(0.97);\n opacity: 0;\n}\n\n.modal.show .modal-dialog {\n transform: none;\n opacity: 1;\n}\n\n\n/* ==========================================================================\n Form Sections \u2014 Cascade Entrance\n ========================================================================== */\n\n@keyframes jey-section-in {\n from { top: -12px; }\n to { top: 0; }\n}\n\n/* Slide-only entrance \u2014 animating `opacity` here would create a persistent\n stacking context on .section-body (Firefox keeps the compositing layer\n alive after the animation completes when `fill-mode: both` keeps opacity\n fill-forward, even though opacity reaches 1). That stacking context traps\n Frappe's child-table row form (.form-in-grid, z-index 1021) under the\n freeze backdrop (#freeze.modal-backdrop, z-index 1020): the row form\n visually disappears behind the backdrop, every mouse click is captured by\n #freeze (whose handler closes the row form), and only keyboard nav works.\n Same reason we slide via `top` instead of `transform: translateY()` \u2014\n `transform` would also leave behind a stacking context.\n `position: relative` alone (without z-index) does NOT create one. */\n.form-layout .form-section .section-head,\n.form-layout .form-section .section-body {\n position: relative;\n animation: jey-section-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.form-layout .form-section:nth-child(1) .section-head,\n.form-layout .form-section:nth-child(1) .section-body { animation-delay: 0.04s; }\n.form-layout .form-section:nth-child(2) .section-head,\n.form-layout .form-section:nth-child(2) .section-body { animation-delay: 0.10s; }\n.form-layout .form-section:nth-child(3) .section-head,\n.form-layout .form-section:nth-child(3) .section-body { animation-delay: 0.16s; }\n.form-layout .form-section:nth-child(4) .section-head,\n.form-layout .form-section:nth-child(4) .section-body { animation-delay: 0.22s; }\n.form-layout .form-section:nth-child(5) .section-head,\n.form-layout .form-section:nth-child(5) .section-body { animation-delay: 0.28s; }\n.form-layout .form-section:nth-child(6) .section-head,\n.form-layout .form-section:nth-child(6) .section-body { animation-delay: 0.34s; }\n.form-layout .form-section:nth-child(7) .section-head,\n.form-layout .form-section:nth-child(7) .section-body { animation-delay: 0.40s; }\n.form-layout .form-section:nth-child(8) .section-head,\n.form-layout .form-section:nth-child(8) .section-body { animation-delay: 0.46s; }\n.form-layout .form-section:nth-child(9) .section-head,\n.form-layout .form-section:nth-child(9) .section-body { animation-delay: 0.52s; }\n.form-layout .form-section:nth-child(10) .section-head,\n.form-layout .form-section:nth-child(10) .section-body { animation-delay: 0.58s; }\n.form-layout .form-section:nth-child(11) .section-head,\n.form-layout .form-section:nth-child(11) .section-body { animation-delay: 0.64s; }\n.form-layout .form-section:nth-child(12) .section-head,\n.form-layout .form-section:nth-child(12) .section-body { animation-delay: 0.70s; }\n\n\n/* ==========================================================================\n Form Tabs \u2014 Sliding Active Indicator\n ========================================================================== */\n\n.form-tabs .nav-link {\n position: relative;\n border-bottom: none !important;\n transition: color 0.3s ease;\n}\n\n.form-tabs .nav-link::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 2px;\n background: var(--text-color);\n transform: scaleX(0);\n transform-origin: center;\n transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.form-tabs .nav-link.active::after {\n transform: scaleX(1);\n}\n\n\n/* ==========================================================================\n Dropdown Animations\n ========================================================================== */\n\n.dropdown-menu {\n display: block !important;\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n}\n\n.dropdown-menu.show {\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n animation: jey-dropdown-in 0.2s ease;\n}\n\n/* Applied by JS during Bootstrap hide so Popper's transform reset\n doesn't move the menu mid-fade. See \"Dropdown fade-out\" in jey_theme.js. */\n.dropdown-menu.jey-dropdown-hiding {\n visibility: visible !important;\n pointer-events: none;\n animation: jey-dropdown-out 0.2s ease forwards;\n}\n\n@keyframes jey-dropdown-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes jey-dropdown-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n/* ==========================================================================\n Sidebar \u2014 Smooth Collapse / Expand\n Frappe toggles .body-sidebar-placeholder between display:none and display:flex,\n so the container's fit-content width snaps on expand (the inner sidebar goes\n position:absolute, placeholder appears at 220px instantly). The collapse path\n keeps the sidebar in flow, so its width transition is already smooth.\n Override the container with an explicit width transition to make expand\n symmetric with collapse.\n ========================================================================== */\n\n@media (min-width: 576px) {\n .body-sidebar-container {\n width: 50px;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .body-sidebar-container.expanded {\n width: var(--sidebar-width);\n }\n}\n\n/* ==========================================================================\n Sidebar \u2014 No Alignment Shift Between States\n Regular items land at 15px from the sidebar's left edge (sidebar padding 8\n + icon padding 7). Two state-dependent paddings break that alignment in\n expanded mode:\n 1. Frappe's sidebar_header.js sets inline padding-left/right: 8px on\n .sidebar-header when expanded, 0 when collapsed \u2014 pushes the logo to\n 23px in expanded. Override inline style with !important.\n 2. SCSS mixin body-sidebar-expanded gives .sidebar-user-button\n padding: var(--padding-sm) only when .expanded \u2014 pushes the avatar\n to 23px and makes the button taller, which shifts the Jey buttons\n above it vertically. Zero out the padding.\n Zeroing both keeps every icon/avatar at 15px and button heights constant\n across expand/collapse, so nothing jumps on toggle.\n ========================================================================== */\n\n.body-sidebar .sidebar-header {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.body-sidebar-container.expanded .sidebar-user-button {\n padding: 0 !important;\n}\n\n/* ==========================================================================\n Sidebar \u2014 Hover Effects\n ========================================================================== */\n\n.body-sidebar .standard-sidebar-item .item-anchor {\n transition: padding-left 0.4s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.4s ease;\n}\n\n.body-sidebar .standard-sidebar-item .item-anchor:hover {\n padding-left: calc(var(--padding-xs, 8px) + 4px);\n}\n\n.body-sidebar .standard-sidebar-item .sidebar-item-icon {\n transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.body-sidebar .standard-sidebar-item .item-anchor:hover .sidebar-item-icon {\n transform: scale(1.15);\n}\n\n/* Active item \u2014 subtle left accent bar */\n.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor {\n position: relative;\n}\n\n.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 20%;\n bottom: 20%;\n width: 3px;\n border-radius: 0 3px 3px 0;\n background: var(--primary, #2490ef);\n opacity: 0.8;\n}\n\n\n/* ==========================================================================\n List View \u2014 Row Entrance Animation\n ========================================================================== */\n\n@keyframes jey-list-row-in {\n from {\n opacity: 0;\n transform: translateX(-16px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n.frappe-list .result .list-row-container:not(:first-child) {\n animation: jey-list-row-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.frappe-list .result .list-row-container:nth-child(2) { animation-delay: 0.03s; }\n.frappe-list .result .list-row-container:nth-child(3) { animation-delay: 0.05s; }\n.frappe-list .result .list-row-container:nth-child(4) { animation-delay: 0.07s; }\n.frappe-list .result .list-row-container:nth-child(5) { animation-delay: 0.09s; }\n.frappe-list .result .list-row-container:nth-child(6) { animation-delay: 0.11s; }\n.frappe-list .result .list-row-container:nth-child(7) { animation-delay: 0.13s; }\n.frappe-list .result .list-row-container:nth-child(8) { animation-delay: 0.15s; }\n.frappe-list .result .list-row-container:nth-child(9) { animation-delay: 0.17s; }\n.frappe-list .result .list-row-container:nth-child(10) { animation-delay: 0.19s; }\n.frappe-list .result .list-row-container:nth-child(11) { animation-delay: 0.21s; }\n.frappe-list .result .list-row-container:nth-child(12) { animation-delay: 0.23s; }\n.frappe-list .result .list-row-container:nth-child(13) { animation-delay: 0.25s; }\n.frappe-list .result .list-row-container:nth-child(14) { animation-delay: 0.27s; }\n.frappe-list .result .list-row-container:nth-child(15) { animation-delay: 0.29s; }\n.frappe-list .result .list-row-container:nth-child(16) { animation-delay: 0.31s; }\n.frappe-list .result .list-row-container:nth-child(17) { animation-delay: 0.33s; }\n.frappe-list .result .list-row-container:nth-child(18) { animation-delay: 0.35s; }\n.frappe-list .result .list-row-container:nth-child(19) { animation-delay: 0.37s; }\n.frappe-list .result .list-row-container:nth-child(20) { animation-delay: 0.39s; }\n.frappe-list .result .list-row-container:nth-child(21) { animation-delay: 0.41s; }\n\n\n/* ==========================================================================\n Search Dialog \u2014 Fade In / Out\n ========================================================================== */\n\n.modal:has(.cool-awesomebar-modal-footer) {\n display: block !important;\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n visibility 0.5s;\n}\n\n.modal:has(.cool-awesomebar-modal-footer) .modal-dialog {\n transform: translateY(-30px);\n transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.modal.show:has(.cool-awesomebar-modal-footer) {\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n}\n\n.modal.show:has(.cool-awesomebar-modal-footer) .modal-dialog {\n transform: none;\n}\n\n\n/* ==========================================================================\n Report Summary \u2014 Card Cascade\n ========================================================================== */\n\n@keyframes jey-summary-in {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.report-summary .summary-item {\n animation: jey-summary-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.report-summary .summary-item:nth-child(1) { animation-delay: 0.05s; }\n.report-summary .summary-item:nth-child(2) { animation-delay: 0.10s; }\n.report-summary .summary-item:nth-child(3) { animation-delay: 0.15s; }\n.report-summary .summary-item:nth-child(4) { animation-delay: 0.20s; }\n.report-summary .summary-item:nth-child(5) { animation-delay: 0.25s; }\n.report-summary .summary-item:nth-child(6) { animation-delay: 0.30s; }\n\n\n/* ==========================================================================\n Form Section Collapse / Expand \u2014 Smooth\n ========================================================================== */\n\n.form-section .collapse-indicator {\n transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n display: inline-block;\n}\n\n.form-section .section-head.collapsed .collapse-indicator {\n transform: rotate(-90deg);\n}\n\n/* Expanded section-body has no `overflow: hidden` \u2014 so Link-field autocomplete\n dropdowns (and any other overflow) are not clipped by the section boundary.\n `overflow: hidden` is applied via JS only during the collapse/expand\n transition (see jey_theme.js), then removed once the animation finishes. */\n.form-section .section-head.collapsible + .section-body {\n display: flex !important;\n flex-wrap: wrap;\n transition: max-height 0.5s ease-in-out,\n padding 0.5s ease-in-out;\n}\n\n.form-section .section-head.collapsed + .section-body {\n max-height: 0 !important;\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n overflow: hidden;\n transition: max-height 0.5s ease-in-out,\n padding 0.5s ease-in-out;\n}\n\n\n\n/* ==========================================================================\n Link Field \u2014 Awesomplete Dropdown Fade\n ========================================================================== */\n\n.awesomplete > [role=\"listbox\"] {\n animation: jey-awesomplete-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n/* Applied by JS on awesomplete-close so the listbox fades instead of\n vanishing when [hidden] is set. See \"Awesomplete fade-out\" in jey_theme.js. */\n.awesomplete > [role=\"listbox\"].jey-awesomplete-hiding {\n display: block !important;\n pointer-events: none;\n animation: jey-awesomplete-out 0.2s ease forwards;\n}\n\n@keyframes jey-awesomplete-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes jey-awesomplete-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n/* Lift the open autocomplete listbox above its siblings so the dropdown can\n spill past the section boundary without being painted over by later\n sections (which naturally paint above earlier ones in DOM order).\n Lift only the listbox itself, NOT the surrounding .form-section, because a\n z-index on the section creates a stacking context that traps Frappe's\n child-table row form (.form-in-grid, z-index 1021) below the freeze\n backdrop (#freeze.modal-backdrop, z-index 1020), leaving the screen\n unclickable when editing a row. */\n.awesomplete > ul[role=\"listbox\"]:not([hidden]) {\n z-index: 10;\n}\n\n\n/* ==========================================================================\n Input Focus \u2014 Inset Press\n ========================================================================== */\n\ninput.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\ntextarea.form-control,\n.frappe-control input:not([type=\"checkbox\"]):not([type=\"radio\"]),\n.frappe-control textarea {\n transition:\n background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\ninput.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\ntextarea.form-control:focus,\n.frappe-control input:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n.frappe-control textarea:focus {\n border-color: var(--gray-500, #a8b0b8) !important;\n outline: none;\n}\n\n\n/* ==========================================================================\n Buttons \u2014 Shine on Hover, Press on Click\n ========================================================================== */\n\n.btn {\n position: relative;\n overflow: hidden;\n transition: box-shadow 0.4s ease, background-color 0.3s ease, color 0.3s ease;\n}\n\n.btn::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: linear-gradient(105deg,\n transparent 35%,\n rgba(255, 255, 255, 0.25) 45%,\n rgba(255, 255, 255, 0.25) 55%,\n transparent 65%);\n transform: translateX(-110%);\n transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);\n pointer-events: none;\n}\n\n.btn:hover::after {\n transform: translateX(110%);\n}\n\n.btn:active {\n box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.2) !important;\n}\n\n\n/* Hide dropdown items now surfaced as sidebar buttons */\n.dropdown-menu-item[onclick*=\"toggle_full_width\"],\n.dropdown-menu-item[onclick*=\"clear_cache\"],\n.dropdown-menu-item[onclick*=\"ThemeSwitcher\"],\n.dropdown-menu-item[data-name=\"website\"],\n.dropdown-menu-item.jey-hidden-item {\n display: none !important;\n}\n\n\n/* ==========================================================================\n Desktop Icons \u2014 Shared base (all themes)\n ========================================================================== */\n\n.desktop-icon:hover {\n transform: translateY(-2px) !important;\n}\n\n.desktop-icon:active {\n transform: scale(0.97) !important;\n}\n\n.icon-container.jey-chrome-done {\n width: 72px !important;\n height: 72px !important;\n padding: 0 !important;\n border-radius: 50% !important;\n background: none !important;\n overflow: visible !important;\n position: relative !important;\n}\n\n.icon-container.jey-chrome-done:hover {\n transform: none !important;\n}\n\n.icon-container.folder-icon.jey-chrome-done {\n box-shadow: none !important;\n}\n\n/* ==========================================================================\n Desktop Modal (module icons picker) \u2014 caption overflow + clean heading\n ========================================================================== */\n\n/* Give the 4-col icon grid room between cells so captions don't collide */\n#desktop-modal .icons-container .icons {\n gap: 12px 8px !important;\n padding: 12px 0 !important;\n}\n\n/* Each icon: constrain to its grid track and center contents */\n#desktop-modal .desktop-icon {\n min-width: 0 !important;\n display: flex !important;\n flex-direction: column !important;\n align-items: center !important;\n text-align: center !important;\n}\n\n/* Caption wraps to 2 lines max, truncates with ellipsis, never overflows column */\n#desktop-modal .desktop-icon .icon-caption {\n width: 100% !important;\n max-width: 100% !important;\n padding: 0 4px !important;\n margin-top: 14px !important;\n}\n\n#desktop-modal .desktop-icon .icon-title {\n width: 100% !important;\n max-width: 100% !important;\n display: -webkit-box !important;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n overflow-wrap: anywhere !important;\n word-break: break-word !important;\n line-height: 1.25 !important;\n white-space: normal !important;\n}\n\n/* Strip the themed gradient/border off the desktop-modal header \u2014 title only, no bar */\n#desktop-modal .modal-header.desktop-modal-heading {\n background: transparent !important;\n border-bottom: 0 !important;\n box-shadow: none !important;\n}\n\n#desktop-modal .modal-header.desktop-modal-heading .modal-title,\n#desktop-modal .modal-header.desktop-modal-heading .title-input-label span {\n background: transparent !important;\n box-shadow: none !important;\n text-shadow: none !important;\n}\n\n/* Everything inside the desktop-modal renders text crisply \u2014 no inherited blur */\n#desktop-modal .icon-title,\n#desktop-modal .icon-caption {\n text-shadow: none !important;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* Grow to content: no inner scrollbar when icons fit */\n#desktop-modal .modal-body.desktop-modal-body {\n overflow: visible !important;\n max-height: none !important;\n}\n\n#desktop-modal .icons-container {\n overflow: visible !important;\n max-height: none !important;\n}\n\n/* ==========================================================================\n Icon Animations \u2014 Shared (all themes)\n ========================================================================== */\n\n/* Framework \u2014 gentle float */\n.ico-framework { animation: ico-float 5s ease-in-out infinite; transform-origin: center; }\n@keyframes ico-float {\n 0%,100% { transform: translateY(0) rotate(0deg); opacity: 0.85; }\n 30% { transform: translateY(-2px) rotate(0.8deg); opacity: 1; }\n 70% { transform: translateY(0.5px) rotate(-0.4deg); opacity: 0.9; }\n}\n\n.ico-org { animation: ico-org 6s ease-in-out infinite; transform-origin: center bottom; }\n@keyframes ico-org {\n 0%,100% { transform: scaleY(1) scaleX(1); }\n 25% { transform: scaleY(1.03) scaleX(0.99); }\n 50% { transform: scaleY(1.05) scaleX(0.98); }\n 75% { transform: scaleY(1.02) scaleX(1); }\n}\n\n.ico-acc .acc-btn { animation: ico-press 3s ease-in-out infinite; }\n@keyframes ico-press { 0%,25%,100% { opacity: 0.5; stroke-width: 2.5; } 12% { opacity: 1; stroke-width: 3.2; } }\n\n.ico-assets { animation: ico-safe 6s ease-in-out infinite; transform-origin: center; }\n.ico-assets .lock-dot { animation: ico-blink 5s ease-in-out infinite; }\n@keyframes ico-safe { 0%,100% { transform: translateY(0); } 40% { transform: translateY(-0.6px); } 60% { transform: translateY(0.3px); } }\n@keyframes ico-blink { 0%,35%,65%,100% { opacity: 1; } 50% { opacity: 0.15; } }\n\n.ico-buying { animation: ico-cart 6s ease-in-out infinite; transform-origin: 12px 21px; }\n@keyframes ico-cart { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(1.5px) rotate(0.8deg); } 50% { transform: translateX(-0.5px) rotate(-0.3deg); } 80% { transform: translateX(0.8px) rotate(0.4deg); } }\n\n.ico-mfg .gear1 { animation: ico-spin 9s linear infinite; transform-origin: 9px 12px; }\n.ico-mfg .gear2 { animation: ico-spin-r 7s linear infinite; transform-origin: 17px 8px; }\n@keyframes ico-spin { to { transform: rotate(360deg); } }\n@keyframes ico-spin-r { to { transform: rotate(-360deg); } }\n\n.ico-proj .col1 { animation: ico-g1 5s ease-in-out infinite; transform-origin: 5.5px 21px; }\n.ico-proj .col2 { animation: ico-g2 5s ease-in-out infinite 0.5s; transform-origin: 12.5px 15px; }\n.ico-proj .col3 { animation: ico-g3 5s ease-in-out infinite 1s; transform-origin: 19.5px 18px; }\n@keyframes ico-g1 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(0.85); opacity: 1; } }\n@keyframes ico-g2 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(1.15); opacity: 1; } }\n@keyframes ico-g3 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(0.88); opacity: 1; } }\n\n.ico-quality { animation: ico-shield 6s ease-in-out infinite; transform-origin: 12px 14px; }\n@keyframes ico-shield { 0%,100% { transform: rotate(0deg) scale(1); } 15% { transform: rotate(1.5deg) scale(1.03); } 35% { transform: rotate(-0.5deg) scale(1.01); } 55% { transform: rotate(-1.5deg) scale(1.03); } 75% { transform: rotate(0.5deg) scale(1.01); } }\n\n.ico-selling { animation: ico-sell 4s ease-in-out infinite; transform-origin: center; }\n.ico-selling .arrow-head { animation: ico-up 4s ease-in-out infinite; }\n@keyframes ico-sell { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }\n@keyframes ico-up { 0%,100% { transform: translate(0,0); } 30% { transform: translate(1px, -1.5px); } 60% { transform: translate(2px, -2.5px); } }\n\n.ico-stock { animation: ico-bob 5s ease-in-out infinite; transform-origin: center; }\n@keyframes ico-bob { 0%,100% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(2deg) translateY(-0.7px); } 50% { transform: rotate(-1deg) translateY(0.3px); } 80% { transform: rotate(1.5deg) translateY(-0.4px); } }\n\n.ico-sub .person-l { animation: ico-rl 6s ease-in-out infinite; transform-origin: 8px 12px; }\n.ico-sub .person-r { animation: ico-rr 6s ease-in-out infinite; transform-origin: 16px 12px; }\n@keyframes ico-rl { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(1px) rotate(1deg); } 60% { transform: translateX(1.5px) rotate(0.5deg); } }\n@keyframes ico-rr { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-1px) rotate(-1deg); } 60% { transform: translateX(-1.5px) rotate(-0.5deg); } }\n\n.ico-settings { animation: ico-gear-main 12s linear infinite; transform-origin: center; }\n@keyframes ico-gear-main { to { transform: rotate(360deg); } }\n\n/* HR \u2014 plus sign pulsing */\n.ico-hr .plus-v { animation: ico-pv 4s ease-in-out infinite; transform-origin: center; }\n.ico-hr .plus-h { animation: ico-ph 4s ease-in-out infinite 0.3s; transform-origin: center; }\n@keyframes ico-pv { 0%,100% { opacity: 0.4; stroke-width: 1.8; } 50% { opacity: 1; stroke-width: 2.4; } }\n@keyframes ico-ph { 0%,100% { opacity: 0.4; stroke-width: 1.8; } 50% { opacity: 1; stroke-width: 2.4; } }\n\n/* ==========================================================================\n Theme Switcher Dialog\n ========================================================================== */\n\n.jey-theme-grid {\n display: flex;\n gap: 20px;\n padding: 20px;\n justify-content: center;\n}\n\n.jey-theme-card {\n cursor: pointer;\n text-align: center;\n padding: 16px;\n border-radius: 12px;\n border: 2px solid transparent;\n transition: border-color 0.2s, background 0.2s;\n min-width: 140px;\n}\n\n.jey-theme-card:hover {\n background: var(--subtle-fg, #f5f5f5);\n}\n\n.jey-theme-card.selected {\n border-color: var(--primary, #2490ef);\n background: var(--subtle-fg, #f5f5f5);\n}\n\n.jey-theme-preview {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n margin: 0 auto 12px;\n position: relative;\n overflow: hidden;\n}\n\n.jey-theme-preview--chrome {\n background: conic-gradient(from 140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg);\n box-shadow: 0 3px 8px rgba(0,0,0,0.15), inset 0 1px 1px rgba(255,255,255,0.5);\n}\n\n.jey-theme-preview--chrome .jey-theme-preview-icon {\n position: absolute;\n inset: 9px;\n border-radius: 50%;\n background: linear-gradient(168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%);\n}\n\n.jey-theme-preview--modern {\n border-radius: 16px;\n background: rgba(255, 255, 255, 0.4);\n -webkit-backdrop-filter: blur(6px);\n backdrop-filter: blur(6px);\n border: 1px solid rgba(255, 255, 255, 0.5);\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n}\n\n.jey-theme-preview--modern .jey-theme-preview-icon {\n position: absolute;\n inset: 22px;\n border-radius: 6px;\n background: #4f46e5;\n opacity: 0.25;\n}\n\n.jey-theme-label {\n font-weight: 600;\n font-size: var(--text-base);\n margin-bottom: 2px;\n}\n\n.jey-theme-info {\n font-size: var(--text-sm);\n color: var(--text-muted);\n}\n\n/* ==========================================================================\n Module Widget Cards \u2014 Entrance & Hover Animations\n ========================================================================== */\n\n/* --- Animation variant #2 (final): Slide-up entrance + Accent Bar hover --- */\n\n/* Entrance: fade-in slide-up (from variant #1) */\n.ce-block .links-widget-box,\n.ce-block .number-widget-box {\n opacity: 0;\n transform: translateY(24px) scale(0.97);\n animation: jey-card-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;\n border-radius: var(--border-radius-lg, 12px);\n transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 0.35s ease;\n position: relative;\n}\n\n/* Number card value \u2014 delayed fade-in after card entrance */\n@keyframes jey-number-in {\n from { opacity: 0; transform: translateY(6px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n.number-widget-box .widget-content .number {\n animation: jey-number-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both;\n}\n\n/* Allow dropdown menus (card actions) to escape the widget box.\n Without this, .widget-control .dropdown-menu is clipped/hidden behind\n the widget because Popper renders it as a sibling inside the box. */\n.ce-block .links-widget-box .widget-control .dropdown-menu,\n.ce-block .number-widget-box .widget-control .dropdown-menu {\n z-index: 1050;\n}\n\n/* Stagger delays */\n.ce-block:nth-child(1) .links-widget-box,\n.ce-block:nth-child(1) .number-widget-box { animation-delay: 0.00s; }\n.ce-block:nth-child(2) .links-widget-box,\n.ce-block:nth-child(2) .number-widget-box { animation-delay: 0.06s; }\n.ce-block:nth-child(3) .links-widget-box,\n.ce-block:nth-child(3) .number-widget-box { animation-delay: 0.12s; }\n.ce-block:nth-child(4) .links-widget-box,\n.ce-block:nth-child(4) .number-widget-box { animation-delay: 0.18s; }\n.ce-block:nth-child(5) .links-widget-box,\n.ce-block:nth-child(5) .number-widget-box { animation-delay: 0.24s; }\n.ce-block:nth-child(6) .links-widget-box,\n.ce-block:nth-child(6) .number-widget-box { animation-delay: 0.30s; }\n.ce-block:nth-child(7) .links-widget-box,\n.ce-block:nth-child(7) .number-widget-box { animation-delay: 0.36s; }\n.ce-block:nth-child(8) .links-widget-box,\n.ce-block:nth-child(8) .number-widget-box { animation-delay: 0.42s; }\n.ce-block:nth-child(9) .links-widget-box,\n.ce-block:nth-child(9) .number-widget-box { animation-delay: 0.48s; }\n.ce-block:nth-child(10) .links-widget-box,\n.ce-block:nth-child(10) .number-widget-box { animation-delay: 0.54s; }\n.ce-block:nth-child(11) .links-widget-box,\n.ce-block:nth-child(11) .number-widget-box { animation-delay: 0.60s; }\n.ce-block:nth-child(12) .links-widget-box,\n.ce-block:nth-child(12) .number-widget-box { animation-delay: 0.66s; }\n\n@keyframes jey-card-in {\n from {\n opacity: 0;\n transform: translateY(24px) scale(0.97);\n }\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n/* Hover: soft bottom accent line + lift */\n.ce-block .links-widget-box::after,\n.ce-block .number-widget-box::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 10%;\n right: 10%;\n height: 2.5px;\n border-radius: 2px 2px 0 0;\n background: var(--primary, #2490ef);\n transform: scaleX(0);\n transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);\n transform-origin: center;\n}\n\n.ce-block .links-widget-box:hover::after,\n.ce-block .number-widget-box:hover::after {\n transform: scaleX(1);\n}\n\n.ce-block .links-widget-box:hover,\n.ce-block .number-widget-box:hover {\n transform: translateY(-3px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08),\n 0 2px 6px rgba(0, 0, 0, 0.04);\n}\n\n/* Lift widget above its siblings while hovered or while its card-actions\n dropdown is open, so the dropdown menu (which lives inside the widget's\n own stacking context due to transform) is not covered by neighbours. */\n.ce-block .links-widget-box:hover,\n.ce-block .number-widget-box:hover,\n.ce-block .links-widget-box:focus-within,\n.ce-block .number-widget-box:focus-within {\n z-index: 100;\n}\n\n.ce-block .links-widget-box:has(.dropdown-menu.show),\n.ce-block .number-widget-box:has(.dropdown-menu.show) {\n z-index: 200;\n}\n\n\n/* Link items: colored left accent bar slides in */\n.links-widget-box .link-item {\n position: relative;\n transition: background 0.25s ease, transform 0.25s ease;\n border-radius: var(--border-radius, 8px);\n overflow: hidden;\n}\n\n.links-widget-box .link-item:hover {\n transform: translateX(6px);\n background: var(--subtle-fg, rgba(0, 0, 0, 0.02));\n}\n\n.links-widget-box .link-item .es-icon {\n display: none !important;\n}\n\n\n/* ==========================================================================\n Select Field \u2014 Custom chevron icon\n ========================================================================== */\n\n.select-icon svg {\n display: none !important;\n}\n\n.select-icon {\n top: 0 !important;\n bottom: 0 !important;\n display: flex !important;\n align-items: center !important;\n}\n\n.select-icon::after {\n content: \"\" !important;\n display: block;\n width: 12px;\n height: 12px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n/* ==========================================================================\n Empty State \u2014 Custom folder icon\n ========================================================================== */\n\n.msg-box .icon-xl {\n display: none !important;\n}\n\n.msg-box .mb-4 {\n display: flex;\n justify-content: center;\n}\n\n.msg-box .mb-4::after {\n content: \"\" !important;\n display: block;\n width: 48px;\n height: 48px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b0b8c0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 16 12 14 15 10 15 8 12 2 12'/%3E%3Cpath d='M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E\");\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n/* ==========================================================================\n Hide \"Getting Started\" onboarding panels\n ========================================================================== */\n\n.user-onboarding {\n display: none !important;\n}\n\n/* ==========================================================================\n Comment-count icon override\n jey_theme.js swaps the sprite href from #es-line-chat-alt (filled)\n to a lucide stroke-based icon. The SVG element still carries .es-icon\n (fill: currentColor; stroke-width: 0), which would render the new\n icon as a solid black shape \u2014 force stroke rendering here.\n ========================================================================== */\n.comment-count svg {\n fill: none !important;\n stroke: currentColor !important;\n stroke-width: 1.5 !important;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n/* ==========================================================================\n Activity panel & comment input \u2014 transparent background\n Frappe core paints .activity-title / .timeline-actions with var(--bg-color),\n .frappe-control .ql-editor with var(--control-bg), and the form footer's\n .comment-box wraps the input area; strip them all so the activity panel\n and comment composer blend with the form background.\n ========================================================================== */\n.new-timeline .activity-title,\n.new-timeline .timeline-actions,\n.comment-box,\n.comment-input-wrapper,\n.comment-input-wrapper .ql-container,\n.comment-input-wrapper .frappe-control .ql-editor {\n background: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n}\n\n/* List view \u2014 period (Between) filter sized to fit \"DD/MM/YYYY to DD/MM/YYYY\". */\n.standard-filter-section .frappe-control.jey-period-filter {\n flex: 0 0 auto;\n min-width: 200px;\n}\n.standard-filter-section .frappe-control.jey-period-filter input {\n min-width: 200px;\n}\n\n/* Grid \"Configure Columns\" dialog \u2014 let rows grow when label wraps.\n Frappe hardcodes height:32px inline on each .fields_order row in\n grid_row.js, which clips long translated labels (eg. Azerbaijani\n \"\u018Fsas Tarif (Anbar \u00D6l\u00E7\u00FC Vahidin\u0259 g\u00F6r\u0259)\") so the wrapped portion\n overflows into the next row and into the help text below. Switch\n to flex centering with min-height so rows grow with content. */\n.control-input.fields_order {\n height: auto !important;\n min-height: 32px;\n display: flex;\n align-items: center;\n}\n.control-input.fields_order > .row {\n width: 100%;\n align-items: center;\n margin: 0;\n}\n.control-input.fields_order > .row > [class*=\"col-\"] {\n padding-top: 0 !important;\n margin-top: 0 !important;\n}\n\n/* ===== theme_chrome.css ===== */\n/* ==========================================================================\n THEME: Chrome [data-jey-theme=\"chrome\"]\n Metallic chrome button with conic-gradient rings and rotating glow.\n ========================================================================== */\n\n@keyframes jey-chrome-rotate-glow {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n@keyframes jey-chrome-face-light {\n 0% { background: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n 25% { background: radial-gradient(circle at 75% 25%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n 50% { background: radial-gradient(circle at 70% 75%, rgba(255,255,255,0.35) 0%, transparent 55%); }\n 75% { background: radial-gradient(circle at 25% 70%, rgba(255,255,255,0.35) 0%, transparent 55%); }\n 100% { background: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n}\n\n@keyframes jey-chrome-refl-drift {\n 0%, 100% { top: 12%; opacity: 0.7; }\n 50% { top: 18%; opacity: 0.5; }\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome {\n width: 72px; height: 72px; border-radius: 50%; position: relative;\n background: radial-gradient(ellipse at 35% 20%, rgba(255,255,255,0.7) 0%, transparent 55%), linear-gradient(180deg, #e0e0e0 0%, #b8b8b8 100%);\n box-shadow: 0 4px 10px rgba(0,0,0,0.18), 0 1px 3px rgba(0,0,0,0.1), inset 0 1px 1px rgba(255,255,255,0.7);\n transition: box-shadow 0.3s ease;\n}\n\n[data-jey-theme=\"chrome\"] .desktop-icon:hover .jey-chrome {\n box-shadow: 0 6px 16px rgba(0,0,0,0.22), 0 1px 3px rgba(0,0,0,0.12), 0 0 14px rgba(255,255,255,0.2), inset 0 1px 1px rgba(255,255,255,0.7);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-ring {\n position: absolute; inset: 2px; border-radius: 50%;\n background: conic-gradient(from 140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg);\n box-shadow: inset 0 1px 2px rgba(0,0,0,0.2); overflow: hidden;\n}\n\n[data-jey-theme=\"chrome\"] .jey-ring-glow {\n position: absolute; inset: -10px; border-radius: 50%;\n background: conic-gradient(from 0deg, transparent 0deg, transparent 140deg, rgba(255,255,255,0.55) 165deg, rgba(255,255,255,0.8) 180deg, rgba(255,255,255,0.55) 195deg, transparent 220deg, transparent 360deg);\n animation: jey-chrome-rotate-glow 8s linear infinite; pointer-events: none;\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-gap {\n position: absolute; inset: 5px; border-radius: 50%;\n background: linear-gradient(180deg, #888 0%, #aaa 50%, #999 100%);\n box-shadow: inset 0 1px 3px rgba(0,0,0,0.35), inset 0 -1px 1px rgba(255,255,255,0.2);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-ring-inner {\n position: absolute; inset: 6px; border-radius: 50%;\n background: conic-gradient(from 200deg, #b0b0b0 0deg, #eee 30deg, #999 70deg, #ddd 110deg, #aaa 160deg, #f0f0f0 200deg, #909090 250deg, #ccc 300deg, #b0b0b0 360deg);\n box-shadow: inset 0 1px 1px rgba(0,0,0,0.15);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-face {\n position: absolute; inset: 9px; border-radius: 50%; overflow: hidden;\n background: linear-gradient(168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%);\n box-shadow: inset 0 3px 7px rgba(255,255,255,0.7), inset 0 -3px 6px rgba(0,0,0,0.06);\n display: flex; align-items: center; justify-content: center;\n}\n\n[data-jey-theme=\"chrome\"] .jey-face-glow {\n position: absolute; inset: 0; border-radius: 50%;\n animation: jey-chrome-face-light 8s ease-in-out infinite;\n pointer-events: none; z-index: 1;\n}\n\n[data-jey-theme=\"chrome\"] .jey-face-reflection {\n position: absolute; top: 15%; left: 10%; width: 80%; height: 30%;\n background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.15) 60%, transparent 100%);\n border-radius: 50%; pointer-events: none; z-index: 1;\n animation: jey-chrome-refl-drift 10s ease-in-out infinite;\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-face .jey-icon {\n width: 24px !important; height: 24px !important;\n stroke: #505050 !important; fill: none !important;\n stroke-width: 1.8 !important; stroke-linecap: round !important; stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.5)) !important;\n position: relative; z-index: 2;\n}\n\n\n/* ==========================================================================\n FULL APP CHROME THEME\n Real metallic chrome with 45\u00B0 multi-stop reflective gradients,\n brushed metal textures, beveled edges, and conic-gradient accents.\n ========================================================================== */\n\n/* --- Shine sweep animation for interactive elements --- */\n@keyframes jey-chrome-shine {\n 0% { transform: translateX(-100%) skewX(-15deg); }\n 100% { transform: translateX(200%) skewX(-15deg); }\n}\n\n/* ==========================================================================\n CSS Variable Overrides\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] {\n /* --- Surfaces --- */\n --bg-color: #d8d8d8;\n --fg-color: #e8e8e8;\n --card-bg: #e0e0e0;\n --subtle-accent: #d4d4d4;\n --subtle-fg: #d0d0d0;\n --fg-hover-color: #ccc;\n --highlight-color: #d4d4d4;\n --navbar-bg: #d0d0d0;\n --modal-bg: #ddd;\n --toast-bg: #ddd;\n --popover-bg: #e0e0e0;\n --control-bg: #d5d5d5;\n --control-bg-on-gray: #ccc;\n --awesomebar-focus-bg: #e8e8e8;\n --disabled-control-bg: #d0d0d0;\n --skeleton-bg: #c8c8c8;\n --surface-menu-bar: #d4d4d4;\n --surface-white: #e0e0e0;\n --surface-gray-1: #d8d8d8;\n --surface-gray-2: #d0d0d0;\n --surface-gray-3: #c8c8c8;\n --surface-gray-4: #bbb;\n --surface-modal: #ddd;\n --placeholder-color: #ccc;\n\n /* --- Sidebar --- */\n --sidebar-hover-color: #c8c8c8;\n --sidebar-active-color: #d8d8d8;\n --sidebar-border-color: #aaa;\n --divider-color: #b0b0b0;\n\n /* --- Text --- */\n --heading-color: #333;\n --text-color: #404040;\n --text-neutral: #333;\n --text-muted: #666;\n --text-light: #888;\n --text-dark: #f0f0f0;\n --disabled-text-color: #888;\n --ink-gray-7: #555;\n --ink-gray-8: #404040;\n --ink-gray-9: #333;\n\n /* --- Borders --- */\n --border-color: #aaa;\n --dark-border-color: #999;\n --table-border-color: #aaa;\n --btn-group-border-color: #999;\n --outline-gray-1: #b0b0b0;\n --outline-gray-2: #999;\n --outline-gray-modals: #aaa;\n\n /* --- Primary / Buttons --- */\n --primary: #555;\n --brand-color: #555;\n --btn-primary: #777;\n --btn-default-bg: #ccc;\n --btn-default-hover-bg: #bbb;\n --btn-ghost-hover-bg: #c0c0c0;\n --border-primary: #777;\n\n /* --- Shadows (beveled metallic) --- */\n --shadow-xs: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.5);\n --shadow-sm: 1px 1px 3px rgba(0,0,0,0.18), -1px -1px 2px rgba(255,255,255,0.45);\n --shadow-base: 2px 2px 4px rgba(0,0,0,0.15), -1px -1px 2px rgba(255,255,255,0.4);\n --shadow-md: 2px 2px 6px rgba(0,0,0,0.18), -1px -1px 3px rgba(255,255,255,0.35);\n --shadow-lg: 3px 3px 10px rgba(0,0,0,0.15), -2px -2px 5px rgba(255,255,255,0.3);\n --shadow-xl: 4px 4px 16px rgba(0,0,0,0.18), -2px -2px 6px rgba(255,255,255,0.25);\n --shadow-2xl: 6px 6px 24px rgba(0,0,0,0.2), -3px -3px 8px rgba(255,255,255,0.2);\n --shadow-inset: inset 0px -1px 0px #999;\n --btn-shadow: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.4);\n --card-shadow: 2px 2px 6px rgba(0,0,0,0.12), -1px -1px 3px rgba(255,255,255,0.4);\n --modal-shadow: 6px 6px 30px rgba(0,0,0,0.3), -3px -3px 10px rgba(255,255,255,0.15);\n --awesomebar-shadow: 3px 3px 12px rgba(0,0,0,0.15), -2px -2px 6px rgba(255,255,255,0.3);\n\n /* --- Focus rings --- */\n --focus-default: 0 0 0 2px rgba(150,150,150,0.5);\n\n /* --- Scrollbar --- */\n --scrollbar-thumb-color: #999;\n --scrollbar-track-color: #c8c8c8;\n\n /* --- Checkbox / Switch --- */\n --switch-bg: #aaa;\n --checkbox-color: #555;\n --checkbox-gradient: linear-gradient(180deg, #777 0%, #666 100%);\n\n /* --- Timeline --- */\n --timeline-badge-color: #555;\n --timeline-badge-bg: #ccc;\n\n /* --- Date picker --- */\n --date-active-bg: #777;\n --date-active-text: #f0f0f0;\n --date-range-bg: #ccc;\n\n /* --- Progress / Misc --- */\n --progress-bar-bg: #777;\n --code-block-bg: #444;\n --code-block-text: #ccc;\n}\n\n\n/* ==========================================================================\n Body \u2014 Brushed Metal Background\n 3 layered repeating-gradients at different lengths = realistic grain\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] body {\n background:\n radial-gradient(ellipse at 25% 15%, rgba(255,255,255,0.45) 0%, transparent 50%),\n radial-gradient(ellipse at 80% 80%, rgba(255,255,255,0.2) 0%, transparent 45%),\n radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.03) 0%, transparent 70%),\n linear-gradient(168deg, #d8d8d8 0%, #c4c4c4 40%, #b8b8b8 70%, #c8c8c8 100%) !important;\n background-attachment: fixed !important;\n}\n\n[data-jey-theme=\"chrome\"] .page-container {\n background: transparent !important;\n}\n\n\n/* ==========================================================================\n Navbar \u2014 Reflective Chrome Bar\n 45\u00B0 multi-stop gradient simulating polished metal reflection\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .navbar {\n background:\n linear-gradient(45deg, #aaa 2%, #ddd 8%, #bbb 18%, #e8e8e8 30%, #ccc 45%, #eee 55%, #bbb 68%, #ddd 80%, #aaa 95%) !important;\n border-bottom: 1px solid #888 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.08),\n 0 2px 4px rgba(0,0,0,0.15) !important;\n}\n\n[data-jey-theme=\"chrome\"] .navbar .navbar-nav .nav-link {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .navbar .navbar-nav .nav-link:hover {\n color: #222 !important;\n background: linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.1) 100%) !important;\n border-radius: 6px;\n}\n\n\n/* ==========================================================================\n Awesomebar \u2014 Sunken Metal Slot\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .search-bar input {\n background: linear-gradient(180deg, #c0c0c0 0%, #d0d0d0 100%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n inset 0 2px 4px rgba(0,0,0,0.15),\n inset 0 0 0 1px rgba(0,0,0,0.05),\n 0 1px 0 rgba(255,255,255,0.5) !important;\n color: #333 !important;\n border-radius: 6px !important;\n}\n\n[data-jey-theme=\"chrome\"] .search-bar input:focus {\n background: linear-gradient(180deg, #d5d5d5 0%, #e0e0e0 100%) !important;\n border-color: #888 !important;\n box-shadow:\n inset 0 1px 3px rgba(0,0,0,0.1),\n 0 0 0 2px rgba(150,150,150,0.3),\n 0 1px 0 rgba(255,255,255,0.4) !important;\n}\n\n[data-jey-theme=\"chrome\"] .search-bar .search-icon {\n color: #777 !important;\n}\n\n\n/* ==========================================================================\n Sidebar \u2014 Brushed Metal Panel\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .body-sidebar-container {\n background: linear-gradient(160deg, #b8b8b8 0%, #f0f0f0 12%, #c0c0c0 28%, #f4f4f4 42%, #b8b8b8 58%, #ededed 72%, #aaa 88%, #ddd 100%) !important;\n border-right: 1px solid #888 !important;\n box-shadow:\n inset -1px 0 0 rgba(255,255,255,0.6),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.1),\n 2px 0 8px rgba(0,0,0,0.12) !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-top,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-bottom,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-cards {\n background: transparent !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .standard-sidebar-item .item-anchor:hover {\n background: linear-gradient(90deg, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor {\n background: linear-gradient(45deg, #bbb 5%, #ddd 30%, #ccc 60%, #ddd 90%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.08),\n 1px 1px 2px rgba(0,0,0,0.1),\n -1px -1px 1px rgba(255,255,255,0.3) !important;\n border-radius: 8px;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .sidebar-item-icon {\n color: #666 !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.5));\n}\n\n\n/* ==========================================================================\n Context Menu \u2014 Themed icons\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .frappe-menu .menu-item-icon .jey-icon {\n width: 20px !important;\n height: 20px !important;\n stroke: #555 !important;\n fill: none !important;\n stroke-width: 1.8 !important;\n stroke-linecap: round !important;\n stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.4)) !important;\n}\n\n\n/* ==========================================================================\n Sidebar Header \u2014 Themed icon\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .sidebar-header .header-logo .jey-icon {\n width: 22px !important;\n height: 22px !important;\n stroke: #555 !important;\n fill: none !important;\n stroke-width: 1.8 !important;\n stroke-linecap: round !important;\n stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.4)) !important;\n}\n\n\n/* ==========================================================================\n Primary Buttons \u2014 Polished Chrome with Shine\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .btn-primary {\n background: linear-gradient(45deg, #666 5%, #aaa 10%, #888 30%, #999 50%, #888 70%, #aaa 85%, #666 95%) !important;\n color: #f0f0f0 !important;\n border: 1px solid #555 !important;\n box-shadow:\n 2px 2px 4px rgba(0,0,0,0.2),\n -1px -1px 2px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.3),\n inset 0 -1px 0 rgba(0,0,0,0.15),\n inset 2px 2px 5px rgba(0,0,0,0),\n inset -1px -1px 2px rgba(255,255,255,0) !important;\n text-shadow: 0 -1px 0 rgba(0,0,0,0.25);\n position: relative;\n overflow: hidden;\n transition:\n box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary::before {\n content: \"\";\n position: absolute;\n top: 0; left: -50%; width: 30%; height: 100%;\n background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);\n transform: skewX(-15deg);\n transition: left 0.4s ease;\n pointer-events: none;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:hover::before {\n left: 120%;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:hover {\n background: linear-gradient(45deg, #777 5%, #bbb 10%, #999 30%, #aaa 50%, #999 70%, #bbb 85%, #777 95%) !important;\n box-shadow:\n 2px 2px 6px rgba(0,0,0,0.25),\n -1px -1px 3px rgba(255,255,255,0.2),\n inset 0 1px 0 rgba(255,255,255,0.35),\n inset 0 -1px 0 rgba(0,0,0,0.15),\n inset 2px 2px 5px rgba(0,0,0,0),\n inset -1px -1px 2px rgba(255,255,255,0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:active {\n background: linear-gradient(45deg, #555 5%, #888 10%, #777 30%, #888 50%, #777 70%, #888 85%, #555 95%) !important;\n box-shadow:\n 2px 2px 4px rgba(0,0,0,0),\n -1px -1px 2px rgba(255,255,255,0),\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset 3px 3px 7px rgba(0,0,0,0.35),\n inset -1px -1px 2px rgba(255,255,255,0.12) !important;\n transition: box-shadow 0.08s ease-out !important;\n}\n\n\n/* ==========================================================================\n Default/Secondary Buttons \u2014 Brushed Metal\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .btn-default,\n[data-jey-theme=\"chrome\"] .btn-secondary {\n background: linear-gradient(45deg, #bbb 5%, #eee 10%, #ccc 30%, #e0e0e0 50%, #ccc 70%, #eee 85%, #bbb 95%) !important;\n border: 1px solid #999 !important;\n color: #444 !important;\n box-shadow:\n 1px 1px 3px rgba(0,0,0,0.12),\n -1px -1px 2px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n inset 2px 2px 4px rgba(0,0,0,0),\n inset -1px -1px 1px rgba(255,255,255,0) !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n transition:\n box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-default:hover,\n[data-jey-theme=\"chrome\"] .btn-secondary:hover {\n background: linear-gradient(45deg, #c0c0c0 5%, #f2f2f2 10%, #d4d4d4 30%, #e8e8e8 50%, #d4d4d4 70%, #f2f2f2 85%, #c0c0c0 95%) !important;\n border-color: #888 !important;\n box-shadow:\n 2px 2px 4px rgba(0,0,0,0.15),\n -1px -1px 2px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n inset 2px 2px 4px rgba(0,0,0,0),\n inset -1px -1px 1px rgba(255,255,255,0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-default:active,\n[data-jey-theme=\"chrome\"] .btn-secondary:active {\n background: linear-gradient(45deg, #aaa 5%, #d8d8d8 10%, #bbb 30%, #ccc 50%, #bbb 70%, #d8d8d8 85%, #aaa 95%) !important;\n box-shadow:\n 1px 1px 3px rgba(0,0,0,0),\n -1px -1px 2px rgba(255,255,255,0),\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset 3px 3px 6px rgba(0,0,0,0.3),\n inset -1px -1px 1px rgba(255,255,255,0.15) !important;\n transition: box-shadow 0.08s ease-out !important;\n}\n\n/* Danger */\n[data-jey-theme=\"chrome\"] .btn-danger {\n background: linear-gradient(45deg, #b33 5%, #e88 10%, #c55 30%, #d77 50%, #c55 70%, #e88 85%, #b33 95%) !important;\n color: #fff !important;\n border: 1px solid #944 !important;\n box-shadow:\n 2px 2px 4px rgba(0,0,0,0.2),\n -1px -1px 2px rgba(255,255,255,0.1),\n inset 0 1px 0 rgba(255,255,255,0.25) !important;\n text-shadow: 0 -1px 0 rgba(0,0,0,0.2);\n}\n\n[data-jey-theme=\"chrome\"] .btn-danger:hover {\n background: linear-gradient(45deg, #c44 5%, #f99 10%, #d66 30%, #e88 50%, #d66 70%, #f99 85%, #c44 95%) !important;\n}\n\n/* Ghost */\n[data-jey-theme=\"chrome\"] .btn-ghost:hover {\n background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n\n/* ==========================================================================\n Input Fields \u2014 Sunken Metal Inset\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\n[data-jey-theme=\"chrome\"] textarea.form-control {\n background: #d0d0d0 !important;\n border: 1px solid #999 !important;\n color: #333 !important;\n box-shadow:\n inset 1px 1px 2px rgba(0,0,0,0.10),\n inset -1px -1px 1px rgba(255,255,255,0.25),\n inset 0 1px 1px rgba(0,0,0,0.04) !important;\n transition:\n background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n[data-jey-theme=\"chrome\"] textarea.form-control:focus {\n background: #cbcbcb !important;\n border-color: #777 !important;\n box-shadow:\n inset 4px 4px 8px rgba(0,0,0,0.28),\n inset -1px -1px 1px rgba(255,255,255,0.15),\n inset 0 3px 5px rgba(0,0,0,0.18) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-control:disabled,\n[data-jey-theme=\"chrome\"] .form-control[disabled] {\n background: #d8d8d8 !important;\n color: #888 !important;\n box-shadow: inset 1px 1px 2px rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-control .control-label,\n[data-jey-theme=\"chrome\"] .frappe-control label {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] select.form-control,\n[data-jey-theme=\"chrome\"] select.input-with-feedback {\n background: #d0d0d0 !important;\n}\n\n\n/* ==========================================================================\n Forms / Cards \u2014 Raised Metal Panels\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .form-page {\n background:\n linear-gradient(45deg, #ccc 3%, #e8e8e8 10%, #d5d5d5 25%, #eee 45%, #d8d8d8 60%, #e8e8e8 80%, #ccc 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n 3px 3px 8px rgba(0,0,0,0.12),\n -2px -2px 4px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.05) !important;\n border-radius: var(--border-radius-lg) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-section .section-head {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n border-bottom: 1px solid #b0b0b0 !important;\n position: relative;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-card {\n background: linear-gradient(45deg, #c8c8c8 3%, #e5e5e5 12%, #d4d4d4 30%, #eaeaea 50%, #d4d4d4 70%, #e5e5e5 88%, #c8c8c8 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n 2px 2px 6px rgba(0,0,0,0.1),\n -1px -1px 3px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n/* Form sidebar */\n[data-jey-theme=\"chrome\"] .form-sidebar {\n border-left: 1px solid #aaa !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-sidebar .sidebar-section {\n border-bottom: 1px solid #b0b0b0 !important;\n}\n\n\n/* ==========================================================================\n Modals / Dialogs \u2014 Chrome Frame with Conic-Gradient Border\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .modal-content {\n background: linear-gradient(45deg, #ccc 3%, #e8e8e8 12%, #d5d5d5 30%, #eee 50%, #d5d5d5 70%, #e8e8e8 88%, #ccc 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n 6px 6px 24px rgba(0,0,0,0.25),\n -3px -3px 8px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 0 0 1px rgba(255,255,255,0.35) !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-header {\n background: linear-gradient(45deg, #b0b0b0 5%, #ddd 12%, #c0c0c0 30%, #e5e5e5 50%, #c0c0c0 70%, #ddd 88%, #b0b0b0 95%) !important;\n border-bottom: 1px solid #999 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-header .modal-title {\n color: #333 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .modal-footer {\n background: linear-gradient(45deg, #b8b8b8 5%, #d8d8d8 20%, #c0c0c0 50%, #d8d8d8 80%, #b8b8b8 95%) !important;\n border-top: 1px solid #999 !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-backdrop {\n background-color: rgba(40,40,40,0.55) !important;\n}\n\n\n/* ==========================================================================\n Page Head \u2014 Chrome Title Bar\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .page-head {\n background: linear-gradient(45deg, #b8b8b8 3%, #e0e0e0 10%, #c8c8c8 25%, #eaeaea 45%, #ccc 60%, #e0e0e0 80%, #b8b8b8 97%) !important;\n border-bottom: 1px solid #999 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n 0 2px 4px rgba(0,0,0,0.08) !important;\n}\n\n[data-jey-theme=\"chrome\"] .page-head .title-text {\n color: #333 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n\n/* ==========================================================================\n List View \u2014 Metal Table\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .list-row-head {\n background: linear-gradient(45deg, #aaa 3%, #d8d8d8 10%, #bbb 25%, #e0e0e0 45%, #bbb 60%, #d8d8d8 80%, #aaa 97%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .list-row-container .list-row {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n[data-jey-theme=\"chrome\"] .list-row-container:hover {\n background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .result .list-row-container .level-left .list-row--col .level-left .ellipsis {\n color: #404040 !important;\n}\n\n/* Sticky right column: blend with metallic body + visible separator.\n Uses a translucent bg so it reads continuous with body gradient while\n still covering horizontally-overflowing columns under it. */\n[data-jey-theme=\"chrome\"] .frappe-list .list-row .level-right,\n[data-jey-theme=\"chrome\"] .frappe-list .list-row-head .level-right {\n background: linear-gradient(90deg,\n rgba(216,216,216,0.85) 0%,\n rgba(208,208,208,0.88) 100%) !important;\n backdrop-filter: blur(3px);\n -webkit-backdrop-filter: blur(3px);\n border-left: 1px solid #a0a0a0 !important;\n box-shadow: inset 1px 0 0 rgba(255,255,255,0.5) !important;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-list .list-row-container:hover .level-right {\n background: linear-gradient(90deg,\n rgba(224,224,224,0.9) 0%,\n rgba(216,216,216,0.92) 100%) !important;\n box-shadow:\n inset 1px 0 0 rgba(255,255,255,0.55),\n -6px 0 10px rgba(0,0,0,0.05) !important;\n}\n\n/* List sidebar */\n[data-jey-theme=\"chrome\"] .layout-side-section {\n border-right: 1px solid #aaa !important;\n}\n\n\n/* ==========================================================================\n Tables / Grids \u2014 Metallic Header & Rows\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .frappe-control[data-fieldtype=\"Table\"] .form-grid {\n border: 1px solid #999 !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-heading-row {\n background: linear-gradient(45deg, #aaa 3%, #d5d5d5 10%, #bbb 30%, #ddd 50%, #bbb 70%, #d5d5d5 90%, #aaa 97%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-heading-row .static-area {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .rows .grid-row:hover {\n background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .rows .grid-row {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-footer {\n background: transparent !important;\n border-top: 1px solid #999 !important;\n}\n\n/* --- Active (edit-mode) grid cells: identical look to the static row --- */\n/* Keep the row's bottom border visible even when in edit mode */\n[data-jey-theme=\"chrome\"] .rows .grid-row.editable-row,\n[data-jey-theme=\"chrome\"] .rows .grid-row:has(.editable-row) {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n/* Flatten every form control inside a grid row \u2014 no bg, no border, no shadow.\n Scoped to .data-row so the row-edit modal (`.form-in-grid`, which is a\n sibling of .data-row inside .grid-row) keeps its normal field styling. */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .awesomplete input,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .like-disabled-input {\n background: transparent !important;\n border: 0 !important;\n box-shadow: none !important;\n outline: none !important;\n color: #333 !important;\n transition:\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n/* Focused cell: pressed-in look \u2014 same shadow pattern as .btn-default:active */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .awesomplete input:focus {\n background: linear-gradient(45deg, #bbb 5%, #d8d8d8 10%, #c4c4c4 30%, #d0d0d0 50%, #c4c4c4 70%, #d8d8d8 85%, #bbb 95%) !important;\n border: 0 !important;\n outline: none !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset 3px 3px 6px rgba(0,0,0,0.3),\n inset -1px -1px 1px rgba(255,255,255,0.15) !important;\n transition:\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n/* Read-only cells \u2014 darker grey bg. Specificity matches the \"flatten\" rule above\n (tag.class + two :not()), so it wins over `background: transparent`. Frappe hides\n .field-area on inactive rows, so the tint only shows on the currently-active row. */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[disabled],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[readonly],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control[readonly],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback:disabled {\n background: #d8d8d8 !important;\n box-shadow: none !important;\n color: #666 !important;\n}\n\n/* No pressed-in effect on focus for read-only cells */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):disabled:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[disabled]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[readonly]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:disabled:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control[readonly]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:disabled:focus {\n background: #d8d8d8 !important;\n box-shadow: none !important;\n}\n\n/* Match static-row cell height: static cells use padding 10px 8px; form-control in\n Frappe uses padding-top:10px, padding-bottom: calc(--padding-md - 3px). Equalise so\n the active row doesn't grow or shrink compared to an idle row. */\n[data-jey-theme=\"chrome\"] .grid-row .editable-row .form-control {\n padding-top: 10px !important;\n padding-bottom: 10px !important;\n height: auto !important;\n}\n\n\n/* ==========================================================================\n Tabs \u2014 Metallic Tab Strip\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link {\n color: #666 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.4);\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link:hover {\n color: #444 !important;\n background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link.active {\n color: #333 !important;\n background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link::after {\n background: #777;\n}\n\n\n/* ==========================================================================\n Dropdowns \u2014 Chrome Panel\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .dropdown-menu {\n background: linear-gradient(45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n 4px 4px 12px rgba(0,0,0,0.18),\n -2px -2px 4px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-item {\n color: #444 !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-item:hover,\n[data-jey-theme=\"chrome\"] .dropdown-item:focus {\n background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%) !important;\n color: #222 !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-divider {\n border-top-color: #aaa !important;\n}\n\n\n/* ==========================================================================\n Alerts / Toasts\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .desk-alert {\n background: linear-gradient(45deg, #c0c0c0 5%, #e5e5e5 15%, #d0d0d0 40%, #e8e8e8 60%, #d0d0d0 85%, #c0c0c0 95%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n 3px 3px 8px rgba(0,0,0,0.12),\n -1px -1px 3px rgba(255,255,255,0.3),\n inset 0 1px 0 rgba(255,255,255,0.5) !important;\n}\n\n\n/* ==========================================================================\n Breadcrumbs\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .breadcrumb-container a {\n color: #666 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.4);\n}\n\n[data-jey-theme=\"chrome\"] .breadcrumb-container a:hover {\n color: #333 !important;\n}\n\n\n/* ==========================================================================\n Timeline\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .new-timeline::before {\n border-left-color: #aaa !important;\n}\n\n[data-jey-theme=\"chrome\"] .timeline-dot {\n background: linear-gradient(45deg, #bbb, #ddd, #bbb) !important;\n border: 1px solid #999 !important;\n box-shadow: 1px 1px 2px rgba(0,0,0,0.1), -1px -1px 1px rgba(255,255,255,0.3);\n}\n\n\n/* ==========================================================================\n Badges / Indicators\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .indicator-pill {\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.3),\n 1px 1px 1px rgba(0,0,0,0.08);\n}\n\n\n/* ==========================================================================\n Popovers\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .popover {\n background: linear-gradient(45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n 4px 4px 12px rgba(0,0,0,0.15),\n -2px -2px 4px rgba(255,255,255,0.2),\n inset 0 1px 0 rgba(255,255,255,0.5) !important;\n}\n\n[data-jey-theme=\"chrome\"] .popover .popover-body {\n color: #404040 !important;\n}\n\n\n/* ==========================================================================\n Module Widget Cards \u2014 Chrome Panels with Conic Border Accent\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box {\n background: linear-gradient(45deg, #c0c0c0 3%, #e5e5e5 12%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 88%, #c0c0c0 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n 2px 2px 6px rgba(0,0,0,0.1),\n -1px -1px 3px rgba(255,255,255,0.35),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box::after,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box::after {\n background: conic-gradient(from 140deg, #a0a0a0, #e0e0e0, #888, #d0d0d0, #a0a0a0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box:hover,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box:hover {\n box-shadow:\n 3px 3px 10px rgba(0,0,0,0.14),\n -2px -2px 5px rgba(255,255,255,0.3),\n inset 0 1px 0 rgba(255,255,255,0.7) !important;\n}\n\n\n/* ==========================================================================\n Scrollbars \u2014 Metal Cylinder\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-track {\n background: linear-gradient(90deg, #c0c0c0, #d0d0d0, #c0c0c0);\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-thumb {\n background: linear-gradient(90deg, #888, #bbb, #999, #bbb, #888);\n border-radius: 5px;\n border: 1px solid #999;\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-thumb:hover {\n background: linear-gradient(90deg, #777, #aaa, #888, #aaa, #777);\n}\n\n\n/* ==========================================================================\n Link Colors\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] a {\n color: #555;\n}\n\n[data-jey-theme=\"chrome\"] a:hover {\n color: #333;\n}\n\n\n/* ==========================================================================\n Print \u2014 Reset\n ========================================================================== */\n\n@media print {\n [data-jey-theme=\"chrome\"] body,\n [data-jey-theme=\"chrome\"] .page-container,\n [data-jey-theme=\"chrome\"] .form-page,\n [data-jey-theme=\"chrome\"] .frappe-card,\n [data-jey-theme=\"chrome\"] .modal-content,\n [data-jey-theme=\"chrome\"] .navbar {\n background: white !important;\n box-shadow: none !important;\n border-color: #ddd !important;\n text-shadow: none !important;\n }\n [data-jey-theme=\"chrome\"] .btn-primary {\n background: #333 !important;\n text-shadow: none !important;\n }\n}\n\n/* ===== theme_modern.css ===== */\n/* ==========================================================================\n THEME: Modern [data-jey-theme=\"modern\"]\n Frosted glass rounded squares with indigo accents.\n ========================================================================== */\n\n@keyframes jey-modern-glow {\n 0%, 100% { opacity: 0.4; }\n 50% { opacity: 0.7; }\n}\n\n/* Outer shell \u2014 frosted glass rounded square */\n[data-jey-theme=\"modern\"] .jey-chrome {\n width: 72px; height: 72px; border-radius: 22px; position: relative;\n background: rgba(255, 255, 255, 0.45);\n backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);\n border: 1px solid rgba(255, 255, 255, 0.6);\n box-shadow: 0 4px 16px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04), inset 0 1px 0 rgba(255,255,255,0.8);\n transition: all 0.3s ease;\n}\n\n[data-jey-theme=\"modern\"] .desktop-icon:hover .jey-chrome {\n box-shadow: 0 8px 24px rgba(0,0,0,0.1), 0 2px 6px rgba(0,0,0,0.06), inset 0 1px 0 rgba(255,255,255,0.9);\n transform: translateY(-2px);\n}\n\n/* Hide chrome ring layers */\n[data-jey-theme=\"modern\"] .jey-chrome-ring,\n[data-jey-theme=\"modern\"] .jey-chrome-gap,\n[data-jey-theme=\"modern\"] .jey-chrome-ring-inner {\n display: none;\n}\n\n/* Face fills rounded square */\n[data-jey-theme=\"modern\"] .jey-chrome-face {\n position: absolute; inset: 0; border-radius: 22px; overflow: hidden;\n background: transparent; box-shadow: none;\n display: flex; align-items: center; justify-content: center;\n}\n\n/* Bottom glow accent */\n[data-jey-theme=\"modern\"] .jey-face-glow {\n position: absolute; bottom: -4px; left: 16px; right: 16px; height: 20px;\n border-radius: 50%;\n background: radial-gradient(ellipse, rgba(99, 102, 241, 0.35) 0%, transparent 70%);\n animation: jey-modern-glow 4s ease-in-out infinite;\n pointer-events: none; z-index: 0;\n}\n\n/* Top glass highlight */\n[data-jey-theme=\"modern\"] .jey-face-reflection {\n position: absolute; top: 0; left: 0; right: 0; height: 50%;\n border-radius: 22px 22px 0 0;\n background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%);\n pointer-events: none; z-index: 1; animation: none;\n}\n\n/* Icon \u2014 indigo accent */\n[data-jey-theme=\"modern\"] .jey-chrome-face .jey-icon {\n width: 26px !important; height: 26px !important;\n stroke: #4f46e5 !important; fill: none !important;\n stroke-width: 1.6 !important; stroke-linecap: round !important; stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 2px rgba(79, 70, 229, 0.2)) !important;\n position: relative; z-index: 2;\n}\n\n/* Rounded square container */\n[data-jey-theme=\"modern\"] .icon-container.jey-chrome-done {\n border-radius: 22px !important;\n}\n"], - "mappings": ";AAYA;AACC;AACA;AACA;AACA;AAAA;AAID;AAAA;AAEC;AAAA;AAKD;AAAA;AAAA;AAGC;AAAA;AAOD;AACQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AACQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AAAA;AAGR;AACQ;AACA;AAAA;AAGR;AACQ;AACA;AACA;AAAA;AAGR;AACQ;AACA;AAAA;AAQR;AAAA;AAEQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AAAA;AAWR;AACQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AACQ;AACA;AAAA;AAGR;AACQ;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AACQ;AACA;AAAA;AAMR;AACQ;AACA;AACA;AAAA;AAKR;AACQ;AACA;AACA;AAAA;AAGR;AACQ;AACA;AAAA;AAGR;AACQ;AAAA;AAOR;AAAA;AAEQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AAAA;AAIR;AACQ;AAAA;AAGR;AACQ;AACA;AACA;AAAA;AAOR;AACQ;AAAA;AAGR;AACQ;AACA;AAAA;AAQR;AACQ;AACA;AACA;AAAA;AAGR;AACQ;AAAA;AAGR;AACQ;AAAA;AAGR;AACQ;AACA;AACA;AAAA;AAGR;AACQ;AAAA;AAQR;AACQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGR;AAAA;AAEQ;AACA;AAAA;AAIR;AACQ;AAAA;AAGR;AACQ;AACA;AAAA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", - "names": [] -} diff --git a/jey_theme/public/dist/css/jey_theme.bundle.Y4KKUUQY.css b/jey_theme/public/dist/css/jey_theme.bundle.Y4KKUUQY.css new file mode 100644 index 0000000..1a5bc17 --- /dev/null +++ b/jey_theme/public/dist/css/jey_theme.bundle.Y4KKUUQY.css @@ -0,0 +1,2 @@ +.splash img{content:url(/assets/jey_theme/images/preloader.png);max-width:64px!important;width:64px!important;height:auto}.desktop-icon[data-id=Organization],.desktop-icon[data-id=ERPNext],.desktop-icon[data-id=Quality],.desktop-icon[data-id="Quality Management"],.desktop-icon[data-id=Subcontracting]{display:none!important}input[type=checkbox]{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;width:28px!important;min-width:28px!important;height:16px!important;background-color:var(--gray-400, #c0c6cc)!important;background-image:none!important;border-radius:999px!important;border:none!important;position:relative!important;cursor:pointer!important;box-shadow:inset 0 1px 3px #0000001f!important;transition:background-color .25s ease!important;vertical-align:middle!important;margin:0 8px 0 0!important;outline:none!important}input[type=checkbox]:after{content:""!important;width:12px!important;height:12px!important;background-color:#fff!important;border-radius:50%!important;position:absolute!important;top:2px!important;left:2px!important;box-shadow:0 1px 2px #00000040!important;transition:transform .25s ease!important;border:none!important}input[type=checkbox]:checked,input[type=checkbox].disabled-selected{background-color:#2da44e!important;background-image:none!important;box-shadow:inset 0 1px 3px #00000014!important}input[type=checkbox]:checked:after,input[type=checkbox].disabled-selected:after{transform:translate(12px)!important}input[type=checkbox]:focus{outline:none!important;box-shadow:inset 0 1px 3px #0000001f,0 0 0 2px #2da44e40!important}input[type=checkbox]:disabled{opacity:.5!important;cursor:not-allowed!important;background-image:none!important}input[type=checkbox].disabled-selected{opacity:.7!important;cursor:not-allowed!important}.row-check input[type=checkbox],.grid-row-check{width:var(--checkbox-size, 14px)!important;min-width:var(--checkbox-size, 14px)!important;height:var(--checkbox-size, 14px)!important;border-radius:4px!important;border:1px solid var(--gray-500)!important;background-color:transparent!important;background-image:none!important;box-shadow:none!important;margin-right:0!important;transition:none!important}.row-check input[type=checkbox]:after,.grid-row-check:after{content:""!important;width:auto!important;height:auto!important;background:none!important;border-radius:0!important;position:absolute!important;box-shadow:none!important;transition:none!important;transform:none!important;inset:-8px!important;opacity:0!important}.row-check input[type=checkbox]:checked,.grid-row-check:checked{background-color:var(--primary)!important;background-image:url("data:image/svg+xml, "),var(--checkbox-gradient)!important;background-size:57%,100%!important;background-repeat:no-repeat!important;background-position:center!important;border:none!important;box-shadow:none!important}.row-check input[type=checkbox]:checked:after,.grid-row-check:checked:after{transform:none!important}.datatable input[type=checkbox]{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;width:var(--checkbox-size, 14px)!important;min-width:var(--checkbox-size, 14px)!important;height:var(--checkbox-size, 14px)!important;margin:0!important;padding:0!important;border:1px solid var(--gray-500)!important;border-radius:4px!important;background-color:transparent!important;background-image:none!important;box-shadow:none!important;cursor:pointer!important;vertical-align:middle!important;transition:none!important}.datatable input[type=checkbox]:after{content:none!important;display:none!important}.datatable input[type=checkbox]:checked{background-color:var(--primary)!important;background-image:url("data:image/svg+xml, ")!important;background-size:57%!important;background-repeat:no-repeat!important;background-position:center!important;border:none!important}.datatable input[type=checkbox]:disabled{opacity:.5!important;cursor:not-allowed!important}.datatable .dt-cell__content:has(> input[type="checkbox"]:only-child){display:flex!important;align-items:center!important;justify-content:flex-start!important}.datatable .dt-row-filter .dt-cell__content{display:flex!important;align-items:center!important;gap:2px}.datatable .dt-row-filter .dt-filter.dt-input{flex:1 1 0!important;min-width:0!important}.datatable .dt-row-filter .comparison-help-icon{flex:0 0 auto}input.list-row-checkbox:after,input.list-header-checkbox:after{width:12px!important;height:12px!important;background-color:#fff!important;border-radius:50%!important;position:absolute!important;inset:2px auto auto 2px!important;box-shadow:0 1px 2px #00000040!important;transition:transform .25s ease!important;opacity:1!important}input.list-row-checkbox:checked:after,input.list-header-checkbox:checked:after{transform:translate(12px)!important}.frappe-control[data-fieldtype=Check] .checkbox label{align-items:center!important}.frappe-control[data-fieldtype=Check] .checkbox .input-area:not(.hide){padding-top:0!important;display:flex!important;align-items:center!important}.filter-section{display:flex!important}.filter-section .sort-selector{order:-1!important;margin-right:8px!important}.form-grid{overflow-x:scroll!important;padding-bottom:12px!important;scrollbar-width:auto!important}.form-grid::-webkit-scrollbar{height:10px!important}.form-grid::-webkit-scrollbar-track{background:var(--gray-100, #f5f5f5)!important}.form-grid::-webkit-scrollbar-thumb{background:var(--gray-400, #c0c6cc)!important;border-radius:5px!important;border:2px solid var(--gray-100, #f5f5f5)!important}.form-grid::-webkit-scrollbar-thumb:hover{background:var(--gray-500, #98a2ab)!important}.jey-col-resize{position:absolute;top:0;right:-2px;width:5px;height:100%;cursor:col-resize;z-index:2;background:transparent;transition:background .15s}.jey-col-resize:hover,.jey-col-resize:active{background:var(--primary, #2490ef);opacity:.5}.grid-heading-row .grid-static-col[data-jey-draggable]{cursor:grab}.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-left{box-shadow:inset 3px 0 0 var(--primary, #2490ef);background:rgba(36,144,239,.05)}.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-right{box-shadow:inset -3px 0 0 var(--primary, #2490ef);background:rgba(36,144,239,.05)}.list-row-head .list-row-col{position:relative}.list-row-head .list-row-col:not(:last-child){border-right:1px solid var(--border-color, #e2e6e9)}.list-row-head .jey-col-resize{position:absolute;top:0;right:-2px;width:5px;height:100%;cursor:col-resize;z-index:3;background:transparent;transition:background .15s}.list-row-head .jey-col-resize:hover,.list-row-head .jey-col-resize:active{background:var(--primary, #2490ef);opacity:.5}.list-row-head .list-row-col[data-jey-draggable]:not(.list-subject){cursor:grab}.list-row-head .list-row-col.jey-drop-target.jey-drop-left{box-shadow:inset 3px 0 0 var(--primary, #2490ef);background:rgba(36,144,239,.05)}.list-row-head .list-row-col.jey-drop-target.jey-drop-right{box-shadow:inset -3px 0 0 var(--primary, #2490ef);background:rgba(36,144,239,.05)}.body-sidebar .body-sidebar-bottom{min-width:0}.jey-fullwidth-link,.jey-theme-switch-link,.jey-collapse-link{text-decoration:none;font-size:var(--text-sm);display:flex;align-items:center;cursor:pointer;margin-bottom:8px;width:100%;overflow:hidden}.jey-fullwidth-link svg,.jey-theme-switch-link svg,.jey-collapse-link svg{margin:0;flex:0 0 auto}.jey-fullwidth-link span,.jey-theme-switch-link span,.jey-collapse-link span{margin-left:10px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:max-width .3s cubic-bezier(.4,0,.2,1),margin-left .3s cubic-bezier(.4,0,.2,1)}.body-sidebar-container:not(.expanded) .jey-fullwidth-link span,.body-sidebar-container:not(.expanded) .jey-theme-switch-link span,.body-sidebar-container:not(.expanded) .jey-collapse-link span{max-width:0;margin-left:0}.body-sidebar .sidebar-bottom-actions{display:none!important}.body-sidebar .nav-item{transition:padding .3s cubic-bezier(.4,0,.2,1)}.modal.fade .modal-dialog{transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .5s cubic-bezier(.22,1,.36,1)!important;transform:translateY(-24px) scale(.97);opacity:0}.modal.show .modal-dialog{transform:none;opacity:1}@keyframes jey-section-in{0%{top:-12px}to{top:0}}.form-layout .form-section .section-head,.form-layout .form-section .section-body{position:relative;animation:jey-section-in .7s cubic-bezier(.22,1,.36,1) both}.form-layout .form-section:nth-child(1) .section-head,.form-layout .form-section:nth-child(1) .section-body{animation-delay:.04s}.form-layout .form-section:nth-child(2) .section-head,.form-layout .form-section:nth-child(2) .section-body{animation-delay:.1s}.form-layout .form-section:nth-child(3) .section-head,.form-layout .form-section:nth-child(3) .section-body{animation-delay:.16s}.form-layout .form-section:nth-child(4) .section-head,.form-layout .form-section:nth-child(4) .section-body{animation-delay:.22s}.form-layout .form-section:nth-child(5) .section-head,.form-layout .form-section:nth-child(5) .section-body{animation-delay:.28s}.form-layout .form-section:nth-child(6) .section-head,.form-layout .form-section:nth-child(6) .section-body{animation-delay:.34s}.form-layout .form-section:nth-child(7) .section-head,.form-layout .form-section:nth-child(7) .section-body{animation-delay:.4s}.form-layout .form-section:nth-child(8) .section-head,.form-layout .form-section:nth-child(8) .section-body{animation-delay:.46s}.form-layout .form-section:nth-child(9) .section-head,.form-layout .form-section:nth-child(9) .section-body{animation-delay:.52s}.form-layout .form-section:nth-child(10) .section-head,.form-layout .form-section:nth-child(10) .section-body{animation-delay:.58s}.form-layout .form-section:nth-child(11) .section-head,.form-layout .form-section:nth-child(11) .section-body{animation-delay:.64s}.form-layout .form-section:nth-child(12) .section-head,.form-layout .form-section:nth-child(12) .section-body{animation-delay:.7s}.form-tabs .nav-link{position:relative;border-bottom:none!important;transition:color .3s ease}.form-tabs .nav-link:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--text-color);transform:scaleX(0);transform-origin:center;transition:transform .3s cubic-bezier(.22,1,.36,1)}.form-tabs .nav-link.active:after{transform:scaleX(1)}.dropdown-menu{display:block!important;visibility:hidden;opacity:0;pointer-events:none}.dropdown-menu.show{visibility:visible;opacity:1;pointer-events:auto;animation:jey-dropdown-in .2s ease}.dropdown-menu.jey-dropdown-hiding{visibility:visible!important;pointer-events:none;animation:jey-dropdown-out .2s ease forwards}@keyframes jey-dropdown-in{0%{opacity:0}to{opacity:1}}@keyframes jey-dropdown-out{0%{opacity:1}to{opacity:0}}@media (min-width: 576px){.body-sidebar-container{width:50px;transition:width .3s cubic-bezier(.4,0,.2,1)}.body-sidebar-container.expanded{width:var(--sidebar-width)}}.body-sidebar .sidebar-header{padding-left:0!important;padding-right:0!important}.body-sidebar-container.expanded .sidebar-user-button{padding:0!important}.body-sidebar .standard-sidebar-item .item-anchor{transition:padding-left .4s cubic-bezier(.22,1,.36,1),background .4s ease}.body-sidebar .standard-sidebar-item .item-anchor:hover{padding-left:calc(var(--padding-xs, 8px) + 4px)}.body-sidebar .standard-sidebar-item .sidebar-item-icon{transition:transform .45s cubic-bezier(.22,1,.36,1)}.body-sidebar .standard-sidebar-item .item-anchor:hover .sidebar-item-icon{transform:scale(1.15)}.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor{position:relative}.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;border-radius:0 3px 3px 0;background:var(--primary, #2490ef);opacity:.8}@keyframes jey-list-row-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}.frappe-list .result .list-row-container:not(:first-child){animation:jey-list-row-in .4s cubic-bezier(.22,1,.36,1) both}.frappe-list .result .list-row-container:nth-child(2){animation-delay:.03s}.frappe-list .result .list-row-container:nth-child(3){animation-delay:.05s}.frappe-list .result .list-row-container:nth-child(4){animation-delay:.07s}.frappe-list .result .list-row-container:nth-child(5){animation-delay:.09s}.frappe-list .result .list-row-container:nth-child(6){animation-delay:.11s}.frappe-list .result .list-row-container:nth-child(7){animation-delay:.13s}.frappe-list .result .list-row-container:nth-child(8){animation-delay:.15s}.frappe-list .result .list-row-container:nth-child(9){animation-delay:.17s}.frappe-list .result .list-row-container:nth-child(10){animation-delay:.19s}.frappe-list .result .list-row-container:nth-child(11){animation-delay:.21s}.frappe-list .result .list-row-container:nth-child(12){animation-delay:.23s}.frappe-list .result .list-row-container:nth-child(13){animation-delay:.25s}.frappe-list .result .list-row-container:nth-child(14){animation-delay:.27s}.frappe-list .result .list-row-container:nth-child(15){animation-delay:.29s}.frappe-list .result .list-row-container:nth-child(16){animation-delay:.31s}.frappe-list .result .list-row-container:nth-child(17){animation-delay:.33s}.frappe-list .result .list-row-container:nth-child(18){animation-delay:.35s}.frappe-list .result .list-row-container:nth-child(19){animation-delay:.37s}.frappe-list .result .list-row-container:nth-child(20){animation-delay:.39s}.frappe-list .result .list-row-container:nth-child(21){animation-delay:.41s}.modal:has(.cool-awesomebar-modal-footer){display:block!important;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .5s cubic-bezier(.22,1,.36,1),visibility .5s}.modal:has(.cool-awesomebar-modal-footer) .modal-dialog{transform:translateY(-30px);transition:transform .5s cubic-bezier(.22,1,.36,1)}.modal.show:has(.cool-awesomebar-modal-footer){visibility:visible;opacity:1;pointer-events:auto}.modal.show:has(.cool-awesomebar-modal-footer) .modal-dialog{transform:none}@keyframes jey-summary-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.report-summary .summary-item{animation:jey-summary-in .7s cubic-bezier(.22,1,.36,1) both}.report-summary .summary-item:nth-child(1){animation-delay:.05s}.report-summary .summary-item:nth-child(2){animation-delay:.1s}.report-summary .summary-item:nth-child(3){animation-delay:.15s}.report-summary .summary-item:nth-child(4){animation-delay:.2s}.report-summary .summary-item:nth-child(5){animation-delay:.25s}.report-summary .summary-item:nth-child(6){animation-delay:.3s}.form-section .collapse-indicator{transition:transform .45s cubic-bezier(.22,1,.36,1);display:inline-block}.form-section .section-head.collapsed .collapse-indicator{transform:rotate(-90deg)}.form-section .section-head.collapsible+.section-body{display:flex!important;flex-wrap:wrap;transition:max-height .5s ease-in-out,padding .5s ease-in-out}.form-section .section-head.collapsed+.section-body{max-height:0!important;padding-top:0!important;padding-bottom:0!important;overflow:hidden;transition:max-height .5s ease-in-out,padding .5s ease-in-out}.awesomplete>[role=listbox]{animation:jey-awesomplete-in .4s cubic-bezier(.22,1,.36,1) both}.awesomplete>[role=listbox].jey-awesomplete-hiding{display:block!important;pointer-events:none;animation:jey-awesomplete-out .2s ease forwards}@keyframes jey-awesomplete-in{0%{opacity:0}to{opacity:1}}@keyframes jey-awesomplete-out{0%{opacity:1}to{opacity:0}}.awesomplete>ul[role=listbox]:not([hidden]){z-index:10}input.form-control:not([type="checkbox"]):not([type="radio"]),textarea.form-control,.frappe-control input:not([type="checkbox"]):not([type="radio"]),.frappe-control textarea{transition:background-color .45s cubic-bezier(.22,1,.36,1),border-color .45s cubic-bezier(.22,1,.36,1)}input.form-control:not([type="checkbox"]):not([type="radio"]):focus,textarea.form-control:focus,.frappe-control input:not([type="checkbox"]):not([type="radio"]):focus,.frappe-control textarea:focus{border-color:var(--gray-500, #a8b0b8)!important;outline:none}.btn{position:relative;overflow:hidden;transition:box-shadow .4s ease,background-color .3s ease,color .3s ease}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.25) 45%,rgba(255,255,255,.25) 55%,transparent 65%);transform:translate(-110%);transition:transform .6s cubic-bezier(.22,1,.36,1);pointer-events:none}.btn:hover:after{transform:translate(110%)}.btn:active{box-shadow:inset 0 2px 6px #0003!important}.dropdown-menu-item[onclick*=toggle_full_width],.dropdown-menu-item[onclick*=clear_cache],.dropdown-menu-item[onclick*=ThemeSwitcher],.dropdown-menu-item[data-name=website],.dropdown-menu-item.jey-hidden-item{display:none!important}.desktop-icon:hover{transform:translateY(-2px)!important}.desktop-icon:active{transform:scale(.97)!important}.icon-container.jey-chrome-done{width:72px!important;height:72px!important;padding:0!important;border-radius:50%!important;background:none!important;overflow:visible!important;position:relative!important}.icon-container.jey-chrome-done:hover{transform:none!important}.icon-container.folder-icon.jey-chrome-done{box-shadow:none!important}.desktop-icon:has(> .icon-caption){display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important;min-width:0!important;height:auto!important;align-self:start!important;padding:13px 6px 12px!important}@media (min-width: 571px){.desktop-icon:has(> .icon-caption){min-height:126px!important}}@media (min-width: 1060px){.desktop-icon:has(> .icon-caption){width:152px!important}}.desktop-icon:has(> .icon-caption)>.icon-caption{width:100%!important;max-width:100%!important;height:auto!important;min-height:35px!important;justify-content:flex-start!important;overflow:visible!important;text-wrap:wrap!important;white-space:normal!important}.desktop-icon:has(> .icon-caption) .icon-title{display:block!important;width:100%!important;max-width:100%!important;-webkit-line-clamp:none!important;line-clamp:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;text-wrap:balance;overflow-wrap:break-word!important;word-break:normal!important;-webkit-hyphens:auto;hyphens:auto;line-height:1.25!important}.desktop-icon:has(> .icon-caption)>.hide-button{left:auto!important;right:-5px!important}#desktop-modal .icons-container .icons{gap:12px 8px!important;padding:12px 0!important}#desktop-modal{width:-moz-fit-content!important;width:fit-content!important;max-width:calc(100vw - 40px)!important}#desktop-modal .modal-content{width:100%!important}#desktop-modal .modal-body.desktop-modal-body{width:auto!important;height:auto!important;min-width:var(--desktop-modal-width)!important;min-height:var(--desktop-modal-height)!important}#desktop-modal .modal-header.desktop-modal-heading{background:transparent!important;border-bottom:0!important;box-shadow:none!important}#desktop-modal .modal-header.desktop-modal-heading .modal-title,#desktop-modal .modal-header.desktop-modal-heading .title-input-label span{background:transparent!important;box-shadow:none!important;text-shadow:none!important}#desktop-modal .icon-title,#desktop-modal .icon-caption{text-shadow:none!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#desktop-modal .modal-body.desktop-modal-body,#desktop-modal .icons-container{overflow:visible!important;max-height:none!important}.ico-framework{animation:ico-float 5s ease-in-out infinite;transform-origin:center}@keyframes ico-float{0%,to{transform:translateY(0) rotate(0);opacity:.85}30%{transform:translateY(-2px) rotate(.8deg);opacity:1}70%{transform:translateY(.5px) rotate(-.4deg);opacity:.9}}.ico-org{animation:ico-org 6s ease-in-out infinite;transform-origin:center bottom}@keyframes ico-org{0%,to{transform:scaleY(1) scaleX(1)}25%{transform:scaleY(1.03) scaleX(.99)}50%{transform:scaleY(1.05) scaleX(.98)}75%{transform:scaleY(1.02) scaleX(1)}}.ico-acc .acc-btn{animation:ico-press 3s ease-in-out infinite}@keyframes ico-press{0%,25%,to{opacity:.5;stroke-width:2.5}12%{opacity:1;stroke-width:3.2}}.ico-assets{animation:ico-safe 6s ease-in-out infinite;transform-origin:center}.ico-assets .lock-dot{animation:ico-blink 5s ease-in-out infinite}@keyframes ico-safe{0%,to{transform:translateY(0)}40%{transform:translateY(-.6px)}60%{transform:translateY(.3px)}}@keyframes ico-blink{0%,35%,65%,to{opacity:1}50%{opacity:.15}}.ico-buying{animation:ico-cart 6s ease-in-out infinite;transform-origin:12px 21px}@keyframes ico-cart{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(1.5px) rotate(.8deg)}50%{transform:translate(-.5px) rotate(-.3deg)}80%{transform:translate(.8px) rotate(.4deg)}}.ico-mfg .gear1{animation:ico-spin 9s linear infinite;transform-origin:9px 12px}.ico-mfg .gear2{animation:ico-spin-r 7s linear infinite;transform-origin:17px 8px}@keyframes ico-spin{to{transform:rotate(360deg)}}@keyframes ico-spin-r{to{transform:rotate(-360deg)}}.ico-proj .col1{animation:ico-g1 5s ease-in-out infinite;transform-origin:5.5px 21px}.ico-proj .col2{animation:ico-g2 5s ease-in-out infinite .5s;transform-origin:12.5px 15px}.ico-proj .col3{animation:ico-g3 5s ease-in-out infinite 1s;transform-origin:19.5px 18px}@keyframes ico-g1{0%,to{transform:scaleY(1);opacity:.75}50%{transform:scaleY(.85);opacity:1}}@keyframes ico-g2{0%,to{transform:scaleY(1);opacity:.75}50%{transform:scaleY(1.15);opacity:1}}@keyframes ico-g3{0%,to{transform:scaleY(1);opacity:.75}50%{transform:scaleY(.88);opacity:1}}.ico-quality{animation:ico-shield 6s ease-in-out infinite;transform-origin:12px 14px}@keyframes ico-shield{0%,to{transform:rotate(0) scale(1)}15%{transform:rotate(1.5deg) scale(1.03)}35%{transform:rotate(-.5deg) scale(1.01)}55%{transform:rotate(-1.5deg) scale(1.03)}75%{transform:rotate(.5deg) scale(1.01)}}.ico-selling{animation:ico-sell 4s ease-in-out infinite;transform-origin:center}.ico-selling .arrow-head{animation:ico-up 4s ease-in-out infinite}@keyframes ico-sell{0%,to{opacity:.8}50%{opacity:1}}@keyframes ico-up{0%,to{transform:translate(0)}30%{transform:translate(1px,-1.5px)}60%{transform:translate(2px,-2.5px)}}.ico-stock{animation:ico-bob 5s ease-in-out infinite;transform-origin:center}@keyframes ico-bob{0%,to{transform:rotate(0) translateY(0)}20%{transform:rotate(2deg) translateY(-.7px)}50%{transform:rotate(-1deg) translateY(.3px)}80%{transform:rotate(1.5deg) translateY(-.4px)}}.ico-sub .person-l{animation:ico-rl 6s ease-in-out infinite;transform-origin:8px 12px}.ico-sub .person-r{animation:ico-rr 6s ease-in-out infinite;transform-origin:16px 12px}@keyframes ico-rl{0%,to{transform:translate(0) rotate(0)}30%{transform:translate(1px) rotate(1deg)}60%{transform:translate(1.5px) rotate(.5deg)}}@keyframes ico-rr{0%,to{transform:translate(0) rotate(0)}30%{transform:translate(-1px) rotate(-1deg)}60%{transform:translate(-1.5px) rotate(-.5deg)}}.ico-settings{animation:ico-gear-main 12s linear infinite;transform-origin:center}@keyframes ico-gear-main{to{transform:rotate(360deg)}}.ico-hr .plus-v{animation:ico-pv 4s ease-in-out infinite;transform-origin:center}.ico-hr .plus-h{animation:ico-ph 4s ease-in-out infinite .3s;transform-origin:center}@keyframes ico-pv{0%,to{opacity:.4;stroke-width:1.8}50%{opacity:1;stroke-width:2.4}}@keyframes ico-ph{0%,to{opacity:.4;stroke-width:1.8}50%{opacity:1;stroke-width:2.4}}.jey-theme-grid{display:flex;gap:20px;padding:20px;justify-content:center}.jey-theme-card{cursor:pointer;text-align:center;padding:16px;border-radius:12px;border:2px solid transparent;transition:border-color .2s,background .2s;min-width:140px}.jey-theme-card:hover{background:var(--subtle-fg, #f5f5f5)}.jey-theme-card.selected{border-color:var(--primary, #2490ef);background:var(--subtle-fg, #f5f5f5)}.jey-theme-preview{width:72px;height:72px;border-radius:50%;margin:0 auto 12px;position:relative;overflow:hidden}.jey-theme-preview--chrome{background:conic-gradient(from 140deg,#a0a0a0 0deg,#f2f2f2 40deg,#777 80deg,#e5e5e5 120deg,#959595 170deg,#ededed 210deg,#808080 260deg,#d8d8d8 310deg,#a0a0a0 360deg);box-shadow:0 3px 8px #00000026,inset 0 1px 1px #ffffff80}.jey-theme-preview--chrome .jey-theme-preview-icon{position:absolute;inset:9px;border-radius:50%;background:linear-gradient(168deg,#f4f4f4 0%,#e0e0e0 45%,#d4d4d4 100%)}.jey-theme-preview--silk{border-radius:16px;background:rgba(255,255,255,.4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.5);box-shadow:0 2px 8px #0000000f}.jey-theme-preview--silk .jey-theme-preview-icon{position:absolute;inset:22px;border-radius:6px;background:#4f46e5;opacity:.25}.jey-theme-label{font-weight:600;font-size:var(--text-base);margin-bottom:2px}.jey-theme-info{font-size:var(--text-sm);color:var(--text-muted)}.ce-block .links-widget-box,.ce-block .number-widget-box{opacity:0;transform:translateY(24px) scale(.97);animation:jey-card-in .7s cubic-bezier(.22,1,.36,1) forwards;border-radius:var(--border-radius-lg, 12px);transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .35s ease;position:relative}@keyframes jey-number-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.number-widget-box .widget-content .number{animation:jey-number-in .5s cubic-bezier(.22,1,.36,1) .3s both}.ce-block .links-widget-box .widget-control .dropdown-menu,.ce-block .number-widget-box .widget-control .dropdown-menu{z-index:1050}.ce-block:nth-child(1) .links-widget-box,.ce-block:nth-child(1) .number-widget-box{animation-delay:0s}.ce-block:nth-child(2) .links-widget-box,.ce-block:nth-child(2) .number-widget-box{animation-delay:.06s}.ce-block:nth-child(3) .links-widget-box,.ce-block:nth-child(3) .number-widget-box{animation-delay:.12s}.ce-block:nth-child(4) .links-widget-box,.ce-block:nth-child(4) .number-widget-box{animation-delay:.18s}.ce-block:nth-child(5) .links-widget-box,.ce-block:nth-child(5) .number-widget-box{animation-delay:.24s}.ce-block:nth-child(6) .links-widget-box,.ce-block:nth-child(6) .number-widget-box{animation-delay:.3s}.ce-block:nth-child(7) .links-widget-box,.ce-block:nth-child(7) .number-widget-box{animation-delay:.36s}.ce-block:nth-child(8) .links-widget-box,.ce-block:nth-child(8) .number-widget-box{animation-delay:.42s}.ce-block:nth-child(9) .links-widget-box,.ce-block:nth-child(9) .number-widget-box{animation-delay:.48s}.ce-block:nth-child(10) .links-widget-box,.ce-block:nth-child(10) .number-widget-box{animation-delay:.54s}.ce-block:nth-child(11) .links-widget-box,.ce-block:nth-child(11) .number-widget-box{animation-delay:.6s}.ce-block:nth-child(12) .links-widget-box,.ce-block:nth-child(12) .number-widget-box{animation-delay:.66s}@keyframes jey-card-in{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}.ce-block .links-widget-box:after,.ce-block .number-widget-box:after{content:"";position:absolute;bottom:0;left:10%;right:10%;height:2.5px;border-radius:2px 2px 0 0;background:var(--primary, #2490ef);transform:scaleX(0);transition:transform .35s cubic-bezier(.22,1,.36,1);transform-origin:center}.ce-block .links-widget-box:hover:after,.ce-block .number-widget-box:hover:after{transform:scaleX(1)}.ce-block .links-widget-box:hover,.ce-block .number-widget-box:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000014,0 2px 6px #0000000a}.ce-block .links-widget-box:hover,.ce-block .number-widget-box:hover,.ce-block .links-widget-box:focus-within,.ce-block .number-widget-box:focus-within{z-index:100}.ce-block .links-widget-box:has(.dropdown-menu.show),.ce-block .number-widget-box:has(.dropdown-menu.show){z-index:200}.links-widget-box .link-item{position:relative;transition:background .25s ease,transform .25s ease;border-radius:var(--border-radius, 8px);overflow:hidden}.links-widget-box .link-item:hover{transform:translate(6px);background:var(--subtle-fg, rgba(0, 0, 0, .02))}.links-widget-box .link-item .es-icon{display:none!important}.select-icon svg{display:none!important}.select-icon{top:0!important;bottom:0!important;display:flex!important;align-items:center!important}.select-icon:after{content:""!important;display:block;width:12px;height:12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.msg-box .icon-xl{display:none!important}.msg-box .mb-4{display:flex;justify-content:center}.msg-box .mb-4:after{content:""!important;display:block;width:48px;height:48px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b0b8c0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 16 12 14 15 10 15 8 12 2 12'/%3E%3Cpath d='M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.user-onboarding{display:none!important}.comment-count svg{fill:none!important;stroke:currentColor!important;stroke-width:1.5!important;stroke-linecap:round;stroke-linejoin:round}.new-timeline .activity-title,.new-timeline .timeline-actions,.comment-box,.comment-input-wrapper,.comment-input-wrapper .ql-container,.comment-input-wrapper .frappe-control .ql-editor{background:transparent!important;border-color:transparent!important;box-shadow:none!important}.standard-filter-section .frappe-control.jey-period-filter{flex:0 0 auto;min-width:200px}.standard-filter-section .frappe-control.jey-period-filter input{min-width:200px}.control-input.fields_order{height:auto!important;min-height:32px;display:flex;align-items:center}.control-input.fields_order>.row{width:100%;align-items:center;margin:0}.control-input.fields_order>.row>[class*=col-]{padding-top:0!important;margin-top:0!important}@keyframes jey-chrome-rotate-glow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes jey-chrome-face-light{0%{background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.5) 0%,transparent 55%)}25%{background:radial-gradient(circle at 75% 25%,rgba(255,255,255,.5) 0%,transparent 55%)}50%{background:radial-gradient(circle at 70% 75%,rgba(255,255,255,.35) 0%,transparent 55%)}75%{background:radial-gradient(circle at 25% 70%,rgba(255,255,255,.35) 0%,transparent 55%)}to{background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.5) 0%,transparent 55%)}}@keyframes jey-chrome-refl-drift{0%,to{top:12%;opacity:.7}50%{top:18%;opacity:.5}}[data-jey-theme=chrome] .jey-chrome{width:72px;height:72px;border-radius:50%;position:relative;background:radial-gradient(ellipse at 35% 20%,rgba(255,255,255,.7) 0%,transparent 55%),linear-gradient(180deg,#e0e0e0 0%,#b8b8b8 100%);box-shadow:0 4px 10px #0000002e,0 1px 3px #0000001a,inset 0 1px 1px #ffffffb3;transition:box-shadow .3s ease}[data-jey-theme=chrome] .desktop-icon:hover .jey-chrome{box-shadow:0 6px 16px #00000038,0 1px 3px #0000001f,0 0 14px #fff3,inset 0 1px 1px #ffffffb3}[data-jey-theme=chrome] .jey-chrome-ring{position:absolute;inset:2px;border-radius:50%;background:conic-gradient(from 140deg,#a0a0a0 0deg,#f2f2f2 40deg,#777 80deg,#e5e5e5 120deg,#959595 170deg,#ededed 210deg,#808080 260deg,#d8d8d8 310deg,#a0a0a0 360deg);box-shadow:inset 0 1px 2px #0003;overflow:hidden}[data-jey-theme=chrome] .jey-ring-glow{position:absolute;inset:-10px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,transparent 140deg,rgba(255,255,255,.55) 165deg,rgba(255,255,255,.8) 180deg,rgba(255,255,255,.55) 195deg,transparent 220deg,transparent 360deg);animation:jey-chrome-rotate-glow 8s linear infinite;pointer-events:none}[data-jey-theme=chrome] .jey-chrome-gap{position:absolute;inset:5px;border-radius:50%;background:linear-gradient(180deg,#888 0%,#aaa 50%,#999 100%);box-shadow:inset 0 1px 3px #00000059,inset 0 -1px 1px #fff3}[data-jey-theme=chrome] .jey-chrome-ring-inner{position:absolute;inset:6px;border-radius:50%;background:conic-gradient(from 200deg,#b0b0b0 0deg,#eee 30deg,#999 70deg,#ddd 110deg,#aaa 160deg,#f0f0f0 200deg,#909090 250deg,#ccc 300deg,#b0b0b0 360deg);box-shadow:inset 0 1px 1px #00000026}[data-jey-theme=chrome] .jey-chrome-face{position:absolute;inset:9px;border-radius:50%;overflow:hidden;background:linear-gradient(168deg,#f4f4f4 0%,#e0e0e0 45%,#d4d4d4 100%);box-shadow:inset 0 3px 7px #ffffffb3,inset 0 -3px 6px #0000000f;display:flex;align-items:center;justify-content:center}[data-jey-theme=chrome] .jey-face-glow{position:absolute;inset:0;border-radius:50%;animation:jey-chrome-face-light 8s ease-in-out infinite;pointer-events:none;z-index:1}[data-jey-theme=chrome] .jey-face-reflection{position:absolute;top:15%;left:10%;width:80%;height:30%;background:linear-gradient(180deg,rgba(255,255,255,.6) 0%,rgba(255,255,255,.15) 60%,transparent 100%);border-radius:50%;pointer-events:none;z-index:1;animation:jey-chrome-refl-drift 10s ease-in-out infinite}[data-jey-theme=chrome] .jey-chrome-face .jey-icon{width:24px!important;height:24px!important;stroke:#505050!important;fill:none!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.5))!important;position:relative;z-index:2}@keyframes jey-chrome-shine{0%{transform:translate(-100%) skew(-15deg)}to{transform:translate(200%) skew(-15deg)}}[data-jey-theme=chrome]{--bg-color: #d8d8d8;--fg-color: #e8e8e8;--card-bg: #e0e0e0;--subtle-accent: #d4d4d4;--subtle-fg: #d0d0d0;--fg-hover-color: #ccc;--highlight-color: #d4d4d4;--navbar-bg: #d0d0d0;--modal-bg: #ddd;--toast-bg: #ddd;--popover-bg: #e0e0e0;--control-bg: #d5d5d5;--control-bg-on-gray: #ccc;--awesomebar-focus-bg: #e8e8e8;--disabled-control-bg: #d0d0d0;--skeleton-bg: #c8c8c8;--surface-menu-bar: #d4d4d4;--surface-white: #e0e0e0;--surface-gray-1: #d8d8d8;--surface-gray-2: #d0d0d0;--surface-gray-3: #c8c8c8;--surface-gray-4: #bbb;--surface-modal: #ddd;--placeholder-color: #ccc;--sidebar-hover-color: #c8c8c8;--sidebar-active-color: #d8d8d8;--sidebar-border-color: #aaa;--divider-color: #b0b0b0;--heading-color: #333;--text-color: #404040;--text-neutral: #333;--text-muted: #666;--text-light: #888;--text-dark: #f0f0f0;--disabled-text-color: #888;--ink-gray-7: #555;--ink-gray-8: #404040;--ink-gray-9: #333;--border-color: #aaa;--dark-border-color: #999;--table-border-color: #aaa;--btn-group-border-color: #999;--outline-gray-1: #b0b0b0;--outline-gray-2: #999;--outline-gray-modals: #aaa;--primary: #555;--brand-color: #555;--btn-primary: #777;--btn-default-bg: #ccc;--btn-default-hover-bg: #bbb;--btn-ghost-hover-bg: #c0c0c0;--border-primary: #777;--shadow-xs: 1px 1px 2px rgba(0,0,0,.15), -1px -1px 1px rgba(255,255,255,.5);--shadow-sm: 1px 1px 3px rgba(0,0,0,.18), -1px -1px 2px rgba(255,255,255,.45);--shadow-base: 2px 2px 4px rgba(0,0,0,.15), -1px -1px 2px rgba(255,255,255,.4);--shadow-md: 2px 2px 6px rgba(0,0,0,.18), -1px -1px 3px rgba(255,255,255,.35);--shadow-lg: 3px 3px 10px rgba(0,0,0,.15), -2px -2px 5px rgba(255,255,255,.3);--shadow-xl: 4px 4px 16px rgba(0,0,0,.18), -2px -2px 6px rgba(255,255,255,.25);--shadow-2xl: 6px 6px 24px rgba(0,0,0,.2), -3px -3px 8px rgba(255,255,255,.2);--shadow-inset: inset 0px -1px 0px #999;--btn-shadow: 1px 1px 2px rgba(0,0,0,.15), -1px -1px 1px rgba(255,255,255,.4);--card-shadow: 2px 2px 6px rgba(0,0,0,.12), -1px -1px 3px rgba(255,255,255,.4);--modal-shadow: 6px 6px 30px rgba(0,0,0,.3), -3px -3px 10px rgba(255,255,255,.15);--awesomebar-shadow: 3px 3px 12px rgba(0,0,0,.15), -2px -2px 6px rgba(255,255,255,.3);--focus-default: 0 0 0 2px rgba(150,150,150,.5);--scrollbar-thumb-color: #999;--scrollbar-track-color: #c8c8c8;--switch-bg: #aaa;--checkbox-color: #555;--checkbox-gradient: linear-gradient(180deg, #777 0%, #666 100%);--timeline-badge-color: #555;--timeline-badge-bg: #ccc;--date-active-bg: #777;--date-active-text: #f0f0f0;--date-range-bg: #ccc;--progress-bar-bg: #777;--code-block-bg: #444;--code-block-text: #ccc}[data-jey-theme=chrome] body{background:radial-gradient(ellipse at 25% 15%,rgba(255,255,255,.45) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(255,255,255,.2) 0%,transparent 45%),radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.03) 0%,transparent 70%),linear-gradient(168deg,#d8d8d8 0%,#c4c4c4 40%,#b8b8b8 70%,#c8c8c8 100%)!important;background-attachment:fixed!important}[data-jey-theme=chrome] .page-container{background:transparent!important}[data-jey-theme=chrome] .navbar{background:linear-gradient(45deg,#aaa 2%,#ddd 8%,#bbb 18%,#e8e8e8 30%,#ccc 45%,#eee 55%,#bbb 68%,#ddd 80%,#aaa 95%)!important;border-bottom:1px solid #888!important;box-shadow:inset 0 1px #ffffffb3,inset 0 -1px #00000014,0 2px 4px #00000026!important}[data-jey-theme=chrome] .navbar .navbar-nav .nav-link{color:#444!important;text-shadow:0 1px 0 rgba(255,255,255,.5)}[data-jey-theme=chrome] .navbar .navbar-nav .nav-link:hover{color:#222!important;background:linear-gradient(180deg,rgba(255,255,255,.35) 0%,rgba(255,255,255,.1) 100%)!important;border-radius:6px}[data-jey-theme=chrome] .search-bar input{background:linear-gradient(180deg,#c0c0c0 0%,#d0d0d0 100%)!important;border:1px solid #999!important;box-shadow:inset 0 2px 4px #00000026,inset 0 0 0 1px #0000000d,0 1px #ffffff80!important;color:#333!important;border-radius:6px!important}[data-jey-theme=chrome] .search-bar input:focus{background:linear-gradient(180deg,#d5d5d5 0%,#e0e0e0 100%)!important;border-color:#888!important;box-shadow:inset 0 1px 3px #0000001a,0 0 0 2px #9696964d,0 1px #fff6!important}[data-jey-theme=chrome] .search-bar .search-icon{color:#777!important}[data-jey-theme=chrome] .body-sidebar-container{background:linear-gradient(160deg,#b8b8b8 0%,#f0f0f0 12%,#c0c0c0 28%,#f4f4f4 42%,#b8b8b8 58%,#ededed 72%,#aaa 88%,#ddd 100%)!important;border-right:1px solid #888!important;box-shadow:inset -1px 0 #fff9,inset 0 1px #ffffffb3,inset 0 -1px #0000001a,2px 0 8px #0000001f!important}[data-jey-theme=chrome] .body-sidebar-container .body-sidebar,[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-top,[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-bottom,[data-jey-theme=chrome] .body-sidebar-container .body-sidebar-cards{background:transparent!important}[data-jey-theme=chrome] .body-sidebar .standard-sidebar-item .item-anchor:hover{background:linear-gradient(90deg,rgba(255,255,255,.25) 0%,rgba(255,255,255,.05) 100%)!important}[data-jey-theme=chrome] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor{background:linear-gradient(45deg,#bbb 5%,#ddd 30%,#ccc 60%,#ddd 90%)!important;box-shadow:inset 0 1px #fff9,inset 0 -1px #00000014,1px 1px 2px #0000001a,-1px -1px 1px #ffffff4d!important;border-radius:8px}[data-jey-theme=chrome] .body-sidebar .sidebar-item-icon{color:#666!important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.5))}[data-jey-theme=chrome] .frappe-menu .menu-item-icon .jey-icon{width:20px!important;height:20px!important;stroke:#555!important;fill:none!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.4))!important}[data-jey-theme=chrome] .sidebar-header .header-logo .jey-icon{width:22px!important;height:22px!important;stroke:#555!important;fill:none!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.4))!important}[data-jey-theme=chrome] .btn-primary{background:linear-gradient(45deg,#666 5%,#aaa 10%,#888 30%,#999 50%,#888 70%,#aaa 85%,#666 95%)!important;color:#f0f0f0!important;border:1px solid #555!important;box-shadow:2px 2px 4px #0003,-1px -1px 2px #ffffff26,inset 0 1px #ffffff4d,inset 0 -1px #00000026,inset 2px 2px 5px #0000,inset -1px -1px 2px #fff0!important;text-shadow:0 -1px 0 rgba(0,0,0,.25);position:relative;overflow:hidden;transition:box-shadow .25s cubic-bezier(.22,1,.36,1),border-color .25s cubic-bezier(.22,1,.36,1)!important}[data-jey-theme=chrome] .btn-primary:before{content:"";position:absolute;top:0;left:-50%;width:30%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transform:skew(-15deg);transition:left .4s ease;pointer-events:none}[data-jey-theme=chrome] .btn-primary:hover:before{left:120%}[data-jey-theme=chrome] .btn-primary:hover{background:linear-gradient(45deg,#777 5%,#bbb 10%,#999 30%,#aaa 50%,#999 70%,#bbb 85%,#777 95%)!important;box-shadow:2px 2px 6px #00000040,-1px -1px 3px #fff3,inset 0 1px #ffffff59,inset 0 -1px #00000026,inset 2px 2px 5px #0000,inset -1px -1px 2px #fff0!important}[data-jey-theme=chrome] .btn-primary:active{background:linear-gradient(45deg,#555 5%,#888 10%,#777 30%,#888 50%,#777 70%,#888 85%,#555 95%)!important;box-shadow:2px 2px 4px #0000,-1px -1px 2px #fff0,inset 0 1px #fff0,inset 0 -1px #0000000d,inset 3px 3px 7px #00000059,inset -1px -1px 2px #ffffff1f!important;transition:box-shadow .08s ease-out!important}[data-jey-theme=chrome] .btn-default,[data-jey-theme=chrome] .btn-secondary{background:linear-gradient(45deg,#bbb 5%,#eee 10%,#ccc 30%,#e0e0e0 50%,#ccc 70%,#eee 85%,#bbb 95%)!important;border:1px solid #999!important;color:#444!important;box-shadow:1px 1px 3px #0000001f,-1px -1px 2px #fff6,inset 0 1px #fff9,inset 0 -1px #0000000f,inset 2px 2px 4px #0000,inset -1px -1px 1px #fff0!important;text-shadow:0 1px 0 rgba(255,255,255,.5);transition:box-shadow .25s cubic-bezier(.22,1,.36,1),border-color .25s cubic-bezier(.22,1,.36,1)!important}[data-jey-theme=chrome] .btn-default:hover,[data-jey-theme=chrome] .btn-secondary:hover{background:linear-gradient(45deg,#c0c0c0 5%,#f2f2f2 10%,#d4d4d4 30%,#e8e8e8 50%,#d4d4d4 70%,#f2f2f2 85%,#c0c0c0 95%)!important;border-color:#888!important;box-shadow:2px 2px 4px #00000026,-1px -1px 2px #fff6,inset 0 1px #ffffffb3,inset 0 -1px #0000000f,inset 2px 2px 4px #0000,inset -1px -1px 1px #fff0!important}[data-jey-theme=chrome] .btn-default:active,[data-jey-theme=chrome] .btn-secondary:active{background:linear-gradient(45deg,#aaa 5%,#d8d8d8 10%,#bbb 30%,#ccc 50%,#bbb 70%,#d8d8d8 85%,#aaa 95%)!important;box-shadow:1px 1px 3px #0000,-1px -1px 2px #fff0,inset 0 1px #fff0,inset 0 -1px #0000000d,inset 3px 3px 6px #0000004d,inset -1px -1px 1px #ffffff26!important;transition:box-shadow .08s ease-out!important}[data-jey-theme=chrome] .btn-danger{background:linear-gradient(45deg,#b33 5%,#e88 10%,#c55 30%,#d77 50%,#c55 70%,#e88 85%,#b33 95%)!important;color:#fff!important;border:1px solid #944!important;box-shadow:2px 2px 4px #0003,-1px -1px 2px #ffffff1a,inset 0 1px #ffffff40!important;text-shadow:0 -1px 0 rgba(0,0,0,.2)}[data-jey-theme=chrome] .btn-danger:hover{background:linear-gradient(45deg,#c44 5%,#f99 10%,#d66 30%,#e88 50%,#d66 70%,#f99 85%,#c44 95%)!important}[data-jey-theme=chrome] .btn-ghost:hover{background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.05) 100%)!important}[data-jey-theme=chrome] input.form-control:not([type="checkbox"]):not([type="radio"]),[data-jey-theme=chrome] textarea.form-control{background:#d0d0d0!important;border:1px solid #999!important;color:#333!important;box-shadow:inset 1px 1px 2px #0000001a,inset -1px -1px 1px #ffffff40,inset 0 1px 1px #0000000a!important;transition:background-color .45s cubic-bezier(.22,1,.36,1),border-color .45s cubic-bezier(.22,1,.36,1),box-shadow .45s cubic-bezier(.22,1,.36,1)!important}[data-jey-theme=chrome] input.form-control:not([type="checkbox"]):not([type="radio"]):focus,[data-jey-theme=chrome] textarea.form-control:focus{background:#cbcbcb!important;border-color:#777!important;box-shadow:inset 4px 4px 8px #00000047,inset -1px -1px 1px #ffffff26,inset 0 3px 5px #0000002e!important}[data-jey-theme=chrome] .form-control:disabled,[data-jey-theme=chrome] .form-control[disabled]{background:#d8d8d8!important;color:#888!important;box-shadow:inset 1px 1px 2px #0000000f!important}[data-jey-theme=chrome] .frappe-control .control-label,[data-jey-theme=chrome] .frappe-control label{color:#444!important;text-shadow:0 1px 0 rgba(255,255,255,.5)}[data-jey-theme=chrome] select.form-control,[data-jey-theme=chrome] select.input-with-feedback{background:#d0d0d0!important}[data-jey-theme=chrome] .form-page{background:linear-gradient(45deg,#ccc 3%,#e8e8e8 10%,#d5d5d5 25%,#eee 45%,#d8d8d8 60%,#e8e8e8 80%,#ccc 97%)!important;border:1px solid #aaa!important;box-shadow:3px 3px 8px #0000001f,-2px -2px 4px #fff6,inset 0 1px #ffffffb3,inset 0 -1px #0000000d!important;border-radius:var(--border-radius-lg)!important}[data-jey-theme=chrome] .form-section .section-head{color:#444!important;text-shadow:0 1px 0 rgba(255,255,255,.5);border-bottom:1px solid #b0b0b0!important;position:relative}[data-jey-theme=chrome] .frappe-card{background:linear-gradient(45deg,#c8c8c8 3%,#e5e5e5 12%,#d4d4d4 30%,#eaeaea 50%,#d4d4d4 70%,#e5e5e5 88%,#c8c8c8 97%)!important;border:1px solid #aaa!important;box-shadow:2px 2px 6px #0000001a,-1px -1px 3px #fff6,inset 0 1px #fff9!important}[data-jey-theme=chrome] .form-sidebar{border-left:1px solid #aaa!important}[data-jey-theme=chrome] .form-sidebar .sidebar-section{border-bottom:1px solid #b0b0b0!important}[data-jey-theme=chrome] .modal-content{background:linear-gradient(45deg,#ccc 3%,#e8e8e8 12%,#d5d5d5 30%,#eee 50%,#d5d5d5 70%,#e8e8e8 88%,#ccc 97%)!important;border:1px solid #999!important;box-shadow:6px 6px 24px #00000040,-3px -3px 8px #ffffff26,inset 0 1px #fff9,inset 0 0 0 1px #ffffff59!important}[data-jey-theme=chrome] .modal-header{background:linear-gradient(45deg,#b0b0b0 5%,#ddd 12%,#c0c0c0 30%,#e5e5e5 50%,#c0c0c0 70%,#ddd 88%,#b0b0b0 95%)!important;border-bottom:1px solid #999!important;box-shadow:inset 0 1px #fff9,inset 0 -1px #0000000f!important}[data-jey-theme=chrome] .modal-header .modal-title{color:#333!important;text-shadow:0 1px 0 rgba(255,255,255,.5)}[data-jey-theme=chrome] .modal-footer{background:linear-gradient(45deg,#b8b8b8 5%,#d8d8d8 20%,#c0c0c0 50%,#d8d8d8 80%,#b8b8b8 95%)!important;border-top:1px solid #999!important}[data-jey-theme=chrome] .modal-backdrop{background-color:#2828288c!important}[data-jey-theme=chrome] .page-head{background:linear-gradient(45deg,#b8b8b8 3%,#e0e0e0 10%,#c8c8c8 25%,#eaeaea 45%,#ccc 60%,#e0e0e0 80%,#b8b8b8 97%)!important;border-bottom:1px solid #999!important;box-shadow:inset 0 1px #fff9,inset 0 -1px #0000000f,0 2px 4px #00000014!important}[data-jey-theme=chrome] .page-head .title-text{color:#333!important;text-shadow:0 1px 0 rgba(255,255,255,.5)}[data-jey-theme=chrome] .list-row-head{background:linear-gradient(45deg,#aaa 3%,#d8d8d8 10%,#bbb 25%,#e0e0e0 45%,#bbb 60%,#d8d8d8 80%,#aaa 97%)!important;box-shadow:inset 0 1px #fff9,inset 0 -1px #0000000f!important}[data-jey-theme=chrome] .list-row-container .list-row{border-bottom:1px solid #b8b8b8!important}[data-jey-theme=chrome] .list-row-container:hover{background:linear-gradient(90deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.05) 100%)!important}[data-jey-theme=chrome] .result .list-row-container .level-left .list-row--col .level-left .ellipsis{color:#404040!important}[data-jey-theme=chrome] .frappe-list .list-row .level-right,[data-jey-theme=chrome] .frappe-list .list-row-head .level-right{background:linear-gradient(90deg,rgba(216,216,216,.85) 0%,rgba(208,208,208,.88) 100%)!important;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border-left:1px solid #a0a0a0!important;box-shadow:inset 1px 0 #ffffff80!important}[data-jey-theme=chrome] .frappe-list .list-row-container:hover .level-right{background:linear-gradient(90deg,rgba(224,224,224,.9) 0%,rgba(216,216,216,.92) 100%)!important;box-shadow:inset 1px 0 #ffffff8c,-6px 0 10px #0000000d!important}[data-jey-theme=chrome] .layout-side-section{border-right:1px solid #aaa!important}[data-jey-theme=chrome] .frappe-control[data-fieldtype=Table] .form-grid{border:1px solid #999!important}[data-jey-theme=chrome] .grid-heading-row{background:linear-gradient(45deg,#aaa 3%,#d5d5d5 10%,#bbb 30%,#ddd 50%,#bbb 70%,#d5d5d5 90%,#aaa 97%)!important;box-shadow:inset 0 1px #fff9,inset 0 -1px #0000000f!important}[data-jey-theme=chrome] .grid-heading-row .static-area{color:#444!important;text-shadow:0 1px 0 rgba(255,255,255,.5)}[data-jey-theme=chrome] .rows .grid-row:hover{background:linear-gradient(90deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.05) 100%)!important}[data-jey-theme=chrome] .rows .grid-row{border-bottom:1px solid #b8b8b8!important}[data-jey-theme=chrome] .grid-footer{background:transparent!important;border-top:1px solid #999!important}[data-jey-theme=chrome] .rows .grid-row.editable-row,[data-jey-theme=chrome] .rows .grid-row:has(.editable-row){border-bottom:1px solid #b8b8b8!important}[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"]),[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control,[data-jey-theme=chrome] .grid-row>.data-row select.form-control,[data-jey-theme=chrome] .grid-row>.data-row select.input-with-feedback,[data-jey-theme=chrome] .grid-row>.data-row .awesomplete input,[data-jey-theme=chrome] .grid-row>.data-row .like-disabled-input{background:transparent!important;border:0!important;box-shadow:none!important;outline:none!important;color:#333!important;transition:box-shadow .45s cubic-bezier(.22,1,.36,1),background .45s cubic-bezier(.22,1,.36,1)!important}[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"]):focus,[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control:focus,[data-jey-theme=chrome] .grid-row>.data-row select.form-control:focus,[data-jey-theme=chrome] .grid-row>.data-row select.input-with-feedback:focus,[data-jey-theme=chrome] .grid-row>.data-row .awesomplete input:focus{background:linear-gradient(45deg,#bbb 5%,#d8d8d8 10%,#c4c4c4 30%,#d0d0d0 50%,#c4c4c4 70%,#d8d8d8 85%,#bbb 95%)!important;border:0!important;outline:none!important;box-shadow:inset 0 1px #fff0,inset 0 -1px #0000000d,inset 3px 3px 6px #0000004d,inset -1px -1px 1px #ffffff26!important;transition:box-shadow .45s cubic-bezier(.22,1,.36,1),background .45s cubic-bezier(.22,1,.36,1)!important}[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"]):disabled,[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"])[disabled],[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"])[readonly],[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control:disabled,[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control[readonly],[data-jey-theme=chrome] .grid-row>.data-row select.form-control:disabled,[data-jey-theme=chrome] .grid-row>.data-row select.input-with-feedback:disabled{background:#d8d8d8!important;box-shadow:none!important;color:#666!important}[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"]):disabled:focus,[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"])[disabled]:focus,[data-jey-theme=chrome] .grid-row>.data-row input.form-control:not([type="checkbox"]):not([type="radio"])[readonly]:focus,[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control:disabled:focus,[data-jey-theme=chrome] .grid-row>.data-row textarea.form-control[readonly]:focus,[data-jey-theme=chrome] .grid-row>.data-row select.form-control:disabled:focus{background:#d8d8d8!important;box-shadow:none!important}[data-jey-theme=chrome] .grid-row .editable-row .form-control{padding-top:10px!important;padding-bottom:10px!important;height:auto!important}[data-jey-theme=chrome] .form-tabs .nav-link{color:#666!important;text-shadow:0 1px 0 rgba(255,255,255,.4)}[data-jey-theme=chrome] .form-tabs .nav-link:hover{color:#444!important;background:linear-gradient(180deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.05) 100%)!important}[data-jey-theme=chrome] .form-tabs .nav-link.active{color:#333!important;background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 100%)!important}[data-jey-theme=chrome] .form-tabs .nav-link:after{background:#777}[data-jey-theme=chrome] .dropdown-menu{background:linear-gradient(45deg,#c0c0c0 3%,#e5e5e5 10%,#d0d0d0 30%,#eaeaea 50%,#d0d0d0 70%,#e5e5e5 90%,#c0c0c0 97%)!important;border:1px solid #999!important;box-shadow:4px 4px 12px #0000002e,-2px -2px 4px #ffffff26,inset 0 1px #fff9!important}[data-jey-theme=chrome] .dropdown-item{color:#444!important}[data-jey-theme=chrome] .dropdown-item:hover,[data-jey-theme=chrome] .dropdown-item:focus{background:linear-gradient(90deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.05) 100%)!important;color:#222!important}[data-jey-theme=chrome] .dropdown-divider{border-top-color:#aaa!important}[data-jey-theme=chrome] .desk-alert{background:linear-gradient(45deg,#c0c0c0 5%,#e5e5e5 15%,#d0d0d0 40%,#e8e8e8 60%,#d0d0d0 85%,#c0c0c0 95%)!important;border:1px solid #999!important;box-shadow:3px 3px 8px #0000001f,-1px -1px 3px #ffffff4d,inset 0 1px #ffffff80!important}[data-jey-theme=chrome] .breadcrumb-container a{color:#666!important;text-shadow:0 1px 0 rgba(255,255,255,.4)}[data-jey-theme=chrome] .breadcrumb-container a:hover{color:#333!important}[data-jey-theme=chrome] .new-timeline:before{border-left-color:#aaa!important}[data-jey-theme=chrome] .timeline-dot{background:linear-gradient(45deg,#bbb,#ddd,#bbb)!important;border:1px solid #999!important;box-shadow:1px 1px 2px #0000001a,-1px -1px 1px #ffffff4d}[data-jey-theme=chrome] .indicator-pill{box-shadow:inset 0 1px #ffffff4d,1px 1px 1px #00000014}[data-jey-theme=chrome] .popover{background:linear-gradient(45deg,#c0c0c0 3%,#e5e5e5 10%,#d0d0d0 30%,#eaeaea 50%,#d0d0d0 70%,#e5e5e5 90%,#c0c0c0 97%)!important;border:1px solid #999!important;box-shadow:4px 4px 12px #00000026,-2px -2px 4px #fff3,inset 0 1px #ffffff80!important}[data-jey-theme=chrome] .popover .popover-body{color:#404040!important}[data-jey-theme=chrome] .ce-block .links-widget-box,[data-jey-theme=chrome] .ce-block .number-widget-box{background:linear-gradient(45deg,#c0c0c0 3%,#e5e5e5 12%,#d0d0d0 30%,#eaeaea 50%,#d0d0d0 70%,#e5e5e5 88%,#c0c0c0 97%)!important;border:1px solid #aaa!important;box-shadow:2px 2px 6px #0000001a,-1px -1px 3px #ffffff59,inset 0 1px #fff9!important}[data-jey-theme=chrome] .ce-block .links-widget-box:after,[data-jey-theme=chrome] .ce-block .number-widget-box:after{background:conic-gradient(from 140deg,#a0a0a0,#e0e0e0,#888,#d0d0d0,#a0a0a0)!important}[data-jey-theme=chrome] .ce-block .links-widget-box:hover,[data-jey-theme=chrome] .ce-block .number-widget-box:hover{box-shadow:3px 3px 10px #00000024,-2px -2px 5px #ffffff4d,inset 0 1px #ffffffb3!important}[data-jey-theme=chrome] ::-webkit-scrollbar{width:10px;height:10px}[data-jey-theme=chrome] ::-webkit-scrollbar-track{background:linear-gradient(90deg,#c0c0c0,#d0d0d0,#c0c0c0)}[data-jey-theme=chrome] ::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#888,#bbb,#999,#bbb,#888);border-radius:5px;border:1px solid #999}[data-jey-theme=chrome] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#777,#aaa,#888,#aaa,#777)}[data-jey-theme=chrome] a{color:#555}[data-jey-theme=chrome] a:hover{color:#333}@media print{[data-jey-theme=chrome] body,[data-jey-theme=chrome] .page-container,[data-jey-theme=chrome] .form-page,[data-jey-theme=chrome] .frappe-card,[data-jey-theme=chrome] .modal-content,[data-jey-theme=chrome] .navbar{background:white!important;box-shadow:none!important;border-color:#ddd!important;text-shadow:none!important}[data-jey-theme=chrome] .btn-primary{background:#333!important;text-shadow:none!important}}@keyframes jey-silk-glow{0%,to{opacity:.35}50%{opacity:.6}}[data-jey-theme=silk]{--jey-gold: #c39a54;--jey-gold-deep: #a67f3b;--jey-gold-soft: #e6d3a8;--jey-gold-tint: rgba(196, 160, 84, .12);--jey-cream: #f4ecde;--jey-card: #fbf8f2;--jey-ink: #453d31;--jey-ink-soft: #6d6252;--jey-line: #ebe0cd;--jey-shadow-card: 0 6px 24px rgba(120, 100, 60, .11), 0 1px 4px rgba(120, 100, 60, .06);--jey-shadow-hover: 0 12px 34px rgba(120, 100, 60, .16), 0 2px 8px rgba(120, 100, 60, .08);--jey-silk-bg: linear-gradient(135deg, rgba(230, 213, 182, .3) 0%, rgba(244, 236, 222, .1) 45%, rgba(226, 208, 178, .34) 100%), url(/assets/jey_theme/images/silk-bg.jpg) center center / cover no-repeat;--bg-color: #f1e8d8;--fg-color: #fbf8f2;--card-bg: #fbf8f2;--subtle-accent: #f4ecde;--subtle-fg: #efe6d5;--fg-hover-color: #f6efe3;--highlight-color: #f4ecde;--navbar-bg: transparent;--modal-bg: #fbf8f2;--toast-bg: #fbf8f2;--popover-bg: #fbf8f2;--control-bg: #fbf8f2;--control-bg-on-gray: #f1e8d8;--awesomebar-focus-bg: #ffffff;--disabled-control-bg: #efe6d5;--skeleton-bg: #ece1cd;--surface-menu-bar: #f4ecde;--surface-white: #fbf8f2;--surface-gray-1: #f4ecde;--surface-gray-2: #efe6d5;--surface-gray-3: #e9dcc6;--surface-gray-4: #ddceb2;--surface-modal: #fbf8f2;--placeholder-color: #b3a58c;--sidebar-hover-color: #efe6d5;--sidebar-active-color: #ffffff;--sidebar-border-color: transparent;--divider-color: #e6dcc6;--heading-color: #453d31;--text-color: #5a5040;--text-neutral: #453d31;--text-muted: #8a7d68;--text-light: #a4977f;--text-dark: #453d31;--disabled-text-color: #a4977f;--ink-gray-6: #8a7d68;--ink-gray-7: #6d6252;--ink-gray-8: #504733;--ink-gray-9: #453d31;--border-color: #ebe0cd;--dark-border-color: #ddceb2;--table-border-color: #ebe0cd;--btn-group-border-color: #ddceb2;--outline-gray-1: #ebe0cd;--outline-gray-2: #ddceb2;--outline-gray-modals: #e6dcc6;--primary: #c39a54;--primary-color: #c39a54;--brand-color: #c39a54;--btn-primary: #c39a54;--btn-default-bg: #fbf8f2;--btn-default-hover-bg: #f1e8d8;--btn-ghost-hover-bg: #efe6d5;--border-primary: #c39a54;--border-radius: 8px;--border-radius-sm: 6px;--border-radius-md: 12px;--border-radius-lg: 16px;--border-radius-full: 999px;--shadow-xs: 0 1px 2px rgba(120, 100, 60, .06);--shadow-sm: 0 2px 6px rgba(120, 100, 60, .07);--shadow-base: 0 3px 10px rgba(120, 100, 60, .08);--shadow-md: 0 4px 16px rgba(120, 100, 60, .09);--shadow-lg: 0 8px 24px rgba(120, 100, 60, .11);--shadow-xl: 0 12px 32px rgba(120, 100, 60, .13);--shadow-2xl: 0 18px 44px rgba(120, 100, 60, .16);--card-shadow: 0 4px 20px rgba(120, 100, 60, .08), 0 1px 3px rgba(120, 100, 60, .05);--btn-shadow: 0 1px 2px rgba(120, 100, 60, .08);--modal-shadow: 0 20px 48px rgba(90, 70, 40, .22);--awesomebar-shadow: 0 4px 16px rgba(120, 100, 60, .1);--focus-default: 0 0 0 3px rgba(196, 160, 84, .25);--scrollbar-thumb-color: #d8c8a6;--scrollbar-track-color: #f1e8d8;--switch-bg: #d8c8a6;--checkbox-color: #c39a54;--checkbox-gradient: linear-gradient(180deg, #cfa863 0%, #b98f45 100%);--timeline-badge-color: #c39a54;--timeline-badge-bg: #f1e8d8;--date-active-bg: #c39a54;--date-active-text: #ffffff;--date-range-bg: #f1e4cb;--progress-bar-bg: #c39a54}[data-jey-theme=silk] body{background:var(--jey-silk-bg)!important;background-attachment:fixed!important;color:var(--text-color)}[data-jey-theme=silk] .page-container,[data-jey-theme=silk] .layout-main-section-wrapper,[data-jey-theme=silk] .layout-main-section{background:transparent!important}[data-jey-theme=silk] .navbar{background:rgba(251,248,242,.72)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(235,224,205,.6)!important;box-shadow:0 1px 8px #78643c0d!important}[data-jey-theme=silk] .navbar .navbar-nav .nav-link{color:var(--jey-ink-soft)!important}[data-jey-theme=silk] .navbar .navbar-nav .nav-link:hover{color:var(--jey-ink)!important;background:var(--jey-gold-tint)!important;border-radius:10px}[data-jey-theme=silk] .search-bar input,[data-jey-theme=silk] .navbar .search-bar .form-control{background:rgba(255,255,255,.75)!important;border:1px solid var(--jey-line)!important;box-shadow:inset 0 1px 2px #78643c0d!important;color:var(--jey-ink)!important;border-radius:999px!important}[data-jey-theme=silk] .search-bar input:focus{background:#ffffff!important;border-color:var(--jey-gold-soft)!important;box-shadow:0 0 0 3px #c4a0542e!important}[data-jey-theme=silk] .search-bar .search-icon{color:var(--jey-gold-deep)!important}[data-jey-theme=silk] .body-sidebar-container{background:rgba(247,240,227,.6)!important;border-right:1px solid rgba(235,224,205,.7)!important;box-shadow:none!important}[data-jey-theme=silk] .body-sidebar-container .body-sidebar,[data-jey-theme=silk] .body-sidebar-container .body-sidebar-top,[data-jey-theme=silk] .body-sidebar-container .body-sidebar-bottom,[data-jey-theme=silk] .body-sidebar-container .body-sidebar-cards{background:transparent!important}[data-jey-theme=silk] .body-sidebar .standard-sidebar-item .item-anchor{border-radius:12px;transition:background .2s ease,box-shadow .2s ease}[data-jey-theme=silk] .body-sidebar .standard-sidebar-item .item-anchor:hover{background:rgba(255,255,255,.55)!important}[data-jey-theme=silk] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor,[data-jey-theme=silk] .body-sidebar .standard-sidebar-item.selected .item-anchor{background:#ffffff!important;box-shadow:0 2px 10px #78643c1a!important;border-radius:12px}[data-jey-theme=silk] .body-sidebar .standard-sidebar-item.active-sidebar .sidebar-item-label,[data-jey-theme=silk] .body-sidebar .standard-sidebar-item.selected .sidebar-item-label{color:var(--jey-ink)!important;font-weight:600}[data-jey-theme=silk] .body-sidebar .sidebar-item-icon,[data-jey-theme=silk] .body-sidebar .standard-sidebar-item.active-sidebar .sidebar-item-icon{color:var(--jey-gold-deep)!important}[data-jey-theme=silk] .body-sidebar-container a,[data-jey-theme=silk] .body-sidebar-container .sidebar-item-label,[data-jey-theme=silk] .body-sidebar-container .sidebar-item-control{color:var(--text-color)!important}[data-jey-theme=silk] .sidebar-header .header-logo .jey-icon,[data-jey-theme=silk] .frappe-menu .menu-item-icon .jey-icon{stroke:var(--jey-gold-deep)!important;fill:none!important;stroke-width:1.7!important;stroke-linecap:round!important;stroke-linejoin:round!important}[data-jey-theme=silk] .btn-primary{background:linear-gradient(180deg,#cfa863 0%,#bd9146 100%)!important;color:#fffdf8!important;border:1px solid #b0873f!important;box-shadow:0 2px 8px #b48c3c40,inset 0 1px #ffffff40!important;text-shadow:0 -1px 0 rgba(120,90,30,.2);border-radius:10px!important;transition:box-shadow .2s ease,transform .1s ease,background .2s ease!important}[data-jey-theme=silk] .btn-primary:hover{background:linear-gradient(180deg,#d6b170 0%,#c59a4f 100%)!important;box-shadow:0 4px 14px #b48c3c52,inset 0 1px #ffffff4d!important}[data-jey-theme=silk] .btn-primary:active{transform:translateY(1px);box-shadow:0 1px 4px #b48c3c33,inset 0 2px 4px #785a1e2e!important}[data-jey-theme=silk] .btn-default,[data-jey-theme=silk] .btn-secondary{background:rgba(255,255,255,.85)!important;border:1px solid var(--jey-line)!important;color:var(--jey-ink)!important;box-shadow:0 1px 3px #78643c0f!important;border-radius:10px!important;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease!important}[data-jey-theme=silk] .btn-default:hover,[data-jey-theme=silk] .btn-secondary:hover{background:#ffffff!important;border-color:var(--jey-gold-soft)!important;box-shadow:0 3px 10px #78643c1a!important}[data-jey-theme=silk] .btn-ghost:hover{background:var(--jey-gold-tint)!important}[data-jey-theme=silk] input.form-control:not([type="checkbox"]):not([type="radio"]),[data-jey-theme=silk] textarea.form-control,[data-jey-theme=silk] select.form-control,[data-jey-theme=silk] select.input-with-feedback{background:rgba(255,255,255,.8)!important;border:1px solid var(--jey-line)!important;color:var(--jey-ink)!important;box-shadow:inset 0 1px 2px #78643c0a!important;border-radius:10px!important;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease!important}[data-jey-theme=silk] input.form-control:not([type="checkbox"]):not([type="radio"]):focus,[data-jey-theme=silk] textarea.form-control:focus,[data-jey-theme=silk] select.form-control:focus{background:#ffffff!important;border-color:var(--jey-gold-soft)!important;box-shadow:0 0 0 3px #c4a0542e!important}[data-jey-theme=silk] .form-control:disabled,[data-jey-theme=silk] .form-control[disabled]{background:#efe6d5!important;color:var(--text-light)!important;box-shadow:none!important}[data-jey-theme=silk] .frappe-control .control-label,[data-jey-theme=silk] .frappe-control label{color:var(--jey-ink-soft)!important}[data-jey-theme=silk] .widget,[data-jey-theme=silk] .ce-block .links-widget-box,[data-jey-theme=silk] .ce-block .number-widget-box,[data-jey-theme=silk] .ce-block .chart-widget-box,[data-jey-theme=silk] .ce-block .shortcut-widget-box,[data-jey-theme=silk] .ce-block .onboarding-widget-box,[data-jey-theme=silk] .frappe-card{background:linear-gradient(160deg,rgba(255,255,255,.46) 0%,rgba(255,252,245,.34) 55%,rgba(252,246,236,.4) 100%)!important;backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px) saturate(1.2);border:1.5px solid rgba(255,255,255,.9)!important;box-shadow:0 14px 34px #4a39232e,0 4px 10px #4a39231a,inset 0 1px 1px #fff9!important;border-radius:22px!important;transition:box-shadow .25s ease,transform .2s ease!important}[data-jey-theme=silk] .widget.onboarding-widget-box{background:linear-gradient(160deg,rgba(255,255,255,.46) 0%,rgba(255,252,245,.34) 55%,rgba(252,246,236,.4) 100%)!important}[data-jey-theme=silk] .ce-block .links-widget-box:hover,[data-jey-theme=silk] .ce-block .number-widget-box:hover,[data-jey-theme=silk] .ce-block .shortcut-widget-box:hover{border-color:#fff!important;box-shadow:0 22px 48px #4a39233d,0 6px 14px #4a392321,inset 0 1px 1px #ffffffb3!important;transform:translateY(-3px)}[data-jey-theme=silk] .widget .widget-head .widget-title,[data-jey-theme=silk] .widget-group .widget-group-head .widget-group-title{color:var(--jey-ink)!important;font-weight:600}[data-jey-theme=silk] .number-widget-box .widget-content .number{color:var(--jey-ink)!important}[data-jey-theme=silk] .shortcut-widget-box .indicator-pill,[data-jey-theme=silk] .widget .shortcut-icon{color:var(--jey-gold-deep)!important}[data-jey-theme=silk] .form-page{background:rgba(251,248,242,.9)!important;border:1px solid rgba(235,224,205,.8)!important;box-shadow:var(--jey-shadow-card)!important;border-radius:16px!important}[data-jey-theme=silk] .form-section .section-head{color:var(--jey-ink)!important;border-bottom:1px solid var(--jey-line)!important}[data-jey-theme=silk] .chart-container .line-chart-rect,[data-jey-theme=silk] .chart-container path.line-graph-path,[data-jey-theme=silk] .chart-container path.dataset-path{stroke:var(--jey-gold)!important}[data-jey-theme=silk] .chart-container .dataset-circle,[data-jey-theme=silk] .chart-container circle.fill{fill:var(--jey-gold)!important;stroke:var(--jey-gold)!important}[data-jey-theme=silk] .chart-container path.region-fill{fill:#c4a0541f!important;stroke:none!important}[data-jey-theme=silk] .page-head{background:transparent!important;border-bottom:none!important;box-shadow:none!important}[data-jey-theme=silk] .page-head .title-text,[data-jey-theme=silk] .page-title .title-text{color:var(--jey-ink)!important}[data-jey-theme=silk] .list-row-head{background:rgba(244,236,222,.85)!important;border-bottom:1px solid var(--jey-line)!important;box-shadow:none!important;border-radius:12px 12px 0 0}[data-jey-theme=silk] .list-row-container .list-row{border-bottom:1px solid rgba(235,224,205,.7)!important}[data-jey-theme=silk] .list-row-container:hover{background:var(--jey-gold-tint)!important}[data-jey-theme=silk] .layout-side-section{border-right:1px solid var(--jey-line)!important}[data-jey-theme=silk] .modal-content{background:#fbf8f2!important;border:1px solid var(--jey-line)!important;box-shadow:0 20px 48px #5a462838!important;border-radius:18px!important}[data-jey-theme=silk] .modal-header{background:transparent!important;border-bottom:1px solid var(--jey-line)!important}[data-jey-theme=silk] .modal-header .modal-title{color:var(--jey-ink)!important}[data-jey-theme=silk] .modal-footer{background:transparent!important;border-top:1px solid var(--jey-line)!important}[data-jey-theme=silk] .modal-backdrop{background-color:#46372366!important}[data-jey-theme=silk] .dropdown-menu,[data-jey-theme=silk] .popover{background:#fbf8f2!important;border:1px solid var(--jey-line)!important;box-shadow:0 8px 24px #78643c24!important;border-radius:14px!important}[data-jey-theme=silk] .dropdown-item{color:var(--jey-ink-soft)!important;border-radius:8px}[data-jey-theme=silk] .dropdown-item:hover,[data-jey-theme=silk] .dropdown-item:focus{background:var(--jey-gold-tint)!important;color:var(--jey-ink)!important}[data-jey-theme=silk] .dropdown-divider{border-top-color:var(--jey-line)!important}[data-jey-theme=silk] .form-tabs .nav-link{color:var(--jey-ink-soft)!important}[data-jey-theme=silk] .form-tabs .nav-link:hover{color:var(--jey-ink)!important;background:var(--jey-gold-tint)!important;border-radius:8px}[data-jey-theme=silk] .form-tabs .nav-link.active{color:var(--jey-gold-deep)!important}[data-jey-theme=silk] .form-tabs .nav-link:after{background:var(--jey-gold)!important}[data-jey-theme=silk] a{color:var(--jey-gold-deep)}[data-jey-theme=silk] a:hover{color:#8c6b2c}[data-jey-theme=silk] ::-webkit-scrollbar{width:10px;height:10px}[data-jey-theme=silk] ::-webkit-scrollbar-track{background:#f1e8d8}[data-jey-theme=silk] ::-webkit-scrollbar-thumb{background:#dccba4;border-radius:5px;border:2px solid #f1e8d8}[data-jey-theme=silk] ::-webkit-scrollbar-thumb:hover{background:#cdb885}[data-jey-theme=silk] .jey-chrome{width:72px;height:72px;border-radius:22px;position:relative;background:rgba(255,255,255,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.7);box-shadow:0 4px 16px #78643c1a,inset 0 1px #ffffffd9;transition:all .3s ease}[data-jey-theme=silk] .desktop-icon:hover .jey-chrome{box-shadow:0 8px 24px #78643c29,inset 0 1px #ffffffe6;transform:translateY(-2px)}[data-jey-theme=silk] .jey-chrome-ring,[data-jey-theme=silk] .jey-chrome-gap,[data-jey-theme=silk] .jey-chrome-ring-inner{display:none}[data-jey-theme=silk] .jey-chrome-face{position:absolute;inset:0;border-radius:22px;overflow:hidden;background:transparent;box-shadow:none;display:flex;align-items:center;justify-content:center}[data-jey-theme=silk] .jey-face-glow{position:absolute;bottom:-4px;left:16px;right:16px;height:20px;border-radius:50%;background:radial-gradient(ellipse,rgba(196,160,84,.4) 0%,transparent 70%);animation:jey-silk-glow 4s ease-in-out infinite;pointer-events:none;z-index:0}[data-jey-theme=silk] .jey-face-reflection{position:absolute;top:0;left:0;right:0;height:50%;border-radius:22px 22px 0 0;background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,transparent 100%);pointer-events:none;z-index:1;animation:none}[data-jey-theme=silk] .jey-chrome-face .jey-icon{width:26px!important;height:26px!important;stroke:#b58f47!important;fill:none!important;stroke-width:1.6!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:drop-shadow(0 1px 2px rgba(180,140,60,.25))!important;position:relative;z-index:2}[data-jey-theme=silk] .icon-container.jey-chrome-done{border-radius:22px!important} +/*# sourceMappingURL=jey_theme.bundle.Y4KKUUQY.css.map */ diff --git a/jey_theme/public/dist/css/jey_theme.bundle.Y4KKUUQY.css.map b/jey_theme/public/dist/css/jey_theme.bundle.Y4KKUUQY.css.map new file mode 100644 index 0000000..87dd8a0 --- /dev/null +++ b/jey_theme/public/dist/css/jey_theme.bundle.Y4KKUUQY.css.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../../../../../../tmp/tmp-28091-pSoGadH2UZ8M/jey_theme/jey_theme/public/css/jey_theme.bundle.css"], + "sourcesContent": ["/* Bundled theme styles (was 3 raw app_include_css/web_include_css entries).\n One hashed bundle -> smaller preload header + auto cache-busting.\n Order preserved: shared -> theme_chrome -> theme_silk. */\n\n/* ===== shared.css ===== */\n/* ==========================================================================\n Jey Theme \u2014 Shared Styles (theme-independent)\n ========================================================================== */\n\n/* Override Frappe's default desk splash image (the blue \"E\").\n Splash markup is in templates/includes/splash_screen.html and gets removed\n by Frappe once the desk boots, so this only shows during page load. */\n.splash img {\n\tcontent: url(\"/assets/jey_theme/images/preloader.png\");\n\tmax-width: 64px !important;\n\twidth: 64px !important;\n\theight: auto;\n}\n\n/* Hide Organization desktop icon by default */\n.desktop-icon[data-id=\"Organization\"],\n.desktop-icon[data-id=\"ERPNext\"] {\n\tdisplay: none !important;\n}\n\n/* Fallback hide for blocked modules (main filtering happens in access_control.py).\n Desktop Icon records use label \"Quality\" and \"Subcontracting\" \u2014 match those. */\n.desktop-icon[data-id=\"Quality\"],\n.desktop-icon[data-id=\"Quality Management\"],\n.desktop-icon[data-id=\"Subcontracting\"] {\n\tdisplay: none !important;\n}\n\n/* ==========================================================================\n Toggle Switch Checkboxes\n ========================================================================== */\n\ninput[type=\"checkbox\"] {\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n appearance: none !important;\n width: 28px !important;\n min-width: 28px !important;\n height: 16px !important;\n background-color: var(--gray-400, #c0c6cc) !important;\n background-image: none !important;\n border-radius: 999px !important;\n border: none !important;\n position: relative !important;\n cursor: pointer !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12) !important;\n transition: background-color 0.25s ease !important;\n vertical-align: middle !important;\n margin: 0 !important;\n margin-right: 8px !important;\n outline: none !important;\n}\n\ninput[type=\"checkbox\"]::after {\n content: \"\" !important;\n width: 12px !important;\n height: 12px !important;\n background-color: #fff !important;\n border-radius: 50% !important;\n position: absolute !important;\n top: 2px !important;\n left: 2px !important;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;\n transition: transform 0.25s ease !important;\n border: none !important;\n}\n\ninput[type=\"checkbox\"]:checked,\ninput[type=\"checkbox\"].disabled-selected {\n background-color: #2da44e !important;\n background-image: none !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08) !important;\n}\n\ninput[type=\"checkbox\"]:checked::after,\ninput[type=\"checkbox\"].disabled-selected::after {\n transform: translateX(12px) !important;\n}\n\ninput[type=\"checkbox\"]:focus {\n outline: none !important;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(45, 164, 78, 0.25) !important;\n}\n\ninput[type=\"checkbox\"]:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n background-image: none !important;\n}\n\ninput[type=\"checkbox\"].disabled-selected {\n opacity: 0.7 !important;\n cursor: not-allowed !important;\n}\n\n\n/* ==========================================================================\n Table Grid \u2014 restore Frappe default checkboxes\n ========================================================================== */\n\n.row-check input[type=\"checkbox\"],\n.grid-row-check {\n width: var(--checkbox-size, 14px) !important;\n min-width: var(--checkbox-size, 14px) !important;\n height: var(--checkbox-size, 14px) !important;\n border-radius: 4px !important;\n border: 1px solid var(--gray-500) !important;\n background-color: transparent !important;\n background-image: none !important;\n box-shadow: none !important;\n margin-right: 0 !important;\n transition: none !important;\n}\n\n.row-check input[type=\"checkbox\"]::after,\n.grid-row-check::after {\n content: \"\" !important;\n width: auto !important;\n height: auto !important;\n background: none !important;\n border-radius: 0 !important;\n position: absolute !important;\n top: auto !important;\n left: auto !important;\n box-shadow: none !important;\n transition: none !important;\n transform: none !important;\n inset: -8px !important;\n opacity: 0 !important;\n}\n\n.row-check input[type=\"checkbox\"]:checked,\n.grid-row-check:checked {\n background-color: var(--primary) !important;\n background-image: url(\"data:image/svg+xml, \"), var(--checkbox-gradient) !important;\n background-size: 57%, 100% !important;\n background-repeat: no-repeat !important;\n background-position: center !important;\n border: none !important;\n box-shadow: none !important;\n}\n\n.row-check input[type=\"checkbox\"]:checked::after,\n.grid-row-check:checked::after {\n transform: none !important;\n}\n\n/* ==========================================================================\n Report View (frappe-datatable) \u2014 compact themed checkboxes\n The global toggle-switch styling (28\u00D716) doesn't fit the 32px select\n column or the 37px row-number column, so content gets clipped. Use the\n same compact square style as child-table grids (.row-check) \u2014 themed,\n not native.\n ========================================================================== */\n\n.datatable input[type=\"checkbox\"] {\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n appearance: none !important;\n width: var(--checkbox-size, 14px) !important;\n min-width: var(--checkbox-size, 14px) !important;\n height: var(--checkbox-size, 14px) !important;\n margin: 0 !important;\n padding: 0 !important;\n border: 1px solid var(--gray-500) !important;\n border-radius: 4px !important;\n background-color: transparent !important;\n background-image: none !important;\n box-shadow: none !important;\n cursor: pointer !important;\n vertical-align: middle !important;\n transition: none !important;\n}\n\n.datatable input[type=\"checkbox\"]::after {\n content: none !important;\n display: none !important;\n}\n\n.datatable input[type=\"checkbox\"]:checked {\n background-color: var(--primary) !important;\n background-image: url(\"data:image/svg+xml, \") !important;\n background-size: 57% !important;\n background-repeat: no-repeat !important;\n background-position: center !important;\n border: none !important;\n}\n\n.datatable input[type=\"checkbox\"]:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n}\n\n/* Centre the checkbox vertically in its cell \u2014 vertical-align:middle on the\n input alone isn't enough because datatable cells have their own line-box\n rules that anchor the box to the baseline. */\n.datatable .dt-cell__content:has(> input[type=\"checkbox\"]:only-child) {\n display: flex !important;\n align-items: center !important;\n justify-content: flex-start !important;\n}\n\n/* Filter row: input + help-icon squash each other in narrow columns. Let\n the input flex-shrink instead of overflowing its siblings. */\n.datatable .dt-row-filter .dt-cell__content {\n display: flex !important;\n align-items: center !important;\n gap: 2px;\n}\n\n.datatable .dt-row-filter .dt-filter.dt-input {\n flex: 1 1 0 !important;\n min-width: 0 !important;\n}\n\n.datatable .dt-row-filter .comparison-help-icon {\n flex: 0 0 auto;\n}\n\n/* ==========================================================================\n List View \u2014 restore toggle knob\n ========================================================================== */\n\ninput.list-row-checkbox::after,\ninput.list-header-checkbox::after {\n inset: auto !important;\n width: 12px !important;\n height: 12px !important;\n background-color: #fff !important;\n border-radius: 50% !important;\n position: absolute !important;\n top: 2px !important;\n left: 2px !important;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;\n transition: transform 0.25s ease !important;\n opacity: 1 !important;\n}\n\ninput.list-row-checkbox:checked::after,\ninput.list-header-checkbox:checked::after {\n transform: translateX(12px) !important;\n}\n\n\n.frappe-control[data-fieldtype=\"Check\"] .checkbox label {\n align-items: center !important;\n}\n\n.frappe-control[data-fieldtype=\"Check\"] .checkbox .input-area:not(.hide) {\n padding-top: 0 !important;\n display: flex !important;\n align-items: center !important;\n}\n\n/* ==========================================================================\n List View \u2014 swap filter and sort order\n ========================================================================== */\n\n.filter-section {\n display: flex !important;\n}\n\n.filter-section .sort-selector {\n order: -1 !important;\n margin-right: 8px !important;\n}\n\n/* ==========================================================================\n Table Horizontal Scrollbar \u2014 thicker & easier to grab\n ========================================================================== */\n\n/* Force scrollbar always visible & push it below table content */\n.form-grid {\n overflow-x: scroll !important;\n padding-bottom: 12px !important;\n scrollbar-width: auto !important;\n}\n\n.form-grid::-webkit-scrollbar {\n height: 10px !important;\n}\n\n.form-grid::-webkit-scrollbar-track {\n background: var(--gray-100, #f5f5f5) !important;\n}\n\n.form-grid::-webkit-scrollbar-thumb {\n background: var(--gray-400, #c0c6cc) !important;\n border-radius: 5px !important;\n border: 2px solid var(--gray-100, #f5f5f5) !important;\n}\n\n.form-grid::-webkit-scrollbar-thumb:hover {\n background: var(--gray-500, #98a2ab) !important;\n}\n\n\n/* ==========================================================================\n Grid Column Resize Handles\n ========================================================================== */\n\n.jey-col-resize {\n position: absolute;\n top: 0;\n right: -2px;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n z-index: 2;\n background: transparent;\n transition: background 0.15s;\n}\n\n.jey-col-resize:hover,\n.jey-col-resize:active {\n background: var(--primary, #2490ef);\n opacity: 0.5;\n}\n\n/* Column drag & drop */\n.grid-heading-row .grid-static-col[data-jey-draggable] {\n cursor: grab;\n}\n\n.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-left {\n box-shadow: inset 3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n.grid-heading-row .grid-static-col.jey-drop-target.jey-drop-right {\n box-shadow: inset -3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n/* ==========================================================================\n List View Column Resize + Reorder\n ========================================================================== */\n\n.list-row-head .list-row-col {\n position: relative;\n}\n\n/* Column dividers \u2014 hint that headers can be resized / reordered. */\n.list-row-head .list-row-col:not(:last-child) {\n border-right: 1px solid var(--border-color, #e2e6e9);\n}\n\n.list-row-head .jey-col-resize {\n position: absolute;\n top: 0;\n right: -2px;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n z-index: 3;\n background: transparent;\n transition: background 0.15s;\n}\n\n.list-row-head .jey-col-resize:hover,\n.list-row-head .jey-col-resize:active {\n background: var(--primary, #2490ef);\n opacity: 0.5;\n}\n\n.list-row-head .list-row-col[data-jey-draggable]:not(.list-subject) {\n cursor: grab;\n}\n\n.list-row-head .list-row-col.jey-drop-target.jey-drop-left {\n box-shadow: inset 3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n.list-row-head .list-row-col.jey-drop-target.jey-drop-right {\n box-shadow: inset -3px 0 0 var(--primary, #2490ef);\n background: rgba(36, 144, 239, 0.05);\n}\n\n/* ==========================================================================\n Sidebar \u2014 Full Width button\n ========================================================================== */\n\n/* .body-sidebar-bottom is a flex item of .body-sidebar (column flex).\n By default min-width:auto resolves to min-content, so it refuses to\n shrink below the natural width of its widest text \u2014 and our buttons'\n labels poke past the collapsed sidebar's right edge. Force min-width:0\n so it can match the cross-axis (50px collapsed) and clip properly. */\n.body-sidebar .body-sidebar-bottom {\n min-width: 0;\n}\n\n.jey-fullwidth-link,\n.jey-theme-switch-link,\n.jey-collapse-link {\n text-decoration: none;\n font-size: var(--text-sm);\n display: flex;\n align-items: center;\n cursor: pointer;\n margin-bottom: 8px;\n width: 100%;\n overflow: hidden;\n}\n\n.jey-fullwidth-link svg,\n.jey-theme-switch-link svg,\n.jey-collapse-link svg {\n margin: 0;\n flex: 0 0 auto;\n}\n\n.jey-fullwidth-link span,\n.jey-theme-switch-link span,\n.jey-collapse-link span {\n margin-left: 10px;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1),\n margin-left 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* When sidebar is collapsed, animate the label to zero width + zero\n margin so it smoothly slides under the icon instead of leaving a\n single ellipsized letter at the edge. */\n.body-sidebar-container:not(.expanded) .jey-fullwidth-link span,\n.body-sidebar-container:not(.expanded) .jey-theme-switch-link span,\n.body-sidebar-container:not(.expanded) .jey-collapse-link span {\n max-width: 0;\n margin-left: 0;\n}\n\n/* Hide the v16.17 native bottom row (about + collapse icon-buttons).\n Our labeled .jey-collapse-link replaces it. */\n.body-sidebar .sidebar-bottom-actions {\n display: none !important;\n}\n\n/* Frappe v16 toggles .nav-item padding 0\u21928px instantly between\n collapsed/expanded, while the sidebar width itself transitions over\n 0.3s \u2014 making the user/account button visibly jump 8px. Animate the\n padding so it stays in sync with the width. */\n.body-sidebar .nav-item {\n transition: padding 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* ==========================================================================\n Modal / Dialog \u2014 Smooth Entrance\n ========================================================================== */\n\n.modal.fade .modal-dialog {\n transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) !important;\n transform: translateY(-24px) scale(0.97);\n opacity: 0;\n}\n\n.modal.show .modal-dialog {\n transform: none;\n opacity: 1;\n}\n\n\n/* ==========================================================================\n Form Sections \u2014 Cascade Entrance\n ========================================================================== */\n\n@keyframes jey-section-in {\n from { top: -12px; }\n to { top: 0; }\n}\n\n/* Slide-only entrance \u2014 animating `opacity` here would create a persistent\n stacking context on .section-body (Firefox keeps the compositing layer\n alive after the animation completes when `fill-mode: both` keeps opacity\n fill-forward, even though opacity reaches 1). That stacking context traps\n Frappe's child-table row form (.form-in-grid, z-index 1021) under the\n freeze backdrop (#freeze.modal-backdrop, z-index 1020): the row form\n visually disappears behind the backdrop, every mouse click is captured by\n #freeze (whose handler closes the row form), and only keyboard nav works.\n Same reason we slide via `top` instead of `transform: translateY()` \u2014\n `transform` would also leave behind a stacking context.\n `position: relative` alone (without z-index) does NOT create one. */\n.form-layout .form-section .section-head,\n.form-layout .form-section .section-body {\n position: relative;\n animation: jey-section-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.form-layout .form-section:nth-child(1) .section-head,\n.form-layout .form-section:nth-child(1) .section-body { animation-delay: 0.04s; }\n.form-layout .form-section:nth-child(2) .section-head,\n.form-layout .form-section:nth-child(2) .section-body { animation-delay: 0.10s; }\n.form-layout .form-section:nth-child(3) .section-head,\n.form-layout .form-section:nth-child(3) .section-body { animation-delay: 0.16s; }\n.form-layout .form-section:nth-child(4) .section-head,\n.form-layout .form-section:nth-child(4) .section-body { animation-delay: 0.22s; }\n.form-layout .form-section:nth-child(5) .section-head,\n.form-layout .form-section:nth-child(5) .section-body { animation-delay: 0.28s; }\n.form-layout .form-section:nth-child(6) .section-head,\n.form-layout .form-section:nth-child(6) .section-body { animation-delay: 0.34s; }\n.form-layout .form-section:nth-child(7) .section-head,\n.form-layout .form-section:nth-child(7) .section-body { animation-delay: 0.40s; }\n.form-layout .form-section:nth-child(8) .section-head,\n.form-layout .form-section:nth-child(8) .section-body { animation-delay: 0.46s; }\n.form-layout .form-section:nth-child(9) .section-head,\n.form-layout .form-section:nth-child(9) .section-body { animation-delay: 0.52s; }\n.form-layout .form-section:nth-child(10) .section-head,\n.form-layout .form-section:nth-child(10) .section-body { animation-delay: 0.58s; }\n.form-layout .form-section:nth-child(11) .section-head,\n.form-layout .form-section:nth-child(11) .section-body { animation-delay: 0.64s; }\n.form-layout .form-section:nth-child(12) .section-head,\n.form-layout .form-section:nth-child(12) .section-body { animation-delay: 0.70s; }\n\n\n/* ==========================================================================\n Form Tabs \u2014 Sliding Active Indicator\n ========================================================================== */\n\n.form-tabs .nav-link {\n position: relative;\n border-bottom: none !important;\n transition: color 0.3s ease;\n}\n\n.form-tabs .nav-link::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 2px;\n background: var(--text-color);\n transform: scaleX(0);\n transform-origin: center;\n transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.form-tabs .nav-link.active::after {\n transform: scaleX(1);\n}\n\n\n/* ==========================================================================\n Dropdown Animations\n ========================================================================== */\n\n.dropdown-menu {\n display: block !important;\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n}\n\n.dropdown-menu.show {\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n animation: jey-dropdown-in 0.2s ease;\n}\n\n/* Applied by JS during Bootstrap hide so Popper's transform reset\n doesn't move the menu mid-fade. See \"Dropdown fade-out\" in jey_theme.js. */\n.dropdown-menu.jey-dropdown-hiding {\n visibility: visible !important;\n pointer-events: none;\n animation: jey-dropdown-out 0.2s ease forwards;\n}\n\n@keyframes jey-dropdown-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes jey-dropdown-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n/* ==========================================================================\n Sidebar \u2014 Smooth Collapse / Expand\n Frappe toggles .body-sidebar-placeholder between display:none and display:flex,\n so the container's fit-content width snaps on expand (the inner sidebar goes\n position:absolute, placeholder appears at 220px instantly). The collapse path\n keeps the sidebar in flow, so its width transition is already smooth.\n Override the container with an explicit width transition to make expand\n symmetric with collapse.\n ========================================================================== */\n\n@media (min-width: 576px) {\n .body-sidebar-container {\n width: 50px;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .body-sidebar-container.expanded {\n width: var(--sidebar-width);\n }\n}\n\n/* ==========================================================================\n Sidebar \u2014 No Alignment Shift Between States\n Regular items land at 15px from the sidebar's left edge (sidebar padding 8\n + icon padding 7). Two state-dependent paddings break that alignment in\n expanded mode:\n 1. Frappe's sidebar_header.js sets inline padding-left/right: 8px on\n .sidebar-header when expanded, 0 when collapsed \u2014 pushes the logo to\n 23px in expanded. Override inline style with !important.\n 2. SCSS mixin body-sidebar-expanded gives .sidebar-user-button\n padding: var(--padding-sm) only when .expanded \u2014 pushes the avatar\n to 23px and makes the button taller, which shifts the Jey buttons\n above it vertically. Zero out the padding.\n Zeroing both keeps every icon/avatar at 15px and button heights constant\n across expand/collapse, so nothing jumps on toggle.\n ========================================================================== */\n\n.body-sidebar .sidebar-header {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.body-sidebar-container.expanded .sidebar-user-button {\n padding: 0 !important;\n}\n\n/* ==========================================================================\n Sidebar \u2014 Hover Effects\n ========================================================================== */\n\n.body-sidebar .standard-sidebar-item .item-anchor {\n transition: padding-left 0.4s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.4s ease;\n}\n\n.body-sidebar .standard-sidebar-item .item-anchor:hover {\n padding-left: calc(var(--padding-xs, 8px) + 4px);\n}\n\n.body-sidebar .standard-sidebar-item .sidebar-item-icon {\n transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.body-sidebar .standard-sidebar-item .item-anchor:hover .sidebar-item-icon {\n transform: scale(1.15);\n}\n\n/* Active item \u2014 subtle left accent bar */\n.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor {\n position: relative;\n}\n\n.body-sidebar .standard-sidebar-item.active-sidebar .item-anchor::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 20%;\n bottom: 20%;\n width: 3px;\n border-radius: 0 3px 3px 0;\n background: var(--primary, #2490ef);\n opacity: 0.8;\n}\n\n\n/* ==========================================================================\n List View \u2014 Row Entrance Animation\n ========================================================================== */\n\n@keyframes jey-list-row-in {\n from {\n opacity: 0;\n transform: translateX(-16px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n.frappe-list .result .list-row-container:not(:first-child) {\n animation: jey-list-row-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.frappe-list .result .list-row-container:nth-child(2) { animation-delay: 0.03s; }\n.frappe-list .result .list-row-container:nth-child(3) { animation-delay: 0.05s; }\n.frappe-list .result .list-row-container:nth-child(4) { animation-delay: 0.07s; }\n.frappe-list .result .list-row-container:nth-child(5) { animation-delay: 0.09s; }\n.frappe-list .result .list-row-container:nth-child(6) { animation-delay: 0.11s; }\n.frappe-list .result .list-row-container:nth-child(7) { animation-delay: 0.13s; }\n.frappe-list .result .list-row-container:nth-child(8) { animation-delay: 0.15s; }\n.frappe-list .result .list-row-container:nth-child(9) { animation-delay: 0.17s; }\n.frappe-list .result .list-row-container:nth-child(10) { animation-delay: 0.19s; }\n.frappe-list .result .list-row-container:nth-child(11) { animation-delay: 0.21s; }\n.frappe-list .result .list-row-container:nth-child(12) { animation-delay: 0.23s; }\n.frappe-list .result .list-row-container:nth-child(13) { animation-delay: 0.25s; }\n.frappe-list .result .list-row-container:nth-child(14) { animation-delay: 0.27s; }\n.frappe-list .result .list-row-container:nth-child(15) { animation-delay: 0.29s; }\n.frappe-list .result .list-row-container:nth-child(16) { animation-delay: 0.31s; }\n.frappe-list .result .list-row-container:nth-child(17) { animation-delay: 0.33s; }\n.frappe-list .result .list-row-container:nth-child(18) { animation-delay: 0.35s; }\n.frappe-list .result .list-row-container:nth-child(19) { animation-delay: 0.37s; }\n.frappe-list .result .list-row-container:nth-child(20) { animation-delay: 0.39s; }\n.frappe-list .result .list-row-container:nth-child(21) { animation-delay: 0.41s; }\n\n\n/* ==========================================================================\n Search Dialog \u2014 Fade In / Out\n ========================================================================== */\n\n.modal:has(.cool-awesomebar-modal-footer) {\n display: block !important;\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n visibility 0.5s;\n}\n\n.modal:has(.cool-awesomebar-modal-footer) .modal-dialog {\n transform: translateY(-30px);\n transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.modal.show:has(.cool-awesomebar-modal-footer) {\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n}\n\n.modal.show:has(.cool-awesomebar-modal-footer) .modal-dialog {\n transform: none;\n}\n\n\n/* ==========================================================================\n Report Summary \u2014 Card Cascade\n ========================================================================== */\n\n@keyframes jey-summary-in {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.report-summary .summary-item {\n animation: jey-summary-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n.report-summary .summary-item:nth-child(1) { animation-delay: 0.05s; }\n.report-summary .summary-item:nth-child(2) { animation-delay: 0.10s; }\n.report-summary .summary-item:nth-child(3) { animation-delay: 0.15s; }\n.report-summary .summary-item:nth-child(4) { animation-delay: 0.20s; }\n.report-summary .summary-item:nth-child(5) { animation-delay: 0.25s; }\n.report-summary .summary-item:nth-child(6) { animation-delay: 0.30s; }\n\n\n/* ==========================================================================\n Form Section Collapse / Expand \u2014 Smooth\n ========================================================================== */\n\n.form-section .collapse-indicator {\n transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n display: inline-block;\n}\n\n.form-section .section-head.collapsed .collapse-indicator {\n transform: rotate(-90deg);\n}\n\n/* Expanded section-body has no `overflow: hidden` \u2014 so Link-field autocomplete\n dropdowns (and any other overflow) are not clipped by the section boundary.\n `overflow: hidden` is applied via JS only during the collapse/expand\n transition (see jey_theme.js), then removed once the animation finishes. */\n.form-section .section-head.collapsible + .section-body {\n display: flex !important;\n flex-wrap: wrap;\n transition: max-height 0.5s ease-in-out,\n padding 0.5s ease-in-out;\n}\n\n.form-section .section-head.collapsed + .section-body {\n max-height: 0 !important;\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n overflow: hidden;\n transition: max-height 0.5s ease-in-out,\n padding 0.5s ease-in-out;\n}\n\n\n\n/* ==========================================================================\n Link Field \u2014 Awesomplete Dropdown Fade\n ========================================================================== */\n\n.awesomplete > [role=\"listbox\"] {\n animation: jey-awesomplete-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;\n}\n\n/* Applied by JS on awesomplete-close so the listbox fades instead of\n vanishing when [hidden] is set. See \"Awesomplete fade-out\" in jey_theme.js. */\n.awesomplete > [role=\"listbox\"].jey-awesomplete-hiding {\n display: block !important;\n pointer-events: none;\n animation: jey-awesomplete-out 0.2s ease forwards;\n}\n\n@keyframes jey-awesomplete-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes jey-awesomplete-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n/* Lift the open autocomplete listbox above its siblings so the dropdown can\n spill past the section boundary without being painted over by later\n sections (which naturally paint above earlier ones in DOM order).\n Lift only the listbox itself, NOT the surrounding .form-section, because a\n z-index on the section creates a stacking context that traps Frappe's\n child-table row form (.form-in-grid, z-index 1021) below the freeze\n backdrop (#freeze.modal-backdrop, z-index 1020), leaving the screen\n unclickable when editing a row. */\n.awesomplete > ul[role=\"listbox\"]:not([hidden]) {\n z-index: 10;\n}\n\n\n/* ==========================================================================\n Input Focus \u2014 Inset Press\n ========================================================================== */\n\ninput.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\ntextarea.form-control,\n.frappe-control input:not([type=\"checkbox\"]):not([type=\"radio\"]),\n.frappe-control textarea {\n transition:\n background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\ninput.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\ntextarea.form-control:focus,\n.frappe-control input:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n.frappe-control textarea:focus {\n border-color: var(--gray-500, #a8b0b8) !important;\n outline: none;\n}\n\n\n/* ==========================================================================\n Buttons \u2014 Shine on Hover, Press on Click\n ========================================================================== */\n\n.btn {\n position: relative;\n overflow: hidden;\n transition: box-shadow 0.4s ease, background-color 0.3s ease, color 0.3s ease;\n}\n\n.btn::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: linear-gradient(105deg,\n transparent 35%,\n rgba(255, 255, 255, 0.25) 45%,\n rgba(255, 255, 255, 0.25) 55%,\n transparent 65%);\n transform: translateX(-110%);\n transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);\n pointer-events: none;\n}\n\n.btn:hover::after {\n transform: translateX(110%);\n}\n\n.btn:active {\n box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.2) !important;\n}\n\n\n/* Hide dropdown items now surfaced as sidebar buttons */\n.dropdown-menu-item[onclick*=\"toggle_full_width\"],\n.dropdown-menu-item[onclick*=\"clear_cache\"],\n.dropdown-menu-item[onclick*=\"ThemeSwitcher\"],\n.dropdown-menu-item[data-name=\"website\"],\n.dropdown-menu-item.jey-hidden-item {\n display: none !important;\n}\n\n\n/* ==========================================================================\n Desktop Icons \u2014 Shared base (all themes)\n ========================================================================== */\n\n.desktop-icon:hover {\n transform: translateY(-2px) !important;\n}\n\n.desktop-icon:active {\n transform: scale(0.97) !important;\n}\n\n.icon-container.jey-chrome-done {\n width: 72px !important;\n height: 72px !important;\n padding: 0 !important;\n border-radius: 50% !important;\n background: none !important;\n overflow: visible !important;\n position: relative !important;\n}\n\n.icon-container.jey-chrome-done:hover {\n transform: none !important;\n}\n\n.icon-container.folder-icon.jey-chrome-done {\n box-shadow: none !important;\n}\n\n/* ==========================================================================\n Desktop Icon captions \u2014 full label, wrapped, never truncated, never colliding\n ==========================================================================\n Frappe ships the caption as a fixed-height, nowrap + ellipsis line inside a\n 127px cell, which breaks on long (az/ru) module names two different ways:\n \u2022 main desk \u2014 .icon-caption is shrink-to-fit, so it grows PAST the cell and\n the ellipsis never triggers; the label spills into the neighbouring cell.\n \u2022 folder modal \u2014 the label wraps but is cut with \"\u2026\".\n Fix: widen the cell, let the caption take the full cell width and wrap over as\n many lines as it needs, and let the cell grow taller instead of overflowing.\n `:has(> .icon-caption)` keeps the caption-less mini icons inside a folder\n thumbnail (rendered with in_folder=true) at their stock size. */\n\n.desktop-icon:has(> .icon-caption) {\n display: flex !important;\n flex-direction: column !important;\n align-items: center !important;\n text-align: center !important;\n min-width: 0 !important;\n height: auto !important;\n align-self: start !important;\n padding: 13px 6px 12px !important;\n}\n\n/* Wider cell = fewer wraps, but only where there is room for it: below ~1060px the\n 6-column desk grid is already at the edge of the viewport, so keep frappe's width\n there and let the caption take an extra line instead. Mobile (< 571px) keeps its\n own smaller cell entirely. */\n@media (min-width: 571px) {\n .desktop-icon:has(> .icon-caption) {\n min-height: 126px !important;\n }\n}\n\n@media (min-width: 1060px) {\n .desktop-icon:has(> .icon-caption) {\n width: 152px !important;\n }\n}\n\n.desktop-icon:has(> .icon-caption) > .icon-caption {\n width: 100% !important;\n max-width: 100% !important;\n height: auto !important;\n min-height: 35px !important;\n justify-content: flex-start !important;\n overflow: visible !important;\n text-wrap: wrap !important;\n white-space: normal !important;\n}\n\n.desktop-icon:has(> .icon-caption) .icon-title {\n display: block !important;\n width: 100% !important;\n max-width: 100% !important;\n -webkit-line-clamp: none !important;\n line-clamp: none !important;\n overflow: visible !important;\n text-overflow: clip !important;\n white-space: normal !important;\n text-wrap: balance;\n overflow-wrap: break-word !important;\n word-break: normal !important;\n -webkit-hyphens: auto;\n hyphens: auto;\n line-height: 1.25 !important;\n}\n\n/* The \"remove icon\" x is absolutely positioned for the stock 127px cell */\n.desktop-icon:has(> .icon-caption) > .hide-button {\n left: auto !important;\n right: -5px !important;\n}\n\n/* ==========================================================================\n Desktop Modal (module icons picker) \u2014 grid room + clean heading\n ========================================================================== */\n\n/* Give the 4-col icon grid room between cells so captions don't collide */\n#desktop-modal .icons-container .icons {\n gap: 12px 8px !important;\n padding: 12px 0 !important;\n}\n\n/* Card sizes to its icon grid (Bootstrap caps the dialog at a fixed width, so the\n last column used to hang outside the card) and grows with its taller rows */\n#desktop-modal {\n width: -moz-fit-content !important;\n width: fit-content !important;\n max-width: calc(100vw - 40px) !important;\n}\n\n#desktop-modal .modal-content {\n width: 100% !important;\n}\n\n#desktop-modal .modal-body.desktop-modal-body {\n width: auto !important;\n height: auto !important;\n min-width: var(--desktop-modal-width) !important;\n min-height: var(--desktop-modal-height) !important;\n}\n\n/* Strip the themed gradient/border off the desktop-modal header \u2014 title only, no bar */\n#desktop-modal .modal-header.desktop-modal-heading {\n background: transparent !important;\n border-bottom: 0 !important;\n box-shadow: none !important;\n}\n\n#desktop-modal .modal-header.desktop-modal-heading .modal-title,\n#desktop-modal .modal-header.desktop-modal-heading .title-input-label span {\n background: transparent !important;\n box-shadow: none !important;\n text-shadow: none !important;\n}\n\n/* Everything inside the desktop-modal renders text crisply \u2014 no inherited blur */\n#desktop-modal .icon-title,\n#desktop-modal .icon-caption {\n text-shadow: none !important;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* Grow to content: no inner scrollbar when icons fit */\n#desktop-modal .modal-body.desktop-modal-body {\n overflow: visible !important;\n max-height: none !important;\n}\n\n#desktop-modal .icons-container {\n overflow: visible !important;\n max-height: none !important;\n}\n\n/* ==========================================================================\n Icon Animations \u2014 Shared (all themes)\n ========================================================================== */\n\n/* Framework \u2014 gentle float */\n.ico-framework { animation: ico-float 5s ease-in-out infinite; transform-origin: center; }\n@keyframes ico-float {\n 0%,100% { transform: translateY(0) rotate(0deg); opacity: 0.85; }\n 30% { transform: translateY(-2px) rotate(0.8deg); opacity: 1; }\n 70% { transform: translateY(0.5px) rotate(-0.4deg); opacity: 0.9; }\n}\n\n.ico-org { animation: ico-org 6s ease-in-out infinite; transform-origin: center bottom; }\n@keyframes ico-org {\n 0%,100% { transform: scaleY(1) scaleX(1); }\n 25% { transform: scaleY(1.03) scaleX(0.99); }\n 50% { transform: scaleY(1.05) scaleX(0.98); }\n 75% { transform: scaleY(1.02) scaleX(1); }\n}\n\n.ico-acc .acc-btn { animation: ico-press 3s ease-in-out infinite; }\n@keyframes ico-press { 0%,25%,100% { opacity: 0.5; stroke-width: 2.5; } 12% { opacity: 1; stroke-width: 3.2; } }\n\n.ico-assets { animation: ico-safe 6s ease-in-out infinite; transform-origin: center; }\n.ico-assets .lock-dot { animation: ico-blink 5s ease-in-out infinite; }\n@keyframes ico-safe { 0%,100% { transform: translateY(0); } 40% { transform: translateY(-0.6px); } 60% { transform: translateY(0.3px); } }\n@keyframes ico-blink { 0%,35%,65%,100% { opacity: 1; } 50% { opacity: 0.15; } }\n\n.ico-buying { animation: ico-cart 6s ease-in-out infinite; transform-origin: 12px 21px; }\n@keyframes ico-cart { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(1.5px) rotate(0.8deg); } 50% { transform: translateX(-0.5px) rotate(-0.3deg); } 80% { transform: translateX(0.8px) rotate(0.4deg); } }\n\n.ico-mfg .gear1 { animation: ico-spin 9s linear infinite; transform-origin: 9px 12px; }\n.ico-mfg .gear2 { animation: ico-spin-r 7s linear infinite; transform-origin: 17px 8px; }\n@keyframes ico-spin { to { transform: rotate(360deg); } }\n@keyframes ico-spin-r { to { transform: rotate(-360deg); } }\n\n.ico-proj .col1 { animation: ico-g1 5s ease-in-out infinite; transform-origin: 5.5px 21px; }\n.ico-proj .col2 { animation: ico-g2 5s ease-in-out infinite 0.5s; transform-origin: 12.5px 15px; }\n.ico-proj .col3 { animation: ico-g3 5s ease-in-out infinite 1s; transform-origin: 19.5px 18px; }\n@keyframes ico-g1 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(0.85); opacity: 1; } }\n@keyframes ico-g2 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(1.15); opacity: 1; } }\n@keyframes ico-g3 { 0%,100% { transform: scaleY(1); opacity: 0.75; } 50% { transform: scaleY(0.88); opacity: 1; } }\n\n.ico-quality { animation: ico-shield 6s ease-in-out infinite; transform-origin: 12px 14px; }\n@keyframes ico-shield { 0%,100% { transform: rotate(0deg) scale(1); } 15% { transform: rotate(1.5deg) scale(1.03); } 35% { transform: rotate(-0.5deg) scale(1.01); } 55% { transform: rotate(-1.5deg) scale(1.03); } 75% { transform: rotate(0.5deg) scale(1.01); } }\n\n.ico-selling { animation: ico-sell 4s ease-in-out infinite; transform-origin: center; }\n.ico-selling .arrow-head { animation: ico-up 4s ease-in-out infinite; }\n@keyframes ico-sell { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }\n@keyframes ico-up { 0%,100% { transform: translate(0,0); } 30% { transform: translate(1px, -1.5px); } 60% { transform: translate(2px, -2.5px); } }\n\n.ico-stock { animation: ico-bob 5s ease-in-out infinite; transform-origin: center; }\n@keyframes ico-bob { 0%,100% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(2deg) translateY(-0.7px); } 50% { transform: rotate(-1deg) translateY(0.3px); } 80% { transform: rotate(1.5deg) translateY(-0.4px); } }\n\n.ico-sub .person-l { animation: ico-rl 6s ease-in-out infinite; transform-origin: 8px 12px; }\n.ico-sub .person-r { animation: ico-rr 6s ease-in-out infinite; transform-origin: 16px 12px; }\n@keyframes ico-rl { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(1px) rotate(1deg); } 60% { transform: translateX(1.5px) rotate(0.5deg); } }\n@keyframes ico-rr { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-1px) rotate(-1deg); } 60% { transform: translateX(-1.5px) rotate(-0.5deg); } }\n\n.ico-settings { animation: ico-gear-main 12s linear infinite; transform-origin: center; }\n@keyframes ico-gear-main { to { transform: rotate(360deg); } }\n\n/* HR \u2014 plus sign pulsing */\n.ico-hr .plus-v { animation: ico-pv 4s ease-in-out infinite; transform-origin: center; }\n.ico-hr .plus-h { animation: ico-ph 4s ease-in-out infinite 0.3s; transform-origin: center; }\n@keyframes ico-pv { 0%,100% { opacity: 0.4; stroke-width: 1.8; } 50% { opacity: 1; stroke-width: 2.4; } }\n@keyframes ico-ph { 0%,100% { opacity: 0.4; stroke-width: 1.8; } 50% { opacity: 1; stroke-width: 2.4; } }\n\n/* ==========================================================================\n Theme Switcher Dialog\n ========================================================================== */\n\n.jey-theme-grid {\n display: flex;\n gap: 20px;\n padding: 20px;\n justify-content: center;\n}\n\n.jey-theme-card {\n cursor: pointer;\n text-align: center;\n padding: 16px;\n border-radius: 12px;\n border: 2px solid transparent;\n transition: border-color 0.2s, background 0.2s;\n min-width: 140px;\n}\n\n.jey-theme-card:hover {\n background: var(--subtle-fg, #f5f5f5);\n}\n\n.jey-theme-card.selected {\n border-color: var(--primary, #2490ef);\n background: var(--subtle-fg, #f5f5f5);\n}\n\n.jey-theme-preview {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n margin: 0 auto 12px;\n position: relative;\n overflow: hidden;\n}\n\n.jey-theme-preview--chrome {\n background: conic-gradient(from 140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg);\n box-shadow: 0 3px 8px rgba(0,0,0,0.15), inset 0 1px 1px rgba(255,255,255,0.5);\n}\n\n.jey-theme-preview--chrome .jey-theme-preview-icon {\n position: absolute;\n inset: 9px;\n border-radius: 50%;\n background: linear-gradient(168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%);\n}\n\n.jey-theme-preview--silk {\n border-radius: 16px;\n background: rgba(255, 255, 255, 0.4);\n -webkit-backdrop-filter: blur(6px);\n backdrop-filter: blur(6px);\n border: 1px solid rgba(255, 255, 255, 0.5);\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n}\n\n.jey-theme-preview--silk .jey-theme-preview-icon {\n position: absolute;\n inset: 22px;\n border-radius: 6px;\n background: #4f46e5;\n opacity: 0.25;\n}\n\n.jey-theme-label {\n font-weight: 600;\n font-size: var(--text-base);\n margin-bottom: 2px;\n}\n\n.jey-theme-info {\n font-size: var(--text-sm);\n color: var(--text-muted);\n}\n\n/* ==========================================================================\n Module Widget Cards \u2014 Entrance & Hover Animations\n ========================================================================== */\n\n/* --- Animation variant #2 (final): Slide-up entrance + Accent Bar hover --- */\n\n/* Entrance: fade-in slide-up (from variant #1) */\n.ce-block .links-widget-box,\n.ce-block .number-widget-box {\n opacity: 0;\n transform: translateY(24px) scale(0.97);\n animation: jey-card-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;\n border-radius: var(--border-radius-lg, 12px);\n transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 0.35s ease;\n position: relative;\n}\n\n/* Number card value \u2014 delayed fade-in after card entrance */\n@keyframes jey-number-in {\n from { opacity: 0; transform: translateY(6px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n.number-widget-box .widget-content .number {\n animation: jey-number-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both;\n}\n\n/* Allow dropdown menus (card actions) to escape the widget box.\n Without this, .widget-control .dropdown-menu is clipped/hidden behind\n the widget because Popper renders it as a sibling inside the box. */\n.ce-block .links-widget-box .widget-control .dropdown-menu,\n.ce-block .number-widget-box .widget-control .dropdown-menu {\n z-index: 1050;\n}\n\n/* Stagger delays */\n.ce-block:nth-child(1) .links-widget-box,\n.ce-block:nth-child(1) .number-widget-box { animation-delay: 0.00s; }\n.ce-block:nth-child(2) .links-widget-box,\n.ce-block:nth-child(2) .number-widget-box { animation-delay: 0.06s; }\n.ce-block:nth-child(3) .links-widget-box,\n.ce-block:nth-child(3) .number-widget-box { animation-delay: 0.12s; }\n.ce-block:nth-child(4) .links-widget-box,\n.ce-block:nth-child(4) .number-widget-box { animation-delay: 0.18s; }\n.ce-block:nth-child(5) .links-widget-box,\n.ce-block:nth-child(5) .number-widget-box { animation-delay: 0.24s; }\n.ce-block:nth-child(6) .links-widget-box,\n.ce-block:nth-child(6) .number-widget-box { animation-delay: 0.30s; }\n.ce-block:nth-child(7) .links-widget-box,\n.ce-block:nth-child(7) .number-widget-box { animation-delay: 0.36s; }\n.ce-block:nth-child(8) .links-widget-box,\n.ce-block:nth-child(8) .number-widget-box { animation-delay: 0.42s; }\n.ce-block:nth-child(9) .links-widget-box,\n.ce-block:nth-child(9) .number-widget-box { animation-delay: 0.48s; }\n.ce-block:nth-child(10) .links-widget-box,\n.ce-block:nth-child(10) .number-widget-box { animation-delay: 0.54s; }\n.ce-block:nth-child(11) .links-widget-box,\n.ce-block:nth-child(11) .number-widget-box { animation-delay: 0.60s; }\n.ce-block:nth-child(12) .links-widget-box,\n.ce-block:nth-child(12) .number-widget-box { animation-delay: 0.66s; }\n\n@keyframes jey-card-in {\n from {\n opacity: 0;\n transform: translateY(24px) scale(0.97);\n }\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n/* Hover: soft bottom accent line + lift */\n.ce-block .links-widget-box::after,\n.ce-block .number-widget-box::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 10%;\n right: 10%;\n height: 2.5px;\n border-radius: 2px 2px 0 0;\n background: var(--primary, #2490ef);\n transform: scaleX(0);\n transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);\n transform-origin: center;\n}\n\n.ce-block .links-widget-box:hover::after,\n.ce-block .number-widget-box:hover::after {\n transform: scaleX(1);\n}\n\n.ce-block .links-widget-box:hover,\n.ce-block .number-widget-box:hover {\n transform: translateY(-3px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08),\n 0 2px 6px rgba(0, 0, 0, 0.04);\n}\n\n/* Lift widget above its siblings while hovered or while its card-actions\n dropdown is open, so the dropdown menu (which lives inside the widget's\n own stacking context due to transform) is not covered by neighbours. */\n.ce-block .links-widget-box:hover,\n.ce-block .number-widget-box:hover,\n.ce-block .links-widget-box:focus-within,\n.ce-block .number-widget-box:focus-within {\n z-index: 100;\n}\n\n.ce-block .links-widget-box:has(.dropdown-menu.show),\n.ce-block .number-widget-box:has(.dropdown-menu.show) {\n z-index: 200;\n}\n\n\n/* Link items: colored left accent bar slides in */\n.links-widget-box .link-item {\n position: relative;\n transition: background 0.25s ease, transform 0.25s ease;\n border-radius: var(--border-radius, 8px);\n overflow: hidden;\n}\n\n.links-widget-box .link-item:hover {\n transform: translateX(6px);\n background: var(--subtle-fg, rgba(0, 0, 0, 0.02));\n}\n\n.links-widget-box .link-item .es-icon {\n display: none !important;\n}\n\n\n/* ==========================================================================\n Select Field \u2014 Custom chevron icon\n ========================================================================== */\n\n.select-icon svg {\n display: none !important;\n}\n\n.select-icon {\n top: 0 !important;\n bottom: 0 !important;\n display: flex !important;\n align-items: center !important;\n}\n\n.select-icon::after {\n content: \"\" !important;\n display: block;\n width: 12px;\n height: 12px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n/* ==========================================================================\n Empty State \u2014 Custom folder icon\n ========================================================================== */\n\n.msg-box .icon-xl {\n display: none !important;\n}\n\n.msg-box .mb-4 {\n display: flex;\n justify-content: center;\n}\n\n.msg-box .mb-4::after {\n content: \"\" !important;\n display: block;\n width: 48px;\n height: 48px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b0b8c0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 16 12 14 15 10 15 8 12 2 12'/%3E%3Cpath d='M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E\");\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n/* ==========================================================================\n Hide \"Getting Started\" onboarding panels\n ========================================================================== */\n\n.user-onboarding {\n display: none !important;\n}\n\n/* ==========================================================================\n Comment-count icon override\n jey_theme.js swaps the sprite href from #es-line-chat-alt (filled)\n to a lucide stroke-based icon. The SVG element still carries .es-icon\n (fill: currentColor; stroke-width: 0), which would render the new\n icon as a solid black shape \u2014 force stroke rendering here.\n ========================================================================== */\n.comment-count svg {\n fill: none !important;\n stroke: currentColor !important;\n stroke-width: 1.5 !important;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n/* ==========================================================================\n Activity panel & comment input \u2014 transparent background\n Frappe core paints .activity-title / .timeline-actions with var(--bg-color),\n .frappe-control .ql-editor with var(--control-bg), and the form footer's\n .comment-box wraps the input area; strip them all so the activity panel\n and comment composer blend with the form background.\n ========================================================================== */\n.new-timeline .activity-title,\n.new-timeline .timeline-actions,\n.comment-box,\n.comment-input-wrapper,\n.comment-input-wrapper .ql-container,\n.comment-input-wrapper .frappe-control .ql-editor {\n background: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n}\n\n/* List view \u2014 period (Between) filter sized to fit \"DD/MM/YYYY to DD/MM/YYYY\". */\n.standard-filter-section .frappe-control.jey-period-filter {\n flex: 0 0 auto;\n min-width: 200px;\n}\n.standard-filter-section .frappe-control.jey-period-filter input {\n min-width: 200px;\n}\n\n/* Grid \"Configure Columns\" dialog \u2014 let rows grow when label wraps.\n Frappe hardcodes height:32px inline on each .fields_order row in\n grid_row.js, which clips long translated labels (eg. Azerbaijani\n \"\u018Fsas Tarif (Anbar \u00D6l\u00E7\u00FC Vahidin\u0259 g\u00F6r\u0259)\") so the wrapped portion\n overflows into the next row and into the help text below. Switch\n to flex centering with min-height so rows grow with content. */\n.control-input.fields_order {\n height: auto !important;\n min-height: 32px;\n display: flex;\n align-items: center;\n}\n.control-input.fields_order > .row {\n width: 100%;\n align-items: center;\n margin: 0;\n}\n.control-input.fields_order > .row > [class*=\"col-\"] {\n padding-top: 0 !important;\n margin-top: 0 !important;\n}\n\n/* ===== theme_chrome.css ===== */\n/* ==========================================================================\n THEME: Chrome [data-jey-theme=\"chrome\"]\n Metallic chrome button with conic-gradient rings and rotating glow.\n ========================================================================== */\n\n@keyframes jey-chrome-rotate-glow {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n@keyframes jey-chrome-face-light {\n 0% { background: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n 25% { background: radial-gradient(circle at 75% 25%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n 50% { background: radial-gradient(circle at 70% 75%, rgba(255,255,255,0.35) 0%, transparent 55%); }\n 75% { background: radial-gradient(circle at 25% 70%, rgba(255,255,255,0.35) 0%, transparent 55%); }\n 100% { background: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.5) 0%, transparent 55%); }\n}\n\n@keyframes jey-chrome-refl-drift {\n 0%, 100% { top: 12%; opacity: 0.7; }\n 50% { top: 18%; opacity: 0.5; }\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome {\n width: 72px; height: 72px; border-radius: 50%; position: relative;\n background: radial-gradient(ellipse at 35% 20%, rgba(255,255,255,0.7) 0%, transparent 55%), linear-gradient(180deg, #e0e0e0 0%, #b8b8b8 100%);\n box-shadow: 0 4px 10px rgba(0,0,0,0.18), 0 1px 3px rgba(0,0,0,0.1), inset 0 1px 1px rgba(255,255,255,0.7);\n transition: box-shadow 0.3s ease;\n}\n\n[data-jey-theme=\"chrome\"] .desktop-icon:hover .jey-chrome {\n box-shadow: 0 6px 16px rgba(0,0,0,0.22), 0 1px 3px rgba(0,0,0,0.12), 0 0 14px rgba(255,255,255,0.2), inset 0 1px 1px rgba(255,255,255,0.7);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-ring {\n position: absolute; inset: 2px; border-radius: 50%;\n background: conic-gradient(from 140deg, #a0a0a0 0deg, #f2f2f2 40deg, #777 80deg, #e5e5e5 120deg, #959595 170deg, #ededed 210deg, #808080 260deg, #d8d8d8 310deg, #a0a0a0 360deg);\n box-shadow: inset 0 1px 2px rgba(0,0,0,0.2); overflow: hidden;\n}\n\n[data-jey-theme=\"chrome\"] .jey-ring-glow {\n position: absolute; inset: -10px; border-radius: 50%;\n background: conic-gradient(from 0deg, transparent 0deg, transparent 140deg, rgba(255,255,255,0.55) 165deg, rgba(255,255,255,0.8) 180deg, rgba(255,255,255,0.55) 195deg, transparent 220deg, transparent 360deg);\n animation: jey-chrome-rotate-glow 8s linear infinite; pointer-events: none;\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-gap {\n position: absolute; inset: 5px; border-radius: 50%;\n background: linear-gradient(180deg, #888 0%, #aaa 50%, #999 100%);\n box-shadow: inset 0 1px 3px rgba(0,0,0,0.35), inset 0 -1px 1px rgba(255,255,255,0.2);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-ring-inner {\n position: absolute; inset: 6px; border-radius: 50%;\n background: conic-gradient(from 200deg, #b0b0b0 0deg, #eee 30deg, #999 70deg, #ddd 110deg, #aaa 160deg, #f0f0f0 200deg, #909090 250deg, #ccc 300deg, #b0b0b0 360deg);\n box-shadow: inset 0 1px 1px rgba(0,0,0,0.15);\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-face {\n position: absolute; inset: 9px; border-radius: 50%; overflow: hidden;\n background: linear-gradient(168deg, #f4f4f4 0%, #e0e0e0 45%, #d4d4d4 100%);\n box-shadow: inset 0 3px 7px rgba(255,255,255,0.7), inset 0 -3px 6px rgba(0,0,0,0.06);\n display: flex; align-items: center; justify-content: center;\n}\n\n[data-jey-theme=\"chrome\"] .jey-face-glow {\n position: absolute; inset: 0; border-radius: 50%;\n animation: jey-chrome-face-light 8s ease-in-out infinite;\n pointer-events: none; z-index: 1;\n}\n\n[data-jey-theme=\"chrome\"] .jey-face-reflection {\n position: absolute; top: 15%; left: 10%; width: 80%; height: 30%;\n background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.15) 60%, transparent 100%);\n border-radius: 50%; pointer-events: none; z-index: 1;\n animation: jey-chrome-refl-drift 10s ease-in-out infinite;\n}\n\n[data-jey-theme=\"chrome\"] .jey-chrome-face .jey-icon {\n width: 24px !important; height: 24px !important;\n stroke: #505050 !important; fill: none !important;\n stroke-width: 1.8 !important; stroke-linecap: round !important; stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.5)) !important;\n position: relative; z-index: 2;\n}\n\n\n/* ==========================================================================\n FULL APP CHROME THEME\n Real metallic chrome with 45\u00B0 multi-stop reflective gradients,\n brushed metal textures, beveled edges, and conic-gradient accents.\n ========================================================================== */\n\n/* --- Shine sweep animation for interactive elements --- */\n@keyframes jey-chrome-shine {\n 0% { transform: translateX(-100%) skewX(-15deg); }\n 100% { transform: translateX(200%) skewX(-15deg); }\n}\n\n/* ==========================================================================\n CSS Variable Overrides\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] {\n /* --- Surfaces --- */\n --bg-color: #d8d8d8;\n --fg-color: #e8e8e8;\n --card-bg: #e0e0e0;\n --subtle-accent: #d4d4d4;\n --subtle-fg: #d0d0d0;\n --fg-hover-color: #ccc;\n --highlight-color: #d4d4d4;\n --navbar-bg: #d0d0d0;\n --modal-bg: #ddd;\n --toast-bg: #ddd;\n --popover-bg: #e0e0e0;\n --control-bg: #d5d5d5;\n --control-bg-on-gray: #ccc;\n --awesomebar-focus-bg: #e8e8e8;\n --disabled-control-bg: #d0d0d0;\n --skeleton-bg: #c8c8c8;\n --surface-menu-bar: #d4d4d4;\n --surface-white: #e0e0e0;\n --surface-gray-1: #d8d8d8;\n --surface-gray-2: #d0d0d0;\n --surface-gray-3: #c8c8c8;\n --surface-gray-4: #bbb;\n --surface-modal: #ddd;\n --placeholder-color: #ccc;\n\n /* --- Sidebar --- */\n --sidebar-hover-color: #c8c8c8;\n --sidebar-active-color: #d8d8d8;\n --sidebar-border-color: #aaa;\n --divider-color: #b0b0b0;\n\n /* --- Text --- */\n --heading-color: #333;\n --text-color: #404040;\n --text-neutral: #333;\n --text-muted: #666;\n --text-light: #888;\n --text-dark: #f0f0f0;\n --disabled-text-color: #888;\n --ink-gray-7: #555;\n --ink-gray-8: #404040;\n --ink-gray-9: #333;\n\n /* --- Borders --- */\n --border-color: #aaa;\n --dark-border-color: #999;\n --table-border-color: #aaa;\n --btn-group-border-color: #999;\n --outline-gray-1: #b0b0b0;\n --outline-gray-2: #999;\n --outline-gray-modals: #aaa;\n\n /* --- Primary / Buttons --- */\n --primary: #555;\n --brand-color: #555;\n --btn-primary: #777;\n --btn-default-bg: #ccc;\n --btn-default-hover-bg: #bbb;\n --btn-ghost-hover-bg: #c0c0c0;\n --border-primary: #777;\n\n /* --- Shadows (beveled metallic) --- */\n --shadow-xs: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.5);\n --shadow-sm: 1px 1px 3px rgba(0,0,0,0.18), -1px -1px 2px rgba(255,255,255,0.45);\n --shadow-base: 2px 2px 4px rgba(0,0,0,0.15), -1px -1px 2px rgba(255,255,255,0.4);\n --shadow-md: 2px 2px 6px rgba(0,0,0,0.18), -1px -1px 3px rgba(255,255,255,0.35);\n --shadow-lg: 3px 3px 10px rgba(0,0,0,0.15), -2px -2px 5px rgba(255,255,255,0.3);\n --shadow-xl: 4px 4px 16px rgba(0,0,0,0.18), -2px -2px 6px rgba(255,255,255,0.25);\n --shadow-2xl: 6px 6px 24px rgba(0,0,0,0.2), -3px -3px 8px rgba(255,255,255,0.2);\n --shadow-inset: inset 0px -1px 0px #999;\n --btn-shadow: 1px 1px 2px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.4);\n --card-shadow: 2px 2px 6px rgba(0,0,0,0.12), -1px -1px 3px rgba(255,255,255,0.4);\n --modal-shadow: 6px 6px 30px rgba(0,0,0,0.3), -3px -3px 10px rgba(255,255,255,0.15);\n --awesomebar-shadow: 3px 3px 12px rgba(0,0,0,0.15), -2px -2px 6px rgba(255,255,255,0.3);\n\n /* --- Focus rings --- */\n --focus-default: 0 0 0 2px rgba(150,150,150,0.5);\n\n /* --- Scrollbar --- */\n --scrollbar-thumb-color: #999;\n --scrollbar-track-color: #c8c8c8;\n\n /* --- Checkbox / Switch --- */\n --switch-bg: #aaa;\n --checkbox-color: #555;\n --checkbox-gradient: linear-gradient(180deg, #777 0%, #666 100%);\n\n /* --- Timeline --- */\n --timeline-badge-color: #555;\n --timeline-badge-bg: #ccc;\n\n /* --- Date picker --- */\n --date-active-bg: #777;\n --date-active-text: #f0f0f0;\n --date-range-bg: #ccc;\n\n /* --- Progress / Misc --- */\n --progress-bar-bg: #777;\n --code-block-bg: #444;\n --code-block-text: #ccc;\n}\n\n\n/* ==========================================================================\n Body \u2014 Brushed Metal Background\n 3 layered repeating-gradients at different lengths = realistic grain\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] body {\n background:\n radial-gradient(ellipse at 25% 15%, rgba(255,255,255,0.45) 0%, transparent 50%),\n radial-gradient(ellipse at 80% 80%, rgba(255,255,255,0.2) 0%, transparent 45%),\n radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.03) 0%, transparent 70%),\n linear-gradient(168deg, #d8d8d8 0%, #c4c4c4 40%, #b8b8b8 70%, #c8c8c8 100%) !important;\n background-attachment: fixed !important;\n}\n\n[data-jey-theme=\"chrome\"] .page-container {\n background: transparent !important;\n}\n\n\n/* ==========================================================================\n Navbar \u2014 Reflective Chrome Bar\n 45\u00B0 multi-stop gradient simulating polished metal reflection\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .navbar {\n background:\n linear-gradient(45deg, #aaa 2%, #ddd 8%, #bbb 18%, #e8e8e8 30%, #ccc 45%, #eee 55%, #bbb 68%, #ddd 80%, #aaa 95%) !important;\n border-bottom: 1px solid #888 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.08),\n 0 2px 4px rgba(0,0,0,0.15) !important;\n}\n\n[data-jey-theme=\"chrome\"] .navbar .navbar-nav .nav-link {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .navbar .navbar-nav .nav-link:hover {\n color: #222 !important;\n background: linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.1) 100%) !important;\n border-radius: 6px;\n}\n\n\n/* ==========================================================================\n Awesomebar \u2014 Sunken Metal Slot\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .search-bar input {\n background: linear-gradient(180deg, #c0c0c0 0%, #d0d0d0 100%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n inset 0 2px 4px rgba(0,0,0,0.15),\n inset 0 0 0 1px rgba(0,0,0,0.05),\n 0 1px 0 rgba(255,255,255,0.5) !important;\n color: #333 !important;\n border-radius: 6px !important;\n}\n\n[data-jey-theme=\"chrome\"] .search-bar input:focus {\n background: linear-gradient(180deg, #d5d5d5 0%, #e0e0e0 100%) !important;\n border-color: #888 !important;\n box-shadow:\n inset 0 1px 3px rgba(0,0,0,0.1),\n 0 0 0 2px rgba(150,150,150,0.3),\n 0 1px 0 rgba(255,255,255,0.4) !important;\n}\n\n[data-jey-theme=\"chrome\"] .search-bar .search-icon {\n color: #777 !important;\n}\n\n\n/* ==========================================================================\n Sidebar \u2014 Brushed Metal Panel\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .body-sidebar-container {\n background: linear-gradient(160deg, #b8b8b8 0%, #f0f0f0 12%, #c0c0c0 28%, #f4f4f4 42%, #b8b8b8 58%, #ededed 72%, #aaa 88%, #ddd 100%) !important;\n border-right: 1px solid #888 !important;\n box-shadow:\n inset -1px 0 0 rgba(255,255,255,0.6),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.1),\n 2px 0 8px rgba(0,0,0,0.12) !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-top,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-bottom,\n[data-jey-theme=\"chrome\"] .body-sidebar-container .body-sidebar-cards {\n background: transparent !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .standard-sidebar-item .item-anchor:hover {\n background: linear-gradient(90deg, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor {\n background: linear-gradient(45deg, #bbb 5%, #ddd 30%, #ccc 60%, #ddd 90%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.08),\n 1px 1px 2px rgba(0,0,0,0.1),\n -1px -1px 1px rgba(255,255,255,0.3) !important;\n border-radius: 8px;\n}\n\n[data-jey-theme=\"chrome\"] .body-sidebar .sidebar-item-icon {\n color: #666 !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.5));\n}\n\n\n/* ==========================================================================\n Context Menu \u2014 Themed icons\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .frappe-menu .menu-item-icon .jey-icon {\n width: 20px !important;\n height: 20px !important;\n stroke: #555 !important;\n fill: none !important;\n stroke-width: 1.8 !important;\n stroke-linecap: round !important;\n stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.4)) !important;\n}\n\n\n/* ==========================================================================\n Sidebar Header \u2014 Themed icon\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .sidebar-header .header-logo .jey-icon {\n width: 22px !important;\n height: 22px !important;\n stroke: #555 !important;\n fill: none !important;\n stroke-width: 1.8 !important;\n stroke-linecap: round !important;\n stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 0 rgba(255,255,255,0.4)) !important;\n}\n\n\n/* ==========================================================================\n Primary Buttons \u2014 Polished Chrome with Shine\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .btn-primary {\n background: linear-gradient(45deg, #666 5%, #aaa 10%, #888 30%, #999 50%, #888 70%, #aaa 85%, #666 95%) !important;\n color: #f0f0f0 !important;\n border: 1px solid #555 !important;\n box-shadow:\n 2px 2px 4px rgba(0,0,0,0.2),\n -1px -1px 2px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.3),\n inset 0 -1px 0 rgba(0,0,0,0.15),\n inset 2px 2px 5px rgba(0,0,0,0),\n inset -1px -1px 2px rgba(255,255,255,0) !important;\n text-shadow: 0 -1px 0 rgba(0,0,0,0.25);\n position: relative;\n overflow: hidden;\n transition:\n box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary::before {\n content: \"\";\n position: absolute;\n top: 0; left: -50%; width: 30%; height: 100%;\n background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);\n transform: skewX(-15deg);\n transition: left 0.4s ease;\n pointer-events: none;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:hover::before {\n left: 120%;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:hover {\n background: linear-gradient(45deg, #777 5%, #bbb 10%, #999 30%, #aaa 50%, #999 70%, #bbb 85%, #777 95%) !important;\n box-shadow:\n 2px 2px 6px rgba(0,0,0,0.25),\n -1px -1px 3px rgba(255,255,255,0.2),\n inset 0 1px 0 rgba(255,255,255,0.35),\n inset 0 -1px 0 rgba(0,0,0,0.15),\n inset 2px 2px 5px rgba(0,0,0,0),\n inset -1px -1px 2px rgba(255,255,255,0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-primary:active {\n background: linear-gradient(45deg, #555 5%, #888 10%, #777 30%, #888 50%, #777 70%, #888 85%, #555 95%) !important;\n box-shadow:\n 2px 2px 4px rgba(0,0,0,0),\n -1px -1px 2px rgba(255,255,255,0),\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset 3px 3px 7px rgba(0,0,0,0.35),\n inset -1px -1px 2px rgba(255,255,255,0.12) !important;\n transition: box-shadow 0.08s ease-out !important;\n}\n\n\n/* ==========================================================================\n Default/Secondary Buttons \u2014 Brushed Metal\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .btn-default,\n[data-jey-theme=\"chrome\"] .btn-secondary {\n background: linear-gradient(45deg, #bbb 5%, #eee 10%, #ccc 30%, #e0e0e0 50%, #ccc 70%, #eee 85%, #bbb 95%) !important;\n border: 1px solid #999 !important;\n color: #444 !important;\n box-shadow:\n 1px 1px 3px rgba(0,0,0,0.12),\n -1px -1px 2px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n inset 2px 2px 4px rgba(0,0,0,0),\n inset -1px -1px 1px rgba(255,255,255,0) !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n transition:\n box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-default:hover,\n[data-jey-theme=\"chrome\"] .btn-secondary:hover {\n background: linear-gradient(45deg, #c0c0c0 5%, #f2f2f2 10%, #d4d4d4 30%, #e8e8e8 50%, #d4d4d4 70%, #f2f2f2 85%, #c0c0c0 95%) !important;\n border-color: #888 !important;\n box-shadow:\n 2px 2px 4px rgba(0,0,0,0.15),\n -1px -1px 2px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n inset 2px 2px 4px rgba(0,0,0,0),\n inset -1px -1px 1px rgba(255,255,255,0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .btn-default:active,\n[data-jey-theme=\"chrome\"] .btn-secondary:active {\n background: linear-gradient(45deg, #aaa 5%, #d8d8d8 10%, #bbb 30%, #ccc 50%, #bbb 70%, #d8d8d8 85%, #aaa 95%) !important;\n box-shadow:\n 1px 1px 3px rgba(0,0,0,0),\n -1px -1px 2px rgba(255,255,255,0),\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset 3px 3px 6px rgba(0,0,0,0.3),\n inset -1px -1px 1px rgba(255,255,255,0.15) !important;\n transition: box-shadow 0.08s ease-out !important;\n}\n\n/* Danger */\n[data-jey-theme=\"chrome\"] .btn-danger {\n background: linear-gradient(45deg, #b33 5%, #e88 10%, #c55 30%, #d77 50%, #c55 70%, #e88 85%, #b33 95%) !important;\n color: #fff !important;\n border: 1px solid #944 !important;\n box-shadow:\n 2px 2px 4px rgba(0,0,0,0.2),\n -1px -1px 2px rgba(255,255,255,0.1),\n inset 0 1px 0 rgba(255,255,255,0.25) !important;\n text-shadow: 0 -1px 0 rgba(0,0,0,0.2);\n}\n\n[data-jey-theme=\"chrome\"] .btn-danger:hover {\n background: linear-gradient(45deg, #c44 5%, #f99 10%, #d66 30%, #e88 50%, #d66 70%, #f99 85%, #c44 95%) !important;\n}\n\n/* Ghost */\n[data-jey-theme=\"chrome\"] .btn-ghost:hover {\n background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n\n/* ==========================================================================\n Input Fields \u2014 Sunken Metal Inset\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\n[data-jey-theme=\"chrome\"] textarea.form-control {\n background: #d0d0d0 !important;\n border: 1px solid #999 !important;\n color: #333 !important;\n box-shadow:\n inset 1px 1px 2px rgba(0,0,0,0.10),\n inset -1px -1px 1px rgba(255,255,255,0.25),\n inset 0 1px 1px rgba(0,0,0,0.04) !important;\n transition:\n background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n[data-jey-theme=\"chrome\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n[data-jey-theme=\"chrome\"] textarea.form-control:focus {\n background: #cbcbcb !important;\n border-color: #777 !important;\n box-shadow:\n inset 4px 4px 8px rgba(0,0,0,0.28),\n inset -1px -1px 1px rgba(255,255,255,0.15),\n inset 0 3px 5px rgba(0,0,0,0.18) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-control:disabled,\n[data-jey-theme=\"chrome\"] .form-control[disabled] {\n background: #d8d8d8 !important;\n color: #888 !important;\n box-shadow: inset 1px 1px 2px rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-control .control-label,\n[data-jey-theme=\"chrome\"] .frappe-control label {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] select.form-control,\n[data-jey-theme=\"chrome\"] select.input-with-feedback {\n background: #d0d0d0 !important;\n}\n\n\n/* ==========================================================================\n Forms / Cards \u2014 Raised Metal Panels\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .form-page {\n background:\n linear-gradient(45deg, #ccc 3%, #e8e8e8 10%, #d5d5d5 25%, #eee 45%, #d8d8d8 60%, #e8e8e8 80%, #ccc 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n 3px 3px 8px rgba(0,0,0,0.12),\n -2px -2px 4px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.7),\n inset 0 -1px 0 rgba(0,0,0,0.05) !important;\n border-radius: var(--border-radius-lg) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-section .section-head {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n border-bottom: 1px solid #b0b0b0 !important;\n position: relative;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-card {\n background: linear-gradient(45deg, #c8c8c8 3%, #e5e5e5 12%, #d4d4d4 30%, #eaeaea 50%, #d4d4d4 70%, #e5e5e5 88%, #c8c8c8 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n 2px 2px 6px rgba(0,0,0,0.1),\n -1px -1px 3px rgba(255,255,255,0.4),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n/* Form sidebar */\n[data-jey-theme=\"chrome\"] .form-sidebar {\n border-left: 1px solid #aaa !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-sidebar .sidebar-section {\n border-bottom: 1px solid #b0b0b0 !important;\n}\n\n\n/* ==========================================================================\n Modals / Dialogs \u2014 Chrome Frame with Conic-Gradient Border\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .modal-content {\n background: linear-gradient(45deg, #ccc 3%, #e8e8e8 12%, #d5d5d5 30%, #eee 50%, #d5d5d5 70%, #e8e8e8 88%, #ccc 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n 6px 6px 24px rgba(0,0,0,0.25),\n -3px -3px 8px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 0 0 1px rgba(255,255,255,0.35) !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-header {\n background: linear-gradient(45deg, #b0b0b0 5%, #ddd 12%, #c0c0c0 30%, #e5e5e5 50%, #c0c0c0 70%, #ddd 88%, #b0b0b0 95%) !important;\n border-bottom: 1px solid #999 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-header .modal-title {\n color: #333 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .modal-footer {\n background: linear-gradient(45deg, #b8b8b8 5%, #d8d8d8 20%, #c0c0c0 50%, #d8d8d8 80%, #b8b8b8 95%) !important;\n border-top: 1px solid #999 !important;\n}\n\n[data-jey-theme=\"chrome\"] .modal-backdrop {\n background-color: rgba(40,40,40,0.55) !important;\n}\n\n\n/* ==========================================================================\n Page Head \u2014 Chrome Title Bar\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .page-head {\n background: linear-gradient(45deg, #b8b8b8 3%, #e0e0e0 10%, #c8c8c8 25%, #eaeaea 45%, #ccc 60%, #e0e0e0 80%, #b8b8b8 97%) !important;\n border-bottom: 1px solid #999 !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06),\n 0 2px 4px rgba(0,0,0,0.08) !important;\n}\n\n[data-jey-theme=\"chrome\"] .page-head .title-text {\n color: #333 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n\n/* ==========================================================================\n List View \u2014 Metal Table\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .list-row-head {\n background: linear-gradient(45deg, #aaa 3%, #d8d8d8 10%, #bbb 25%, #e0e0e0 45%, #bbb 60%, #d8d8d8 80%, #aaa 97%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .list-row-container .list-row {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n[data-jey-theme=\"chrome\"] .list-row-container:hover {\n background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .result .list-row-container .level-left .list-row--col .level-left .ellipsis {\n color: #404040 !important;\n}\n\n/* Sticky right column: blend with metallic body + visible separator.\n Uses a translucent bg so it reads continuous with body gradient while\n still covering horizontally-overflowing columns under it. */\n[data-jey-theme=\"chrome\"] .frappe-list .list-row .level-right,\n[data-jey-theme=\"chrome\"] .frappe-list .list-row-head .level-right {\n background: linear-gradient(90deg,\n rgba(216,216,216,0.85) 0%,\n rgba(208,208,208,0.88) 100%) !important;\n backdrop-filter: blur(3px);\n -webkit-backdrop-filter: blur(3px);\n border-left: 1px solid #a0a0a0 !important;\n box-shadow: inset 1px 0 0 rgba(255,255,255,0.5) !important;\n}\n\n[data-jey-theme=\"chrome\"] .frappe-list .list-row-container:hover .level-right {\n background: linear-gradient(90deg,\n rgba(224,224,224,0.9) 0%,\n rgba(216,216,216,0.92) 100%) !important;\n box-shadow:\n inset 1px 0 0 rgba(255,255,255,0.55),\n -6px 0 10px rgba(0,0,0,0.05) !important;\n}\n\n/* List sidebar */\n[data-jey-theme=\"chrome\"] .layout-side-section {\n border-right: 1px solid #aaa !important;\n}\n\n\n/* ==========================================================================\n Tables / Grids \u2014 Metallic Header & Rows\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .frappe-control[data-fieldtype=\"Table\"] .form-grid {\n border: 1px solid #999 !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-heading-row {\n background: linear-gradient(45deg, #aaa 3%, #d5d5d5 10%, #bbb 30%, #ddd 50%, #bbb 70%, #d5d5d5 90%, #aaa 97%) !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.6),\n inset 0 -1px 0 rgba(0,0,0,0.06) !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-heading-row .static-area {\n color: #444 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.5);\n}\n\n[data-jey-theme=\"chrome\"] .rows .grid-row:hover {\n background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .rows .grid-row {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n[data-jey-theme=\"chrome\"] .grid-footer {\n background: transparent !important;\n border-top: 1px solid #999 !important;\n}\n\n/* --- Active (edit-mode) grid cells: identical look to the static row --- */\n/* Keep the row's bottom border visible even when in edit mode */\n[data-jey-theme=\"chrome\"] .rows .grid-row.editable-row,\n[data-jey-theme=\"chrome\"] .rows .grid-row:has(.editable-row) {\n border-bottom: 1px solid #b8b8b8 !important;\n}\n\n/* Flatten every form control inside a grid row \u2014 no bg, no border, no shadow.\n Scoped to .data-row so the row-edit modal (`.form-in-grid`, which is a\n sibling of .data-row inside .grid-row) keeps its normal field styling. */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .awesomplete input,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .like-disabled-input {\n background: transparent !important;\n border: 0 !important;\n box-shadow: none !important;\n outline: none !important;\n color: #333 !important;\n transition:\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n/* Focused cell: pressed-in look \u2014 same shadow pattern as .btn-default:active */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row .awesomplete input:focus {\n background: linear-gradient(45deg, #bbb 5%, #d8d8d8 10%, #c4c4c4 30%, #d0d0d0 50%, #c4c4c4 70%, #d8d8d8 85%, #bbb 95%) !important;\n border: 0 !important;\n outline: none !important;\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0),\n inset 0 -1px 0 rgba(0,0,0,0.05),\n inset 3px 3px 6px rgba(0,0,0,0.3),\n inset -1px -1px 1px rgba(255,255,255,0.15) !important;\n transition:\n box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),\n background 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;\n}\n\n/* Read-only cells \u2014 darker grey bg. Specificity matches the \"flatten\" rule above\n (tag.class + two :not()), so it wins over `background: transparent`. Frappe hides\n .field-area on inactive rows, so the tint only shows on the currently-active row. */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[disabled],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[readonly],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control[readonly],\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:disabled,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.input-with-feedback:disabled {\n background: #d8d8d8 !important;\n box-shadow: none !important;\n color: #666 !important;\n}\n\n/* No pressed-in effect on focus for read-only cells */\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):disabled:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[disabled]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"])[readonly]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control:disabled:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row textarea.form-control[readonly]:focus,\n[data-jey-theme=\"chrome\"] .grid-row > .data-row select.form-control:disabled:focus {\n background: #d8d8d8 !important;\n box-shadow: none !important;\n}\n\n/* Match static-row cell height: static cells use padding 10px 8px; form-control in\n Frappe uses padding-top:10px, padding-bottom: calc(--padding-md - 3px). Equalise so\n the active row doesn't grow or shrink compared to an idle row. */\n[data-jey-theme=\"chrome\"] .grid-row .editable-row .form-control {\n padding-top: 10px !important;\n padding-bottom: 10px !important;\n height: auto !important;\n}\n\n\n/* ==========================================================================\n Tabs \u2014 Metallic Tab Strip\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link {\n color: #666 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.4);\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link:hover {\n color: #444 !important;\n background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link.active {\n color: #333 !important;\n background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%) !important;\n}\n\n[data-jey-theme=\"chrome\"] .form-tabs .nav-link::after {\n background: #777;\n}\n\n\n/* ==========================================================================\n Dropdowns \u2014 Chrome Panel\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .dropdown-menu {\n background: linear-gradient(45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n 4px 4px 12px rgba(0,0,0,0.18),\n -2px -2px 4px rgba(255,255,255,0.15),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-item {\n color: #444 !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-item:hover,\n[data-jey-theme=\"chrome\"] .dropdown-item:focus {\n background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%) !important;\n color: #222 !important;\n}\n\n[data-jey-theme=\"chrome\"] .dropdown-divider {\n border-top-color: #aaa !important;\n}\n\n\n/* ==========================================================================\n Alerts / Toasts\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .desk-alert {\n background: linear-gradient(45deg, #c0c0c0 5%, #e5e5e5 15%, #d0d0d0 40%, #e8e8e8 60%, #d0d0d0 85%, #c0c0c0 95%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n 3px 3px 8px rgba(0,0,0,0.12),\n -1px -1px 3px rgba(255,255,255,0.3),\n inset 0 1px 0 rgba(255,255,255,0.5) !important;\n}\n\n\n/* ==========================================================================\n Breadcrumbs\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .breadcrumb-container a {\n color: #666 !important;\n text-shadow: 0 1px 0 rgba(255,255,255,0.4);\n}\n\n[data-jey-theme=\"chrome\"] .breadcrumb-container a:hover {\n color: #333 !important;\n}\n\n\n/* ==========================================================================\n Timeline\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .new-timeline::before {\n border-left-color: #aaa !important;\n}\n\n[data-jey-theme=\"chrome\"] .timeline-dot {\n background: linear-gradient(45deg, #bbb, #ddd, #bbb) !important;\n border: 1px solid #999 !important;\n box-shadow: 1px 1px 2px rgba(0,0,0,0.1), -1px -1px 1px rgba(255,255,255,0.3);\n}\n\n\n/* ==========================================================================\n Badges / Indicators\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .indicator-pill {\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,0.3),\n 1px 1px 1px rgba(0,0,0,0.08);\n}\n\n\n/* ==========================================================================\n Popovers\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .popover {\n background: linear-gradient(45deg, #c0c0c0 3%, #e5e5e5 10%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 90%, #c0c0c0 97%) !important;\n border: 1px solid #999 !important;\n box-shadow:\n 4px 4px 12px rgba(0,0,0,0.15),\n -2px -2px 4px rgba(255,255,255,0.2),\n inset 0 1px 0 rgba(255,255,255,0.5) !important;\n}\n\n[data-jey-theme=\"chrome\"] .popover .popover-body {\n color: #404040 !important;\n}\n\n\n/* ==========================================================================\n Module Widget Cards \u2014 Chrome Panels with Conic Border Accent\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box {\n background: linear-gradient(45deg, #c0c0c0 3%, #e5e5e5 12%, #d0d0d0 30%, #eaeaea 50%, #d0d0d0 70%, #e5e5e5 88%, #c0c0c0 97%) !important;\n border: 1px solid #aaa !important;\n box-shadow:\n 2px 2px 6px rgba(0,0,0,0.1),\n -1px -1px 3px rgba(255,255,255,0.35),\n inset 0 1px 0 rgba(255,255,255,0.6) !important;\n}\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box::after,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box::after {\n background: conic-gradient(from 140deg, #a0a0a0, #e0e0e0, #888, #d0d0d0, #a0a0a0) !important;\n}\n\n[data-jey-theme=\"chrome\"] .ce-block .links-widget-box:hover,\n[data-jey-theme=\"chrome\"] .ce-block .number-widget-box:hover {\n box-shadow:\n 3px 3px 10px rgba(0,0,0,0.14),\n -2px -2px 5px rgba(255,255,255,0.3),\n inset 0 1px 0 rgba(255,255,255,0.7) !important;\n}\n\n\n/* ==========================================================================\n Scrollbars \u2014 Metal Cylinder\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-track {\n background: linear-gradient(90deg, #c0c0c0, #d0d0d0, #c0c0c0);\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-thumb {\n background: linear-gradient(90deg, #888, #bbb, #999, #bbb, #888);\n border-radius: 5px;\n border: 1px solid #999;\n}\n\n[data-jey-theme=\"chrome\"] ::-webkit-scrollbar-thumb:hover {\n background: linear-gradient(90deg, #777, #aaa, #888, #aaa, #777);\n}\n\n\n/* ==========================================================================\n Link Colors\n ========================================================================== */\n\n[data-jey-theme=\"chrome\"] a {\n color: #555;\n}\n\n[data-jey-theme=\"chrome\"] a:hover {\n color: #333;\n}\n\n\n/* ==========================================================================\n Print \u2014 Reset\n ========================================================================== */\n\n@media print {\n [data-jey-theme=\"chrome\"] body,\n [data-jey-theme=\"chrome\"] .page-container,\n [data-jey-theme=\"chrome\"] .form-page,\n [data-jey-theme=\"chrome\"] .frappe-card,\n [data-jey-theme=\"chrome\"] .modal-content,\n [data-jey-theme=\"chrome\"] .navbar {\n background: white !important;\n box-shadow: none !important;\n border-color: #ddd !important;\n text-shadow: none !important;\n }\n [data-jey-theme=\"chrome\"] .btn-primary {\n background: #333 !important;\n text-shadow: none !important;\n }\n}\n\n/* ===== theme_silk.css ===== */\n/* ==========================================================================\n THEME: Silk [data-jey-theme=\"silk\"]\n Warm ivory & champagne-gold. Soft frosted cards, generous rounding,\n diffuse shadows. Full-desk skin (see theme_chrome.css for the pattern).\n\n Background: pure CSS silk sheen for now, exposed via --jey-silk-bg so it\n can later be swapped for an image with a single edit, e.g.\n --jey-silk-bg: url(\"/assets/jey_theme/images/silk.jpg\") center/cover;\n ========================================================================== */\n\n@keyframes jey-silk-glow {\n 0%, 100% { opacity: 0.35; }\n 50% { opacity: 0.6; }\n}\n\n/* ==========================================================================\n Palette + CSS Variable Overrides\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] {\n /* --- Silk tokens --- */\n --jey-gold: #c39a54;\n --jey-gold-deep: #a67f3b;\n --jey-gold-soft: #e6d3a8;\n --jey-gold-tint: rgba(196, 160, 84, 0.12);\n --jey-cream: #f4ecde;\n --jey-card: #fbf8f2;\n --jey-ink: #453d31;\n --jey-ink-soft: #6d6252;\n --jey-line: #ebe0cd;\n\n --jey-shadow-card: 0 6px 24px rgba(120, 100, 60, 0.11), 0 1px 4px rgba(120, 100, 60, 0.06);\n --jey-shadow-hover: 0 12px 34px rgba(120, 100, 60, 0.16), 0 2px 8px rgba(120, 100, 60, 0.08);\n\n /* Silk background \u2014 real fabric photo with a soft warm champagne wash on\n top so the near-white centre stays tinted and frosted cards separate.\n The CSS-gradient fallback below is kept commented for reference. */\n --jey-silk-bg:\n linear-gradient(135deg, rgba(230, 213, 182, 0.30) 0%, rgba(244, 236, 222, 0.10) 45%, rgba(226, 208, 178, 0.34) 100%),\n url(\"/assets/jey_theme/images/silk-bg.jpg\") center center / cover no-repeat;\n /* --jey-silk-bg (pure-CSS fallback):\n radial-gradient(ellipse 80% 65% at 12% -5%, rgba(255, 255, 255, 0.7) 0%, transparent 55%),\n radial-gradient(ellipse 70% 55% at 88% 15%, rgba(246, 236, 216, 0.55) 0%, transparent 50%),\n radial-gradient(ellipse 95% 75% at 75% 105%, rgba(230, 213, 182, 0.45) 0%, transparent 55%),\n linear-gradient(135deg, #f2e9da 0%, #e9ddc7 45%, #e4d6bc 72%, #eee3d0 100%); */\n\n /* --- Surfaces --- */\n --bg-color: #f1e8d8;\n --fg-color: #fbf8f2;\n --card-bg: #fbf8f2;\n --subtle-accent: #f4ecde;\n --subtle-fg: #efe6d5;\n --fg-hover-color: #f6efe3;\n --highlight-color: #f4ecde;\n --navbar-bg: transparent;\n --modal-bg: #fbf8f2;\n --toast-bg: #fbf8f2;\n --popover-bg: #fbf8f2;\n --control-bg: #fbf8f2;\n --control-bg-on-gray: #f1e8d8;\n --awesomebar-focus-bg: #ffffff;\n --disabled-control-bg: #efe6d5;\n --skeleton-bg: #ece1cd;\n --surface-menu-bar: #f4ecde;\n --surface-white: #fbf8f2;\n --surface-gray-1: #f4ecde;\n --surface-gray-2: #efe6d5;\n --surface-gray-3: #e9dcc6;\n --surface-gray-4: #ddceb2;\n --surface-modal: #fbf8f2;\n --placeholder-color: #b3a58c;\n\n /* --- Sidebar --- */\n --sidebar-hover-color: #efe6d5;\n --sidebar-active-color: #ffffff;\n --sidebar-border-color: transparent;\n --divider-color: #e6dcc6;\n\n /* --- Text --- */\n --heading-color: #453d31;\n --text-color: #5a5040;\n --text-neutral: #453d31;\n --text-muted: #8a7d68;\n --text-light: #a4977f;\n --text-dark: #453d31;\n --disabled-text-color: #a4977f;\n --ink-gray-6: #8a7d68;\n --ink-gray-7: #6d6252;\n --ink-gray-8: #504733;\n --ink-gray-9: #453d31;\n\n /* --- Borders --- */\n --border-color: #ebe0cd;\n --dark-border-color: #ddceb2;\n --table-border-color: #ebe0cd;\n --btn-group-border-color: #ddceb2;\n --outline-gray-1: #ebe0cd;\n --outline-gray-2: #ddceb2;\n --outline-gray-modals: #e6dcc6;\n\n /* --- Primary / Buttons --- */\n --primary: #c39a54;\n --primary-color: #c39a54;\n --brand-color: #c39a54;\n --btn-primary: #c39a54;\n --btn-default-bg: #fbf8f2;\n --btn-default-hover-bg: #f1e8d8;\n --btn-ghost-hover-bg: #efe6d5;\n --border-primary: #c39a54;\n\n /* --- Rounding (silk = soft, generous) --- */\n --border-radius: 8px;\n --border-radius-sm: 6px;\n --border-radius-md: 12px;\n --border-radius-lg: 16px;\n --border-radius-full: 999px;\n\n /* --- Shadows (soft, diffuse, warm) --- */\n --shadow-xs: 0 1px 2px rgba(120, 100, 60, 0.06);\n --shadow-sm: 0 2px 6px rgba(120, 100, 60, 0.07);\n --shadow-base: 0 3px 10px rgba(120, 100, 60, 0.08);\n --shadow-md: 0 4px 16px rgba(120, 100, 60, 0.09);\n --shadow-lg: 0 8px 24px rgba(120, 100, 60, 0.11);\n --shadow-xl: 0 12px 32px rgba(120, 100, 60, 0.13);\n --shadow-2xl: 0 18px 44px rgba(120, 100, 60, 0.16);\n --card-shadow: 0 4px 20px rgba(120, 100, 60, 0.08), 0 1px 3px rgba(120, 100, 60, 0.05);\n --btn-shadow: 0 1px 2px rgba(120, 100, 60, 0.08);\n --modal-shadow: 0 20px 48px rgba(90, 70, 40, 0.22);\n --awesomebar-shadow: 0 4px 16px rgba(120, 100, 60, 0.1);\n\n /* --- Focus rings --- */\n --focus-default: 0 0 0 3px rgba(196, 160, 84, 0.25);\n\n /* --- Scrollbar --- */\n --scrollbar-thumb-color: #d8c8a6;\n --scrollbar-track-color: #f1e8d8;\n\n /* --- Checkbox / Switch --- */\n --switch-bg: #d8c8a6;\n --checkbox-color: #c39a54;\n --checkbox-gradient: linear-gradient(180deg, #cfa863 0%, #b98f45 100%);\n\n /* --- Timeline --- */\n --timeline-badge-color: #c39a54;\n --timeline-badge-bg: #f1e8d8;\n\n /* --- Date picker --- */\n --date-active-bg: #c39a54;\n --date-active-text: #ffffff;\n --date-range-bg: #f1e4cb;\n\n /* --- Progress / Misc --- */\n --progress-bar-bg: #c39a54;\n}\n\n/* ==========================================================================\n Body \u2014 Silk sheen background\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] body {\n background: var(--jey-silk-bg) !important;\n background-attachment: fixed !important;\n color: var(--text-color);\n}\n\n[data-jey-theme=\"silk\"] .page-container,\n[data-jey-theme=\"silk\"] .layout-main-section-wrapper,\n[data-jey-theme=\"silk\"] .layout-main-section {\n background: transparent !important;\n}\n\n/* ==========================================================================\n Navbar \u2014 Light, borderless, blends into silk\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .navbar {\n background: rgba(251, 248, 242, 0.72) !important;\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n border-bottom: 1px solid rgba(235, 224, 205, 0.6) !important;\n box-shadow: 0 1px 8px rgba(120, 100, 60, 0.05) !important;\n}\n\n[data-jey-theme=\"silk\"] .navbar .navbar-nav .nav-link {\n color: var(--jey-ink-soft) !important;\n}\n\n[data-jey-theme=\"silk\"] .navbar .navbar-nav .nav-link:hover {\n color: var(--jey-ink) !important;\n background: var(--jey-gold-tint) !important;\n border-radius: 10px;\n}\n\n/* ==========================================================================\n Awesomebar \u2014 Soft pill slot\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .search-bar input,\n[data-jey-theme=\"silk\"] .navbar .search-bar .form-control {\n background: rgba(255, 255, 255, 0.75) !important;\n border: 1px solid var(--jey-line) !important;\n box-shadow: inset 0 1px 2px rgba(120, 100, 60, 0.05) !important;\n color: var(--jey-ink) !important;\n border-radius: 999px !important;\n}\n\n[data-jey-theme=\"silk\"] .search-bar input:focus {\n background: #ffffff !important;\n border-color: var(--jey-gold-soft) !important;\n box-shadow: 0 0 0 3px rgba(196, 160, 84, 0.18) !important;\n}\n\n[data-jey-theme=\"silk\"] .search-bar .search-icon {\n color: var(--jey-gold-deep) !important;\n}\n\n/* ==========================================================================\n Sidebar \u2014 Cream panel, rounded white active pill\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .body-sidebar-container {\n background: rgba(247, 240, 227, 0.6) !important;\n border-right: 1px solid rgba(235, 224, 205, 0.7) !important;\n box-shadow: none !important;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar-container .body-sidebar,\n[data-jey-theme=\"silk\"] .body-sidebar-container .body-sidebar-top,\n[data-jey-theme=\"silk\"] .body-sidebar-container .body-sidebar-bottom,\n[data-jey-theme=\"silk\"] .body-sidebar-container .body-sidebar-cards {\n background: transparent !important;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item .item-anchor {\n border-radius: 12px;\n transition: background 0.2s ease, box-shadow 0.2s ease;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item .item-anchor:hover {\n background: rgba(255, 255, 255, 0.55) !important;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor,\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item.selected .item-anchor {\n background: #ffffff !important;\n box-shadow: 0 2px 10px rgba(120, 100, 60, 0.1) !important;\n border-radius: 12px;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item.active-sidebar .sidebar-item-label,\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item.selected .sidebar-item-label {\n color: var(--jey-ink) !important;\n font-weight: 600;\n}\n\n[data-jey-theme=\"silk\"] .body-sidebar .sidebar-item-icon,\n[data-jey-theme=\"silk\"] .body-sidebar .standard-sidebar-item.active-sidebar .sidebar-item-icon {\n color: var(--jey-gold-deep) !important;\n}\n\n/* Keep sidebar text neutral \u2014 gold is reserved for active/icons/accents,\n not every anchor (the global `a` gold rule would otherwise bleed here). */\n[data-jey-theme=\"silk\"] .body-sidebar-container a,\n[data-jey-theme=\"silk\"] .body-sidebar-container .sidebar-item-label,\n[data-jey-theme=\"silk\"] .body-sidebar-container .sidebar-item-control {\n color: var(--text-color) !important;\n}\n\n/* Sidebar header + context menu themed icons */\n[data-jey-theme=\"silk\"] .sidebar-header .header-logo .jey-icon,\n[data-jey-theme=\"silk\"] .frappe-menu .menu-item-icon .jey-icon {\n stroke: var(--jey-gold-deep) !important;\n fill: none !important;\n stroke-width: 1.7 !important;\n stroke-linecap: round !important;\n stroke-linejoin: round !important;\n}\n\n/* ==========================================================================\n Buttons\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .btn-primary {\n background: linear-gradient(180deg, #cfa863 0%, #bd9146 100%) !important;\n color: #fffdf8 !important;\n border: 1px solid #b0873f !important;\n box-shadow: 0 2px 8px rgba(180, 140, 60, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;\n text-shadow: 0 -1px 0 rgba(120, 90, 30, 0.2);\n border-radius: 10px !important;\n transition: box-shadow 0.2s ease, transform 0.1s ease, background 0.2s ease !important;\n}\n\n[data-jey-theme=\"silk\"] .btn-primary:hover {\n background: linear-gradient(180deg, #d6b170 0%, #c59a4f 100%) !important;\n box-shadow: 0 4px 14px rgba(180, 140, 60, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;\n}\n\n[data-jey-theme=\"silk\"] .btn-primary:active {\n transform: translateY(1px);\n box-shadow: 0 1px 4px rgba(180, 140, 60, 0.2), inset 0 2px 4px rgba(120, 90, 30, 0.18) !important;\n}\n\n[data-jey-theme=\"silk\"] .btn-default,\n[data-jey-theme=\"silk\"] .btn-secondary {\n background: rgba(255, 255, 255, 0.85) !important;\n border: 1px solid var(--jey-line) !important;\n color: var(--jey-ink) !important;\n box-shadow: 0 1px 3px rgba(120, 100, 60, 0.06) !important;\n border-radius: 10px !important;\n transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important;\n}\n\n[data-jey-theme=\"silk\"] .btn-default:hover,\n[data-jey-theme=\"silk\"] .btn-secondary:hover {\n background: #ffffff !important;\n border-color: var(--jey-gold-soft) !important;\n box-shadow: 0 3px 10px rgba(120, 100, 60, 0.1) !important;\n}\n\n[data-jey-theme=\"silk\"] .btn-ghost:hover {\n background: var(--jey-gold-tint) !important;\n}\n\n/* ==========================================================================\n Inputs\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]),\n[data-jey-theme=\"silk\"] textarea.form-control,\n[data-jey-theme=\"silk\"] select.form-control,\n[data-jey-theme=\"silk\"] select.input-with-feedback {\n background: rgba(255, 255, 255, 0.8) !important;\n border: 1px solid var(--jey-line) !important;\n color: var(--jey-ink) !important;\n box-shadow: inset 0 1px 2px rgba(120, 100, 60, 0.04) !important;\n border-radius: 10px !important;\n transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease !important;\n}\n\n[data-jey-theme=\"silk\"] input.form-control:not([type=\"checkbox\"]):not([type=\"radio\"]):focus,\n[data-jey-theme=\"silk\"] textarea.form-control:focus,\n[data-jey-theme=\"silk\"] select.form-control:focus {\n background: #ffffff !important;\n border-color: var(--jey-gold-soft) !important;\n box-shadow: 0 0 0 3px rgba(196, 160, 84, 0.18) !important;\n}\n\n[data-jey-theme=\"silk\"] .form-control:disabled,\n[data-jey-theme=\"silk\"] .form-control[disabled] {\n background: #efe6d5 !important;\n color: var(--text-light) !important;\n box-shadow: none !important;\n}\n\n[data-jey-theme=\"silk\"] .frappe-control .control-label,\n[data-jey-theme=\"silk\"] .frappe-control label {\n color: var(--jey-ink-soft) !important;\n}\n\n/* ==========================================================================\n Cards / Widgets \u2014 Soft frosted panels, generous rounding\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .widget,\n[data-jey-theme=\"silk\"] .ce-block .links-widget-box,\n[data-jey-theme=\"silk\"] .ce-block .number-widget-box,\n[data-jey-theme=\"silk\"] .ce-block .chart-widget-box,\n[data-jey-theme=\"silk\"] .ce-block .shortcut-widget-box,\n[data-jey-theme=\"silk\"] .ce-block .onboarding-widget-box,\n[data-jey-theme=\"silk\"] .frappe-card {\n /* Frosted glass: the \"glassy\" read comes from a bright, thin, CONTINUOUS\n light rim around the whole perimeter (like light on the edge of a glass\n pane) \u2014 not a top-only highlight. Strong blur + a milky fill keep the\n surface even; the silk still whispers through. */\n background: linear-gradient(160deg, rgba(255, 255, 255, 0.46) 0%, rgba(255, 252, 245, 0.34) 55%, rgba(252, 246, 236, 0.40) 100%) !important;\n backdrop-filter: blur(22px) saturate(1.2);\n -webkit-backdrop-filter: blur(22px) saturate(1.2);\n border: 1.5px solid rgba(255, 255, 255, 0.9) !important;\n box-shadow:\n 0 14px 34px rgba(74, 57, 35, 0.18),\n 0 4px 10px rgba(74, 57, 35, 0.10),\n inset 0 1px 1px rgba(255, 255, 255, 0.6) !important;\n border-radius: 22px !important;\n transition: box-shadow 0.25s ease, transform 0.2s ease !important;\n}\n\n[data-jey-theme=\"silk\"] .widget.onboarding-widget-box {\n background: linear-gradient(160deg, rgba(255, 255, 255, 0.46) 0%, rgba(255, 252, 245, 0.34) 55%, rgba(252, 246, 236, 0.40) 100%) !important;\n}\n\n[data-jey-theme=\"silk\"] .ce-block .links-widget-box:hover,\n[data-jey-theme=\"silk\"] .ce-block .number-widget-box:hover,\n[data-jey-theme=\"silk\"] .ce-block .shortcut-widget-box:hover {\n border-color: rgba(255, 255, 255, 1) !important;\n box-shadow:\n 0 22px 48px rgba(74, 57, 35, 0.24),\n 0 6px 14px rgba(74, 57, 35, 0.13),\n inset 0 1px 1px rgba(255, 255, 255, 0.7) !important;\n transform: translateY(-3px);\n}\n\n/* Widget titles */\n[data-jey-theme=\"silk\"] .widget .widget-head .widget-title,\n[data-jey-theme=\"silk\"] .widget-group .widget-group-head .widget-group-title {\n color: var(--jey-ink) !important;\n font-weight: 600;\n}\n\n/* Number card \u2014 big number in warm ink */\n[data-jey-theme=\"silk\"] .number-widget-box .widget-content .number {\n color: var(--jey-ink) !important;\n}\n\n/* Shortcut icon chips \u2014 soft gold */\n[data-jey-theme=\"silk\"] .shortcut-widget-box .indicator-pill,\n[data-jey-theme=\"silk\"] .widget .shortcut-icon {\n color: var(--jey-gold-deep) !important;\n}\n\n/* Form page + sections */\n[data-jey-theme=\"silk\"] .form-page {\n background: rgba(251, 248, 242, 0.9) !important;\n border: 1px solid rgba(235, 224, 205, 0.8) !important;\n box-shadow: var(--jey-shadow-card) !important;\n border-radius: 16px !important;\n}\n\n[data-jey-theme=\"silk\"] .form-section .section-head {\n color: var(--jey-ink) !important;\n border-bottom: 1px solid var(--jey-line) !important;\n}\n\n/* ==========================================================================\n Charts \u2014 champagne gold line/area\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .chart-container .line-chart-rect,\n[data-jey-theme=\"silk\"] .chart-container path.line-graph-path,\n[data-jey-theme=\"silk\"] .chart-container path.dataset-path {\n stroke: var(--jey-gold) !important;\n}\n\n[data-jey-theme=\"silk\"] .chart-container .dataset-circle,\n[data-jey-theme=\"silk\"] .chart-container circle.fill {\n fill: var(--jey-gold) !important;\n stroke: var(--jey-gold) !important;\n}\n\n[data-jey-theme=\"silk\"] .chart-container path.region-fill {\n fill: rgba(196, 160, 84, 0.12) !important;\n stroke: none !important;\n}\n\n/* ==========================================================================\n Page Head\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .page-head {\n background: transparent !important;\n border-bottom: none !important;\n box-shadow: none !important;\n}\n\n[data-jey-theme=\"silk\"] .page-head .title-text,\n[data-jey-theme=\"silk\"] .page-title .title-text {\n color: var(--jey-ink) !important;\n}\n\n/* ==========================================================================\n List View\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .list-row-head {\n background: rgba(244, 236, 222, 0.85) !important;\n border-bottom: 1px solid var(--jey-line) !important;\n box-shadow: none !important;\n border-radius: 12px 12px 0 0;\n}\n\n[data-jey-theme=\"silk\"] .list-row-container .list-row {\n border-bottom: 1px solid rgba(235, 224, 205, 0.7) !important;\n}\n\n[data-jey-theme=\"silk\"] .list-row-container:hover {\n background: var(--jey-gold-tint) !important;\n}\n\n[data-jey-theme=\"silk\"] .layout-side-section {\n border-right: 1px solid var(--jey-line) !important;\n}\n\n/* ==========================================================================\n Modals / Dialogs\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .modal-content {\n background: #fbf8f2 !important;\n border: 1px solid var(--jey-line) !important;\n box-shadow: 0 20px 48px rgba(90, 70, 40, 0.22) !important;\n border-radius: 18px !important;\n}\n\n[data-jey-theme=\"silk\"] .modal-header {\n background: transparent !important;\n border-bottom: 1px solid var(--jey-line) !important;\n}\n\n[data-jey-theme=\"silk\"] .modal-header .modal-title {\n color: var(--jey-ink) !important;\n}\n\n[data-jey-theme=\"silk\"] .modal-footer {\n background: transparent !important;\n border-top: 1px solid var(--jey-line) !important;\n}\n\n[data-jey-theme=\"silk\"] .modal-backdrop {\n background-color: rgba(70, 55, 35, 0.4) !important;\n}\n\n/* ==========================================================================\n Dropdowns / Popovers\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .dropdown-menu,\n[data-jey-theme=\"silk\"] .popover {\n background: #fbf8f2 !important;\n border: 1px solid var(--jey-line) !important;\n box-shadow: 0 8px 24px rgba(120, 100, 60, 0.14) !important;\n border-radius: 14px !important;\n}\n\n[data-jey-theme=\"silk\"] .dropdown-item {\n color: var(--jey-ink-soft) !important;\n border-radius: 8px;\n}\n\n[data-jey-theme=\"silk\"] .dropdown-item:hover,\n[data-jey-theme=\"silk\"] .dropdown-item:focus {\n background: var(--jey-gold-tint) !important;\n color: var(--jey-ink) !important;\n}\n\n[data-jey-theme=\"silk\"] .dropdown-divider {\n border-top-color: var(--jey-line) !important;\n}\n\n/* ==========================================================================\n Tabs\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .form-tabs .nav-link {\n color: var(--jey-ink-soft) !important;\n}\n\n[data-jey-theme=\"silk\"] .form-tabs .nav-link:hover {\n color: var(--jey-ink) !important;\n background: var(--jey-gold-tint) !important;\n border-radius: 8px;\n}\n\n[data-jey-theme=\"silk\"] .form-tabs .nav-link.active {\n color: var(--jey-gold-deep) !important;\n}\n\n[data-jey-theme=\"silk\"] .form-tabs .nav-link::after {\n background: var(--jey-gold) !important;\n}\n\n/* ==========================================================================\n Links / Scrollbars\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] a {\n color: var(--jey-gold-deep);\n}\n\n[data-jey-theme=\"silk\"] a:hover {\n color: #8c6b2c;\n}\n\n[data-jey-theme=\"silk\"] ::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n}\n\n[data-jey-theme=\"silk\"] ::-webkit-scrollbar-track {\n background: #f1e8d8;\n}\n\n[data-jey-theme=\"silk\"] ::-webkit-scrollbar-thumb {\n background: #dccba4;\n border-radius: 5px;\n border: 2px solid #f1e8d8;\n}\n\n[data-jey-theme=\"silk\"] ::-webkit-scrollbar-thumb:hover {\n background: #cdb885;\n}\n\n/* ==========================================================================\n Desktop workspace icons \u2014 frosted glass square, gold icon\n ========================================================================== */\n\n[data-jey-theme=\"silk\"] .jey-chrome {\n width: 72px; height: 72px; border-radius: 22px; position: relative;\n background: rgba(255, 255, 255, 0.55);\n backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);\n border: 1px solid rgba(255, 255, 255, 0.7);\n box-shadow: 0 4px 16px rgba(120, 100, 60, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.85);\n transition: all 0.3s ease;\n}\n\n[data-jey-theme=\"silk\"] .desktop-icon:hover .jey-chrome {\n box-shadow: 0 8px 24px rgba(120, 100, 60, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.9);\n transform: translateY(-2px);\n}\n\n[data-jey-theme=\"silk\"] .jey-chrome-ring,\n[data-jey-theme=\"silk\"] .jey-chrome-gap,\n[data-jey-theme=\"silk\"] .jey-chrome-ring-inner {\n display: none;\n}\n\n[data-jey-theme=\"silk\"] .jey-chrome-face {\n position: absolute; inset: 0; border-radius: 22px; overflow: hidden;\n background: transparent; box-shadow: none;\n display: flex; align-items: center; justify-content: center;\n}\n\n[data-jey-theme=\"silk\"] .jey-face-glow {\n position: absolute; bottom: -4px; left: 16px; right: 16px; height: 20px;\n border-radius: 50%;\n background: radial-gradient(ellipse, rgba(196, 160, 84, 0.4) 0%, transparent 70%);\n animation: jey-silk-glow 4s ease-in-out infinite;\n pointer-events: none; z-index: 0;\n}\n\n[data-jey-theme=\"silk\"] .jey-face-reflection {\n position: absolute; top: 0; left: 0; right: 0; height: 50%;\n border-radius: 22px 22px 0 0;\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.55) 0%, transparent 100%);\n pointer-events: none; z-index: 1; animation: none;\n}\n\n[data-jey-theme=\"silk\"] .jey-chrome-face .jey-icon {\n width: 26px !important; height: 26px !important;\n stroke: #b58f47 !important; fill: none !important;\n stroke-width: 1.6 !important; stroke-linecap: round !important; stroke-linejoin: round !important;\n filter: drop-shadow(0 1px 2px rgba(180, 140, 60, 0.25)) !important;\n position: relative; z-index: 2;\n}\n\n[data-jey-theme=\"silk\"] .icon-container.jey-chrome-done {\n border-radius: 22px !important;\n}\n"], + "mappings": "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,yDAGR,mDACQ,qBAAwB,sBACxB,yBAA4B,oBAC5B,2BAA8B,+BAAkC,gCAChE,2DACA,kBAAoB,UAW5B,+BACe,2CACA,wCAOf,wBAEQ,oBACA,oBACA,mBACA,yBACA,qBACA,uBACA,2BACA,qBACA,iBACA,iBACA,sBACA,sBACA,2BACA,+BACA,+BACA,uBACA,4BACA,yBACA,0BACA,0BACA,0BACA,uBACA,sBACA,0BAGA,+BACA,gCACA,6BACA,yBAGA,sBACA,sBACA,qBACA,mBACA,mBACA,qBACA,4BACA,mBACA,sBACA,mBAGA,qBACA,0BACA,2BACA,+BACA,0BACA,uBACA,4BAGA,gBACA,oBACA,oBACA,uBACA,6BACA,8BACA,uBAGA,6EACA,8EACA,+EACA,8EACA,8EACA,+EACA,8EACA,wCACA,8EACA,+EACA,kFACA,sFAGA,gDAGA,8BACA,iCAGA,kBACA,uBACA,iEAGA,6BACA,0BAGA,uBACA,4BACA,sBAGA,wBACA,sBACA,wBASR,6BACQ,6TAKA,sCAGR,wCACQ,iCASR,gCACQ,8HAEA,uCACA,sFAMR,sDACQ,qBACA,yCAGR,4DACQ,qBACA,gGA/rDR,kBAwsDA,0CACQ,qEACA,gCACA,yFAIA,qBA/sDR,4BAmtDA,gDACQ,qEACA,4BACA,+EAMR,iDACQ,qBAQR,gDACQ,uIACA,sCACA,yGAOR,yQAIQ,iCAGR,gFACQ,gGAGR,yFACQ,+EACA,4GA5vDR,kBAowDA,yDACQ,qBACA,iDAQR,+DACQ,qBACA,sBACA,sBACA,oBACA,2BACA,+BACA,gCACA,2DAQR,+DACQ,qBACA,sBACA,sBACA,oBACA,2BACA,+BACA,gCACA,2DAQR,qCACQ,0GACA,wBACA,gCACA,8JAOA,qCACA,kBACA,gBACA,2GAKR,4CACQ,WACA,kBACA,MAAQ,UAAY,UAAY,YAChC,gFACA,uBACA,yBACA,oBAGR,kDACQ,UAGR,2CACQ,0GACA,8JASR,4CACQ,0GACA,8JAOA,8CAQR,4EAEQ,6GACA,gCACA,qBACA,0JAOA,yCACA,2GAKR,wFAEQ,+HACA,4BACA,8JASR,0FAEQ,gHACA,8J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", + "names": [] +} diff --git a/jey_theme/public/js/jey_theme.js b/jey_theme/public/js/jey_theme.js index 43371c5..d265aa0 100644 --- a/jey_theme/public/js/jey_theme.js +++ b/jey_theme/public/js/jey_theme.js @@ -6,6 +6,11 @@ (function () { var DEFAULT_THEME = "chrome"; var saved = localStorage.getItem("jey-theme"); + // Back-compat: "modern" was renamed to "silk". Migrate existing users. + if (saved === "modern") { + saved = "silk"; + localStorage.setItem("jey-theme", saved); + } if (!saved) { saved = DEFAULT_THEME; localStorage.setItem("jey-theme", saved); @@ -165,9 +170,9 @@ }, /* ============================================================ - MODERN — minimal geometric icons, visually distinct + SILK — minimal geometric icons, visually distinct ============================================================ */ - modern: { + silk: { buying: { paths: '' }, selling: { paths: '' }, stock: { paths: '' }, @@ -214,7 +219,7 @@ var icons = THEME_ICONS[theme] || THEME_ICONS.chrome; var icon = key && icons[key]; if (icon) return icon; - // fallback to chrome if modern doesn't have the key + // fallback to chrome if silk doesn't have the key icon = key && THEME_ICONS.chrome[key]; if (icon) return icon; return icons._fallback || THEME_ICONS.chrome._fallback; @@ -952,9 +957,9 @@ info: "Metallic chrome buttons with animated rings", }, { - name: "modern", - label: "Modern", - info: "Frosted glass with soft shadows", + name: "silk", + label: "Silk", + info: "Soft silk & champagne gold", }, ];