{"product_id":"dhonu-premium-theme-for-dolibarr-erp-crm","title":"DHONU Premium Theme for Dolibarr ERP\/CRM","description":"\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e1. Executive Summary\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eDhonu is a premium interface theme for Dolibarr ERP\/CRM. It replaces the standard back-office chrome with a light, minimal and information-dense design: a white full-height navigation rail carrying the brand, a white top bar spanning the content column, a very light canvas, white cards with hairline borders, and a medium-blue primary supported by green, turquoise, orange and pink accents.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eDhonu is delivered as a Dolibarr MODULE rather than a CSS-only theme. A stylesheet can only recolour existing markup; it cannot create a navigation rail, a dashboard, a mail workspace or an application manager. Shipping as a module lets Dhonu inject its assets on every page, provide its own menu manager, and add four purpose-built workspaces — without modifying a single file of the Dolibarr core.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eEverything Dhonu displays is read from real Dolibarr tables. Where the reference design showed a web-analytics metric with no ERP equivalent (page views, bounce rate, regional traffic), the metric is mapped onto a documented business equivalent and labelled as that business metric. No figure on any screen is invented, and a panel with no data shows an explicit empty state rather than a placeholder number.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e2. Theme Overview\u003c\/span\u003e\u003c\/h1\u003e\n\u003ctable class=\"MsoTableLightGridAccent1\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse: collapse; border: none; mso-border-alt: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"mso-yfti-irow: -1; mso-yfti-firstrow: yes; mso-yfti-lastfirstrow: yes;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-bottom: solid #4F81BD 2.25pt; mso-border-bottom-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 5;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eCommercial name\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; border-left: none; border-bottom: solid #4F81BD 2.25pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 1;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eDhonu\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 0;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 68;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eTechnical name\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 64;\"\u003e\u003cspan lang=\"EN-US\"\u003edhonu (module class modDhonu)\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 1;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 132;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eModule identifier\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 128;\"\u003e\u003cspan lang=\"EN-US\"\u003e10000640\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 2;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 68;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eVersion\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 64;\"\u003e\u003cspan lang=\"EN-US\"\u003e1.0\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 3;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 132;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eEditor\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 128;\"\u003e\u003cspan lang=\"EN-US\"\u003eDoliResources — https:\/\/www.doliresources.com\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 4;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 68;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eLicence\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 64;\"\u003e\u003cspan lang=\"EN-US\"\u003eGPL-3.0-or-later\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 5;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 132;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003ePackage\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 128;\"\u003e\u003cspan lang=\"EN-US\"\u003emodule_dhonu-1.0.zip\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 6;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 68;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eDolibarr compatibility\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 64;\"\u003e\u003cspan lang=\"EN-US\"\u003e16.0 and later (developed and verified on 17.0.3)\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 7;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 132;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003ePHP requirement\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 128;\"\u003e\u003cspan lang=\"EN-US\"\u003e7.0 minimum; verified on PHP 8.1\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 8;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 68;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eLanguages\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 64;\"\u003e\u003cspan lang=\"EN-US\"\u003eEnglish, French, Spanish, Italian, German, Dutch, Portuguese\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 9; mso-yfti-lastrow: yes;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 132;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eCore files modified\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 128;\"\u003e\u003cspan lang=\"EN-US\"\u003eNone\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e3. Design Objectives\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eReproduce the reference design faithfully: rail, top bar, accent-barred cards, KPI tiles, combined charts, mail workspace, application manager and sign-in screen.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eStay comfortable across long working sessions: high information density, quiet colour, generous contrast, no decorative motion.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eKeep every Dolibarr behaviour intact — menus, permissions, multi-entity, hooks and third-party modules must continue to work untouched.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eRemain configurable without code: palette, layout, rail mode, header mode, density, typography, radius, shadows, borders and animations are all administrator settings.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eShip no external runtime dependency: charts are inline SVG, icons come from the Font Awesome build Dolibarr already bundles.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e4. UI\/UX Philosophy\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eDhonu's signature is a short coloured bar preceding every card and KPI title. It is rendered as generated content on the heading itself, so it can never be separated from its title, and it gives a page a consistent reading rhythm without adding chrome.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eSurfaces: white cards on a very light canvas, 1px hairline borders, 8px radius, soft shadow.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eColour carries meaning, never decoration: green for favourable movement, red for adverse, amber for attention, blue for the primary action.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eNever colour alone: status is always also carried by an icon, a label or a weight change, so the interface stays readable for colour-blind users and in monochrome print.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eEmpty states are explicit. A panel with no data says so; it never shows a zero that could be mistaken for a measured value.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 10.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Calibri',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; color: #3a4256; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;\"\u003e\u003cbr clear=\"all\" style=\"mso-special-character: line-break; page-break-before: always;\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e5. Dhonu Dashboard\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eThe landing workspace. It replaces the Dolibarr home page through the theme's main hook, and can be turned off so the native home page returns.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003e\u003cspan lang=\"EN-US\"\u003e5.1 KPI cards\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eFour headline tiles, each with its accent bar, a round tinted icon plate, the figure and a period-over-period movement:\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eTotal orders — count of customer orders, compared with the preceding period.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eTotal revenue — invoiced turnover over the selected period. The amount column (excl.\/incl. tax) and the invoice statuses counted are configurable.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eActive customers — distinct customers invoiced over the period. The comparison period uses the same definition, so the movement compares like with like.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eConversion rate — signed proposals over proposals that reached a DECISION (signed or refused). Still-open proposals are deliberately excluded from the denominator: including them would sink the rate and make a healthy pipeline read as a failing one.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eEvery tile links to the matching Dolibarr list, pre-filtered to the same period and status scope as the tile, so the list total reconciles with the figure shown.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003e\u003cspan lang=\"EN-US\"\u003e5.2 Business performance overview\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eA combined twelve-month chart drawn as inline SVG: invoiced revenue as columns, order count as a line, new customers as a dashed line. The three series live on very different scales, so each is normalised against its own maximum; plotting counts and money on one raw axis would flatten the counts into the baseline. Hovering a column reveals the exact month and amount. Export and Import buttons lead to the native Dolibarr tools.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003e\u003cspan lang=\"EN-US\"\u003e5.3 Customer value distribution\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eThe reference design's bubble chart, read as an ERP metric: one bubble per customer, turnover on the horizontal axis, number of documents on the vertical, and bubble AREA proportional to the customer's share of turnover. Area — not radius — carries the value, because a linear radius exaggerates large accounts roughly quadratically.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003e\u003cspan lang=\"EN-US\"\u003e5.4 Goal achievement metrics\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eThree concentric arcs and a matching list: sales target, order intake and collection rate. Targets are administrator settings; when one is unset, Dhonu derives it from the same window a year earlier — but only when that window is a credible baseline. On a young install the year-ago figure can be a rounding error, which would report achievement in the thousands of percent, so below a tenth of the current value the baseline is treated as absent and the panel states that no target is set.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003e\u003cspan lang=\"EN-US\"\u003e5.5 Regional sales distribution\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eTurnover grouped by the customer's country, taken from the third-party address, and shown as a ranked bar list. A choropleth map was deliberately not used: it would require a bundled vector asset that is dead weight for most installs, it cannot represent a customer base outside the mapped territory, and it is unreadable by assistive technology. The bar list is accurate for any country mix and needs no external asset.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003e\u003cspan lang=\"EN-US\"\u003e5.6 Account activity overview\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eThe design's page-analytics table, mapped column by column onto ERP data: customer account, acquisition origin, documents issued, revenue and proposal conversion. The table is searchable client-side, and every row links to the customer record and its invoices. A customer with no decided proposal shows an explicit 'n\/a' conversion rather than 0 %, which would read as 'never converts'.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003e\u003cspan lang=\"EN-US\"\u003e5.7 Top countries\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eCustomers invoiced over the period, ranked by turnover, with a flag, a count and the movement against the same period a year earlier. When the earlier period holds no comparable turnover the movement is shown as unknown rather than as a spurious percentage.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 10.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Calibri',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; color: #3a4256; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;\"\u003e\u003cbr clear=\"all\" style=\"mso-special-character: line-break; page-break-before: always;\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e6. Dhonu Email Interface\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eDolibarr stores every e-mail it sends or collects as an agenda event carrying real e-mail columns (sender, recipients, subject, message id). The Dhonu mail workspace is a reading of that store: it is not a mail client and it invents no mailbox. Every row shown is a real communication recorded against a real third party, contact, project or document.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eThe design's folders have no literal Dolibarr equivalent, so each is an explicit filter over the same store:\u003c\/span\u003e\u003c\/p\u003e\n\u003ctable class=\"MsoTableLightGridAccent1\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse: collapse; border: none; mso-border-alt: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"mso-yfti-irow: -1; mso-yfti-firstrow: yes; mso-yfti-lastfirstrow: yes;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-bottom: solid #4F81BD 2.25pt; mso-border-bottom-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 5;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eFolder\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; border-left: none; border-bottom: solid #4F81BD 2.25pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 1;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eMapping\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 0;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 68;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eInbox\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 64;\"\u003e\u003cspan lang=\"EN-US\"\u003eIncoming messages (collector code, or any non-outgoing row with a sender)\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 1;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 132;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eSent\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 128;\"\u003e\u003cspan lang=\"EN-US\"\u003eOutgoing messages that have been sent\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 2;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 68;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eStarred\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 64;\"\u003e\u003cspan lang=\"EN-US\"\u003eFlagged high priority\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 3;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 132;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eScheduled\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 128;\"\u003e\u003cspan lang=\"EN-US\"\u003eDated in the future\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 4;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 68;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eDraft\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 64;\"\u003e\u003cspan lang=\"EN-US\"\u003eOutgoing but not yet sent\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 5;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 132;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eImportant\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 128;\"\u003e\u003cspan lang=\"EN-US\"\u003eHigh priority and still open\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"mso-yfti-irow: 6; mso-yfti-lastrow: yes;\"\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; border-top: none; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 68;\"\u003e\u003cb\u003e\u003cspan lang=\"EN-US\" style=\"mso-fareast-font-family: 'MS Gothic'; mso-fareast-theme-font: major-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: major-bidi;\"\u003eSpam \/ Trash\u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd width=\"322\" valign=\"top\" style=\"width: 241.2pt; border-top: none; border-left: none; border-bottom: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; border-right: solid #4F81BD 1.0pt; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; background: #D3DFEE; mso-background-themecolor: accent1; mso-background-themetint: 63; padding: 0cm 5.4pt 0cm 5.4pt;\"\u003e\n\u003cp class=\"MsoNormal\" style=\"line-height: normal; mso-yfti-cnfc: 64;\"\u003e\u003cspan lang=\"EN-US\"\u003eNot represented in Dolibarr — shown disabled with an explanatory tooltip rather than silently returning an empty list\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eMessage rows show selection, star, avatar, sender, subject, preview, the linked customer, a real attachment count read from the document index, and the date.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eUnread messages are heavier as well as differently coloured, so the distinction survives monochrome rendering and colour-blindness.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eSearch covers subject, sender, recipient, label and customer name; results are paginated.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eCompose, the event list, the calendar and mass emailing all open the corresponding native Dolibarr screens — Dhonu never re-implements sending.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eAccess requires the Dolibarr agenda read permission; a user without the 'all actions' right sees only their own correspondence, exactly as in the native agenda.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eIf the Agenda module is disabled, the page explains why it is empty instead of failing.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 10.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Calibri',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; color: #3a4256; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;\"\u003e\u003cbr clear=\"all\" style=\"mso-special-character: line-break; page-break-before: always;\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e7. Dhonu Apps Manager\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eA modern reading of Dolibarr's own module manager. Modules are discovered exactly the way the core admin page discovers them, so native modules, third-party modules and DoliResources extensions all appear.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eAuthorized apps — modules currently enabled, each with a toggle, a status badge, the version and editor, a Disable action and a link to its configuration page.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eExplore more integrations — modules available but not enabled, with an Enable action and a link to the editor's site. Paginated.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eFilters by state (all \/ enabled \/ available) and origin (core \/ add-on), plus a search field.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eA descriptor that fails to load is skipped and traced rather than taking the page down.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eAn important honesty note, stated on the page itself: 'Enabled' means the module is active in this Dolibarr. It does not assert that a handshake with a remote service succeeded. Enabling and disabling are delegated to the Dolibarr module manager with a CSRF token, so Dhonu never re-implements activation logic and cannot drift from it. The page is restricted to administrators.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 10.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Calibri',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; color: #3a4256; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;\"\u003e\u003cbr clear=\"all\" style=\"mso-special-character: line-break; page-break-before: always;\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e8. Dhonu Sign In Page\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eA centred, minimal sign-in screen: the Dhonu mark, a welcome heading, a short instruction, a white card holding the credential fields and the entity selector, a full-width primary button, the password-recovery link and a copyright line.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eAuthentication is entirely Dolibarr's. Dhonu styles the surroundings of the NATIVE login form and never rebuilds or replaces it, so its fields, its CSRF token, its action and its entity selector are untouched. LDAP, OAuth, SSO, two-factor authentication, account lockout and password recovery therefore continue to behave exactly as configured. No parallel authentication path exists anywhere in the theme.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 10.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Calibri',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; color: #3a4256; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;\"\u003e\u003cbr clear=\"all\" style=\"mso-special-character: line-break; page-break-before: always;\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e9. Sidebar\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eA white, full-height rail carrying the brand at its top. Its content is built from the NATIVE Dolibarr menu tree, so every enabled module, every third-party entry, every permission restriction, every entity restriction and every translation is honoured automatically — there is no hardcoded menu to maintain.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eGrouped sections with small uppercase eyebrows; expandable groups with nested levels.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eActive entry on a soft blue plate with a primary label AND a primary icon.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eLive filter field to search the navigation.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eCollapsible to an icon rail; the state is remembered per user.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eOn phones it becomes an off-canvas drawer with a backdrop.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eCount and 'New' badges render at the right of a row.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e10. Top Bar\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eGlobal search with a solid primary submit button.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eTwo quick-menu pills leading to bookmarks and the module index.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eTheme toggle (light\/dark), settings, fullscreen.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eA notification bell whose count is a real figure: agenda actions still open and assigned to the signed-in user. The badge is omitted at zero rather than showing an empty chip.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eThe native Dolibarr login block — entity selector, print, help and the user menu — is preserved and only restyled, so multi-company and the user menu keep working.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eModes: light, dark, coloured, transparent, and fixed or static.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e11. Global Search\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eA dedicated results page searching third parties, contacts, products and services, proposals, orders, invoices, projects and agenda events, with the matched term highlighted and a direct link to each record. Results respect the signed-in user's permissions.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e12. Charts and Data Visualisation\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eAll Dhonu charts are inline SVG generated server-side. There is no charting library, no CDN request and no client-side data fetch, which keeps pages fast, works under a strict content security policy, and means a chart cannot fail to appear because a script did not load.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eCombined column-and-line chart with per-series normalisation and hover tooltips.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eBubble\/scatter chart with area-proportional sizing.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eMulti-ring radial goal chart. A 0 % arc draws nothing: with a round line cap a zero-length arc would otherwise paint a dot that looks like a real data point.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eHorizontal bar lists for regional and ranking data.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eCharts inherit the theme tokens, so they repaint correctly in dark mode.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e13. Tables and Lists\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eNative Dolibarr lists are restyled rather than replaced: uppercase column headers, compact rows, hover feedback, themed badges and pagination. Dhonu's own tables add client-side filtering and row actions. Wide tables scroll inside their own container so a wide table can never force the whole page to scroll sideways.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e14. Forms\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eText, e-mail, password, number, date, time, select, autocomplete, textarea, checkbox, radio, switch, file upload and monetary fields are restyled consistently: 7-8px radius, hairline border, a visible focus ring in the primary colour, and clear required\/error states. Full compatibility with native Dolibarr forms is preserved — no field markup is replaced.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 10.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: 'Calibri',sans-serif; mso-fareast-font-family: 'MS Mincho'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; color: #3a4256; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;\"\u003e\u003cbr clear=\"all\" style=\"mso-special-character: line-break; page-break-before: always;\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e15. Theme Configuration\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eEvery facet below is an administrator setting applied on the next page load. Defaults are read from the same table the stylesheet reads, so a reset can never restore a stale palette.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eAppearance: light, dark or follow-the-system; density compact \/ normal \/ comfortable.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003ePalettes: Dhonu Blue (default), Indigo, Green, Turquoise, Orange, Pink, Red, Gray, or a custom primary\/accent pair.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eSidebar: preset, light, dark, coloured, mini, large or floating; configurable width.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eTop bar: preset, light, dark, coloured or transparent.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eLayout: wide, fluid, boxed, compact or comfortable.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eCards: radius, shadows, borders and animations can each be switched off.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eTypography: Inter, Figtree, Poppins, Nunito Sans, Roboto or the system stack; base size.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eBusiness options: turnover base (excl.\/incl. tax), which invoice statuses count, sales and order-intake targets, and whether the native Dolibarr widgets appear under the dashboard.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eWidgets: the dashboard embeds Dolibarr's native widget zone, so administrators and users keep the core add \/ hide \/ drag-and-drop behaviour, persisted per user by Dolibarr itself.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e16. Dark Mode\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eA true dark mode, not a tinted light mode. The dark surfaces are drawn from an independent cool neutral ramp rather than by darkening the light palette. This matters: a warm accent at low opacity over a navy canvas renders brown, and a green renders olive. Where the light theme uses a tinted tile, the dark theme drops the tile to the card surface and moves the colour into the icon plate, where it stays legible.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eDark mode covers the rail, the top bar, the canvas, cards, widgets, tables, forms, charts, dropdowns, modals, the mail workspace, the application manager and the sign-in screen. It can be toggled from the top bar, set as the default in configuration, or follow the operating-system preference. The user's own choice always wins over the administrator default, and it is applied before first paint so there is no flash of the wrong theme.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e17. Responsive Design\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eVerified at 1600, 1400, 1100, 820 and 390 pixels wide. At 390 px the measured page width equals the viewport on the dashboard, the mail workspace and the application manager — no horizontal overflow.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eRail becomes an off-canvas drawer with a backdrop.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eTop bar simplifies; the wide search and quick menus are withdrawn and remain reachable.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eKPI grids step from four columns to two to one.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003ePanels stack; wide tables scroll inside their own container.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eTouch targets stay large enough to hit comfortably.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e18. Accessibility\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eText and interface contrast targeted at WCAG 2.1 AA in both light and dark modes.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eStatus is never conveyed by colour alone — an icon, a label or a weight change accompanies it.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eVisible focus rings on every interactive control; the theme never removes focus styling.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eCharts carry a role and an accessible name, and their data is also available as text or a table, so nothing is exclusive to a graphic.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eThe regional panel is a bar list precisely so it can be read by assistive technology.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eReduced-motion preference is honoured, and animations can be disabled outright.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e19. Performance\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eNo charting library, no CDN dependency, no client-side data fetching.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eOne dynamic stylesheet and one dynamic script, both cached; the cache is invalidated automatically on a version change so users get updates without a hard refresh.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eThe script carries a per-user figure, so it is served with a private cache directive and never sits in a shared cache.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eCharts are server-rendered SVG: no layout thrash, no rendering work on the client.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eBrand artwork is vector (SVG), a few hundred bytes, and scales to any density.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e20. Security\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eNo Dolibarr core file is modified. Only official mechanisms are used: module parts, hooks, a menu manager and standard pages.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eAuthentication is entirely native; no parallel authentication path exists.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eEvery page enforces Dolibarr permissions — the mail workspace requires agenda read rights and restricts a limited user to their own correspondence; the application manager is administrator-only.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eState-changing links carry Dolibarr CSRF tokens, and module enable\/disable is delegated to the core module manager.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eAll output is escaped; all query parameters are read through Dolibarr's filtered accessors and validated against whitelists.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eConfiguration values that reach a stylesheet are validated against a strict character whitelist, so a stored setting cannot close a CSS rule and inject arbitrary styling.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eNo secrets, credentials or third-party endpoints are embedded anywhere in the theme.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e21. Dolibarr Integration and Compatibility\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eDhonu integrates only through supported extension points: module parts for assets, a forced menu manager for the rail, documented hooks for page decoration, and ordinary module pages for its four workspaces.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eVerified on Dolibarr 17.0.3 with PHP 8.1; declared minimum Dolibarr 16.0, PHP 7.0.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eVerified alongside 93 modules on the test installation, native and third-party.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eMulti-entity aware: every query is scoped with Dolibarr's entity helper.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eMenus, permissions, hooks and third-party modules continue to work untouched.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eDisabling Dhonu clears only the settings that still point at Dhonu, so removing it can never break another theme that has since taken over the same shared constants.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e22. Technical Architecture\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eA single resolved design token set drives everything. The stylesheet, the scripts, the dashboard, the rail renderer and the configuration screen all read the same resolver, so they cannot drift apart.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eFolder structure of the package:\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003edhonu\/\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003ecore\/modules\/modDhonu.class.php\u003cspan style=\"mso-spacerun: yes;\"\u003e   \u003c\/span\u003emodule descriptor (activation, assets, hooks)\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003ecore\/dhonu_presets.php\u003cspan style=\"mso-spacerun: yes;\"\u003e            \u003c\/span\u003edesign tokens and settings resolver\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003ecore\/dhonu_dashdata.php\u003cspan style=\"mso-spacerun: yes;\"\u003e           \u003c\/span\u003edata layer (all SQL, documented mappings)\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003ecore\/menus\/standard\/\u003cspan style=\"mso-spacerun: yes;\"\u003e              \u003c\/span\u003erail renderer and forced menu manager\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003ecss\/dhonu.css.php\u003cspan style=\"mso-spacerun: yes;\"\u003e                 \u003c\/span\u003edynamic stylesheet\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003ejs\/dhonu.js.php\u003cspan style=\"mso-spacerun: yes;\"\u003e                   \u003c\/span\u003edynamic script\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003eindex.php\u003cspan style=\"mso-spacerun: yes;\"\u003e                         \u003c\/span\u003edashboard\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003eemail.php\u003cspan style=\"mso-spacerun: yes;\"\u003e                         \u003c\/span\u003email workspace\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003eapps.php\u003cspan style=\"mso-spacerun: yes;\"\u003e                          \u003c\/span\u003eapplication manager\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003esearch.php\u003cspan style=\"mso-spacerun: yes;\"\u003e                        \u003c\/span\u003eglobal search results\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003eadmin\/setup.php\u003cspan style=\"mso-spacerun: yes;\"\u003e                   \u003c\/span\u003econfiguration screen\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003eclass\/dhonu_demo.class.php\u003cspan style=\"mso-spacerun: yes;\"\u003e        \u003c\/span\u003edemonstration data generator\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003eimg\/\u003cspan style=\"mso-spacerun: yes;\"\u003e                              \u003c\/span\u003ebrand artwork (SVG)\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\" style=\"margin-bottom: 0cm;\"\u003e\u003cspan lang=\"EN-US\" style=\"font-size: 8.5pt; mso-bidi-font-size: 11.0pt; line-height: 115%; font-family: Consolas; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;\"\u003e\u003cspan style=\"mso-spacerun: yes;\"\u003e  \u003c\/span\u003elangs\/\u0026lt;7 locales\u0026gt;\/dhonu.lang\u003cspan style=\"mso-spacerun: yes;\"\u003e      \u003c\/span\u003etranslations\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e23. Installation\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eHome \u0026gt; Setup \u0026gt; Modules\/Applications \u0026gt; Deploy an external module, upload module_dhonu-1.0.zip, then enable 'Dhonu' in the module list. The theme applies immediately. Configure it from the module's cog icon or from the top bar. To remove it, disable the module; to uninstall, disable it and delete custom\/dhonu.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eUpgrading: deploy the newer package over the previous one and re-enable the module. Settings are preserved, and the asset cache is invalidated automatically so users receive the new stylesheet on an ordinary reload.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e24. Customisation and Translation\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eMost adjustments need no code: use the configuration screen. To go further, core\/dhonu_presets.php is the single source of truth for colours, radius, fonts and chrome variants; changing a token there repaints the whole interface consistently.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eAll user-visible strings are Dolibarr translation keys, prefixed to avoid collisions with other modules — an unprefixed generic key can otherwise be overwritten by another module's translation and silently display the wrong wording. Seven locales ship complete: English, French, Spanish, Italian, German, Dutch and Portuguese. To add one, copy a langs\/\u0026lt;locale\u0026gt;\/dhonu.lang file and translate the values.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e25. Demonstration Data\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eDhonu ships a demonstration data generator so a fresh installation shows a populated, coherent interface rather than empty panels: customers spread across several countries (so the regional panels have something to distribute), twelve months of invoices, orders and proposals, payments, and a two-directional mailbox. It runs only on an installation explicitly flagged as a demonstration platform, never on a production database.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e26. Verification Performed\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eThe following were executed against a Dolibarr 17.0.3 installation with 93 modules, on PHP 8.1, and are reported as performed:\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003ePHP syntax check on every shipped PHP file — no errors.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eModule activation with post-activation assertions on constants and the forced menu manager.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eHTTP smoke test over the Dhonu pages and the main native pages: 13\/13 pass, each asserted to be a real page (not the login form), free of fatal errors, with a non-empty title, a properly closed document, and no untranslated key leaking into the markup.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eTranslation completeness check across all seven locales — no missing key.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eRendered-screenshot review of every workspace in light and dark mode; layout geometry asserted numerically, not by node count.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eHorizontal-overflow measurement at 390 px on the dashboard, mail workspace and application manager — zero overflow on all three.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eField-alignment measurement on the sign-in screen.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eZIP structure verification: a single dhonu\/ root, no OS metadata, no cache files.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003ci style=\"mso-bidi-font-style: normal;\"\u003e\u003cspan lang=\"EN-US\"\u003eNot performed, and therefore not claimed: testing on Dolibarr 20 or 21 (the available environment runs 17.0.3); testing in Firefox, Safari or Edge (the automated browser available here is Chromium\/Chrome); testing on physical Android or iOS devices — mobile verification was done with emulated viewports at device pixel ratio 2. These should be repeated in the target environment before commercial release.\u003c\/span\u003e\u003c\/i\u003e\u003cspan lang=\"EN-US\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e27. Limitations\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eThe mail workspace reads what Dolibarr records. An installation that never sends mail through Dolibarr and runs no e-mail collector will show an empty inbox — correctly.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eSpam and Trash have no Dolibarr equivalent and are shown disabled rather than faked.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eThe application manager reflects module state in this Dolibarr; it does not test connectivity to any external service.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eThe regional panel is a ranked bar list, not a geographic map, for the reasons given in 5.5.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eGoal percentages need either configured targets or a credible year-ago baseline; otherwise the panel states that no target is set.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e28. Future Enhancements\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoListBulletCxSpFirst\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eOptional choropleth map as an add-on for installations that want one.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eUser-level dashboard composition on top of the existing widget zone.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpMiddle\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eAdditional palettes and a saved-preset import\/export exchange format.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoListBulletCxSpLast\" style=\"margin-left: 18.0pt; mso-add-space: auto; text-indent: -18.0pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt;\"\u003e\u003c!-- [if !supportLists]--\u003e\u003cspan lang=\"EN-US\" style=\"font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;\"\u003e\u003cspan style=\"mso-list: Ignore;\"\u003e·\u003cspan style=\"font: 7.0pt 'Times New Roman';\"\u003e       \u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c!--[endif]--\u003e\u003cspan dir=\"LTR\"\u003e\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003eRight-to-left layout validation for Arabic and Hebrew installations.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch1\u003e\u003cspan lang=\"EN-US\"\u003e29. Support and Maintenance\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eDhonu is published and maintained by DoliResources. Support requests, upgrade questions and customisation enquiries: https:\/\/www.doliresources.com\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"MsoNormal\"\u003e\u003cspan lang=\"EN-US\"\u003eCopyright © 2026 DoliResources. All rights reserved. The theme is distributed under GPL-3.0-or-later. All code and artwork in this package are original work owned by DoliResources; the reference designs were used solely as a visual brief and no third-party code, logo, photograph, illustration or icon set has been reused.\u003c\/span\u003e\u003c\/p\u003e","brand":"Dolibarr Resources","offers":[{"title":"Default Title","offer_id":53931317952830,"sku":null,"price":299.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0986\/4174\/0094\/files\/01_apps_light.png?v=1784544586","url":"https:\/\/doliresources.com\/products\/dhonu-premium-theme-for-dolibarr-erp-crm","provider":"DoliResources","version":"1.0","type":"link"}