From ad3e2246345a1d331bf1097eda9209d033839d20 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 29 Feb 2024 13:17:51 +0800 Subject: [PATCH 001/276] * Fix bug #46207. --- lib/zin/wg/password/js/v1.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/zin/wg/password/js/v1.js b/lib/zin/wg/password/js/v1.js index 0b986374f5..d892b9175e 100644 --- a/lib/zin/wg/password/js/v1.js +++ b/lib/zin/wg/password/js/v1.js @@ -1,4 +1,4 @@ -function checkPassword() +window.checkPassword = function () { const password = $(event.target).val(); const $strength = $(event.target).closest('.input-group').find('.' + strengthClass); @@ -12,7 +12,7 @@ function checkPassword() $strength.html(passwordStrength).removeClass('hidden'); } -function computePasswordStrength(password) +window.computePasswordStrength = function(password) { if(password.length == 0) return 0; From 476e4cea16616407b5b97a4161ccf2b059dd5c7d Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 29 Feb 2024 13:29:32 +0800 Subject: [PATCH 002/276] + Fix bug #21863, replace image url. --- module/action/control.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/action/control.php b/module/action/control.php index d1817156b8..978387bb90 100755 --- a/module/action/control.php +++ b/module/action/control.php @@ -335,6 +335,7 @@ class action extends control return $this->send(array('status' => 'success', 'closeModal' => true, 'callback' => array('name' => 'zui.HistoryPanel.update', 'params' => array('objectType' => $action->objectType, 'objectID' => $action->objectID)))); } + $action = $this->loadModel('file')->replaceImgURL($action, 'comment'); $this->view->title = $this->lang->action->editComment; $this->view->actionID = $actionID; $this->view->comment = $this->action->formatActionComment($action->comment); From 141c1ac38f96974746bd5501e6aa66b04e95e476 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 13:40:36 +0800 Subject: [PATCH 003/276] * Update downgrade version setting. --- ci.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci.json b/ci.json index 2a90cbcb8f..6a735b212e 100644 --- a/ci.json +++ b/ci.json @@ -15,6 +15,7 @@ "gitVersion": "master" }, "downgrade": { + "gitVersion": "release-20.0.stable", "gitRepo": "devops/zentaopms-downgrade" } }, @@ -44,7 +45,7 @@ } }, "notice": { - "users": "qishiyao,hufangzhou,zhujinyong", + "users": "qishiyao,hufangzhou,zhujinyong,caoyanyi", "groups": "38a4e39b-df5d-4606-a988-e22673bdc358", "groups2": "38a4e39b-df5d-4606-a988-e22673bdc358,6f5bb3f5-f4e3-4f67-963e-0cc9d59ad3c7" } From 470609629c5256a9800ed517c86b4d8a383e5c02 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 13:43:17 +0800 Subject: [PATCH 004/276] * Adjust delete files setting. --- module/upgrade/config.php | 122 +++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/module/upgrade/config.php b/module/upgrade/config.php index fb5e336dce..ea0dfe6bd8 100644 --- a/module/upgrade/config.php +++ b/module/upgrade/config.php @@ -939,67 +939,67 @@ $config->delete['18_9'][] = 'module/automation/lang/de.php'; $config->delete['18_9'][] = 'module/automation/lang/en.php'; $config->delete['18_9'][] = 'module/automation/view/browse.html.php'; -$config->delete['20.0.beta1'][] = 'extension/lite/kanban/ext/model/lite.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/my/ext/model/class/effort.class.php'; -$config->delete['20.0.beta1'][] = 'extension/max/my/ext/model/class/effort.class.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/todo/ext/control/batchcreate.php'; -$config->delete['20.0.beta1'][] = 'extension/max/todo/ext/control/batchcreate.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/bug/ext/control/export.php'; -$config->delete['20.0.beta1'][] = 'extension/max/bug/ext/control/export.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/story/ext/control/export.php'; -$config->delete['20.0.beta1'][] = 'extension/max/story/ext/control/export.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/view/calendarblock.html.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/view/calendarblock.html.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/view/calendarblock.html.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/view/calendarblock.html.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/config/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/config/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/lang/zh-cn/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/lang/zh-cn/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/lang/zh-tw/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/lang/zh-tw/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/lang/de/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/lang/de/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/lang/en/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/lang/en/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/lang/fr/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/lang/fr/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/lang/vi/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/lang/vi/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/model/class/calendar.class.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/model/class/calendar.class.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/block/ext/model/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/max/block/ext/model/calendar.php'; -$config->delete['20.0.beta1'][] = 'extension/max/admin/ext/config/repo.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/admin/ext/config/repo.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/common/view/flowchart.html.php'; -$config->delete['20.0.beta1'][] = 'extension/max/common/view/flowchart.html.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/workflow/css/flowchart.css'; -$config->delete['20.0.beta1'][] = 'extension/max/workflow/css/flowchart.css'; -$config->delete['20.0.beta1'][] = 'extension/biz/workflow/js/flowchart.js'; -$config->delete['20.0.beta1'][] = 'extension/max/workflow/js/flowchart.js'; -$config->delete['20.0.beta1'][] = 'extension/biz/workflow/view/flowchart.html.php'; -$config->delete['20.0.beta1'][] = 'extension/max/workflow/view/flowchart.html.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/my/ext/view/effort.calendar.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/max/my/ext/view/effort.calendar.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/task/ext/view/view.effort.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/max/task/ext/view/view.effort.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/todo/ext/view/batchcreate.calendar.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/max/todo/ext/view/batchcreate.calendar.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/doc/ext/view/view.effort.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/max/doc/ext/view/view.effort.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/execution/ext/view/effort.calendar.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/max/execution/ext/view/effort.calendar.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/execution/ext/view/featurebar.calendar.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/max/execution/ext/view/featurebar.calendar.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/effort/view/footer.html.php'; -$config->delete['20.0.beta1'][] = 'extension/max/effort/view/footer.html.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/effort/view/effortsforobject.html.php'; -$config->delete['20.0.beta1'][] = 'extension/max/effort/view/effortsforobject.html.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/user/ext/view/featurebar.calendar.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/max/user/ext/view/featurebar.calendar.html.hook.php'; -$config->delete['20.0.beta1'][] = 'extension/biz/bug/ext/view/import.html.php'; -$config->delete['20.0.beta1'][] = 'extension/max/bug/ext/view/import.html.php'; +$config->delete['20_0_beta1'][] = 'extension/lite/kanban/ext/model/lite.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/my/ext/model/class/effort.class.php'; +$config->delete['20_0_beta1'][] = 'extension/max/my/ext/model/class/effort.class.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/todo/ext/control/batchcreate.php'; +$config->delete['20_0_beta1'][] = 'extension/max/todo/ext/control/batchcreate.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/bug/ext/control/export.php'; +$config->delete['20_0_beta1'][] = 'extension/max/bug/ext/control/export.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/story/ext/control/export.php'; +$config->delete['20_0_beta1'][] = 'extension/max/story/ext/control/export.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/view/calendarblock.html.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/view/calendarblock.html.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/view/calendarblock.html.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/view/calendarblock.html.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/config/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/config/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/lang/zh-cn/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/lang/zh-cn/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/lang/zh-tw/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/lang/zh-tw/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/lang/de/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/lang/de/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/lang/en/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/lang/en/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/lang/fr/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/lang/fr/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/lang/vi/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/lang/vi/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/model/class/calendar.class.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/model/class/calendar.class.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/block/ext/model/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/max/block/ext/model/calendar.php'; +$config->delete['20_0_beta1'][] = 'extension/max/admin/ext/config/repo.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/admin/ext/config/repo.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/common/view/flowchart.html.php'; +$config->delete['20_0_beta1'][] = 'extension/max/common/view/flowchart.html.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/workflow/css/flowchart.css'; +$config->delete['20_0_beta1'][] = 'extension/max/workflow/css/flowchart.css'; +$config->delete['20_0_beta1'][] = 'extension/biz/workflow/js/flowchart.js'; +$config->delete['20_0_beta1'][] = 'extension/max/workflow/js/flowchart.js'; +$config->delete['20_0_beta1'][] = 'extension/biz/workflow/view/flowchart.html.php'; +$config->delete['20_0_beta1'][] = 'extension/max/workflow/view/flowchart.html.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/my/ext/view/effort.calendar.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/max/my/ext/view/effort.calendar.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/task/ext/view/view.effort.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/max/task/ext/view/view.effort.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/todo/ext/view/batchcreate.calendar.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/max/todo/ext/view/batchcreate.calendar.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/doc/ext/view/view.effort.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/max/doc/ext/view/view.effort.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/execution/ext/view/effort.calendar.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/max/execution/ext/view/effort.calendar.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/execution/ext/view/featurebar.calendar.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/max/execution/ext/view/featurebar.calendar.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/effort/view/footer.html.php'; +$config->delete['20_0_beta1'][] = 'extension/max/effort/view/footer.html.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/effort/view/effortsforobject.html.php'; +$config->delete['20_0_beta1'][] = 'extension/max/effort/view/effortsforobject.html.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/user/ext/view/featurebar.calendar.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/max/user/ext/view/featurebar.calendar.html.hook.php'; +$config->delete['20_0_beta1'][] = 'extension/biz/bug/ext/view/import.html.php'; +$config->delete['20_0_beta1'][] = 'extension/max/bug/ext/view/import.html.php'; $config->upgrade->openModules = array('action', 'admin', 'ai', 'aiapp', 'api', 'automation', 'backup', 'block', 'branch', 'budget', 'bug', 'build', 'caselib', 'chart', 'ci', 'client', 'common', 'company', 'compile', 'convert', 'cron', 'custom', 'datatable', 'dataview', 'dept', 'design', 'dev', 'dimension', 'doc', 'durationestimation', 'entry', 'execution', 'extension', 'file', 'git', 'gitlab', 'group', 'holiday', 'im', 'index', 'index.html', 'install', 'issue', 'jenkins', 'job', 'kanban', 'license', 'mail', 'message', 'metric', 'misc', 'mr', 'my', 'personnel', 'pipeline', 'product', 'productplan', 'productset', 'program', 'programplan', 'project', 'projectbuild', 'projectplan', 'projectrelease', 'projectstory', 'pivot', 'qa', 'release', 'repo', 'report', 'risk', 'score', 'screen', 'search', 'setting', 'sonarqube', 'sso', 'stage', 'stakeholder', 'story', 'subject', 'svn', 'task', 'testcase', 'testreport', 'testsuite', 'testtask', 'todo', 'tree', 'tutorial', 'upgrade', 'user', 'webhook', 'weekly', 'workestimation', 'gitea', 'gogs', 'transfer', 'zahost', 'zanode', 'editor', 'charter', 'roadmap', 'account', 'artifactrepo', 'cne', 'host', 'instance', 'ops', 'serverroom', 'space', 'store', 'system', 'solution'); From 235453967fe326d8f52f182380f4afbc7696485c Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 29 Feb 2024 13:44:21 +0800 Subject: [PATCH 005/276] * Replace `set::control(array('type' => 'xxx'))` with `set::control(array('control' => 'xxx'))`. --- module/artifactrepo/ui/create.html.php | 2 +- module/artifactrepo/ui/edit.html.php | 2 +- module/block/ui/systemmode.html.php | 2 +- module/bug/ui/batchedit.html.php | 6 +++--- module/caselib/ui/createcase.html.php | 4 ++-- module/caselib/ui/exporttemplate.html.php | 2 +- module/custom/ui/set.html.php | 18 +++++++++--------- module/doc/ui/create.html.php | 2 +- module/execution/ui/batchedit.html.php | 2 +- module/gitlab/ui/creategroup.html.php | 4 ++-- module/gitlab/ui/createuser.html.php | 6 +++--- module/gitlab/ui/editgroup.html.php | 4 ++-- module/gitlab/ui/edituser.html.php | 6 +++--- .../ui/ajaxgetmultiplemetricbox.html.php | 2 +- module/metric/ui/create.html.php | 6 +++--- module/metric/ui/edit.html.php | 6 +++--- module/metric/ui/previewmultiple.html.php | 2 +- module/metric/ui/previewsingle.html.php | 2 +- module/mr/ui/create.html.php | 6 +++--- module/mr/ui/edit.html.php | 6 +++--- module/product/ui/manageline.html.php | 8 ++++---- module/repo/ui/create.html.php | 4 ++-- module/repo/ui/createrepo.html.php | 4 ++-- module/repo/ui/edit.html.php | 4 ++-- module/stakeholder/ui/create.html.php | 6 +++--- module/stakeholder/ui/edit.html.php | 2 +- module/system/ui/editdomain.html.php | 2 +- module/task/ui/recordworkhour.html.php | 2 +- module/todo/ui/batchcreate.html.php | 6 +++--- module/todo/ui/edit.html.php | 2 +- module/user/ui/create.html.php | 2 +- module/user/ui/login.html.php | 4 ++-- 32 files changed, 68 insertions(+), 68 deletions(-) diff --git a/module/artifactrepo/ui/create.html.php b/module/artifactrepo/ui/create.html.php index d4d71e6b47..ecc67fe030 100644 --- a/module/artifactrepo/ui/create.html.php +++ b/module/artifactrepo/ui/create.html.php @@ -27,7 +27,7 @@ formPanel set::width('2/3'), set::name('products[]'), set::label($lang->repo->product), - set::control(array('type' => 'picker', 'multiple' => true)), + set::control(array('control' => 'picker', 'multiple' => true)), set::items($products) ), formGroup diff --git a/module/artifactrepo/ui/edit.html.php b/module/artifactrepo/ui/edit.html.php index 5520337ed1..a6e4ae1e95 100644 --- a/module/artifactrepo/ui/edit.html.php +++ b/module/artifactrepo/ui/edit.html.php @@ -27,7 +27,7 @@ formPanel set::width('2/3'), set::name('products[]'), set::label($lang->repo->product), - set::control(array('type' => 'picker', 'multiple' => true)), + set::control(array('control' => 'picker', 'multiple' => true)), set::items($products), set::value($artifactRepo->products) ), diff --git a/module/block/ui/systemmode.html.php b/module/block/ui/systemmode.html.php index 5097d5047b..1ea3a1fca2 100644 --- a/module/block/ui/systemmode.html.php +++ b/module/block/ui/systemmode.html.php @@ -54,7 +54,7 @@ function printSystemMode() set('class', 'hidden'), set::name('mode'), set::value('light'), - set::control(array('type' => 'input')) + set::control(array('control' => 'input')) ), formGroup ( diff --git a/module/bug/ui/batchedit.html.php b/module/bug/ui/batchedit.html.php index 848ee5393f..b2ca10013d 100644 --- a/module/bug/ui/batchedit.html.php +++ b/module/bug/ui/batchedit.html.php @@ -77,7 +77,7 @@ formBatchPanel set::name('severity'), set::label($lang->bug->severity), set::hidden(zget($visibleFields, 'severity', true, false)), - set::control(array('type' => 'severityPicker', 'required' => true)), + set::control(array('control' => 'severityPicker', 'required' => true)), set::items($lang->bug->severityList), set::width('80px'), set::required(isset($requiredFields['severity'])) @@ -88,7 +88,7 @@ formBatchPanel set::name('pri'), set::label($lang->bug->pri), set::hidden(zget($visibleFields, 'pri', true, false)), - set::control(array('type' => 'priPicker', 'required' => true)), + set::control(array('control' => 'priPicker', 'required' => true)), set::items($lang->bug->priList), set::width('80px'), set::required(isset($requiredFields['pri'])) @@ -130,7 +130,7 @@ formBatchPanel ( set::name('plan'), set::label($lang->bug->plan), - set::control(array('type' => 'picker', 'required' => false)), + set::control(array('control' => 'picker', 'required' => false)), set::items(array()), set::width('200px'), set::required(isset($requiredFields['plan'])), diff --git a/module/caselib/ui/createcase.html.php b/module/caselib/ui/createcase.html.php index 7ea7de077a..09db0b8bec 100644 --- a/module/caselib/ui/createcase.html.php +++ b/module/caselib/ui/createcase.html.php @@ -130,7 +130,7 @@ formPanel ( setClass('grow-0'), set::label($lang->testcase->pri), - set::control(array('type' => 'priPicker', 'items' => array_filter($lang->testcase->priList), 'required' => true)), + set::control(array('control' => 'priPicker', 'items' => array_filter($lang->testcase->priList), 'required' => true)), set::name('pri'), set::value('3') ) @@ -140,7 +140,7 @@ formPanel formGroup ( set::label($lang->testcase->precondition), - set::control(array('type' => 'textarea', 'rows' => 2)), + set::control(array('control' => 'textarea', 'rows' => 2)), set::name('precondition'), set::value($precondition) ) diff --git a/module/caselib/ui/exporttemplate.html.php b/module/caselib/ui/exporttemplate.html.php index acccb7efa6..42a7c93fac 100644 --- a/module/caselib/ui/exporttemplate.html.php +++ b/module/caselib/ui/exporttemplate.html.php @@ -29,7 +29,7 @@ formPanel set::name('encode'), set::required(true), set::value('gbk'), - set::control(array('type' => 'picker', 'items' => $config->charsets[$this->cookie->lang])) + set::control(array('control' => 'picker', 'items' => $config->charsets[$this->cookie->lang])) ), set::actions(array('submit')), set::submitBtnText($lang->export) diff --git a/module/custom/ui/set.html.php b/module/custom/ui/set.html.php index 5b8c1aae51..aa535b8437 100644 --- a/module/custom/ui/set.html.php +++ b/module/custom/ui/set.html.php @@ -67,7 +67,7 @@ elseif($module == 'story' && $field == 'reviewRules') set::label($lang->custom->superReviewers), set::name('superReviewers'), set::value($superReviewers), - set::control(array('type' => 'picker', 'multiple' => true)), + set::control(array('control' => 'picker', 'multiple' => true)), set::items($users) ); } @@ -125,7 +125,7 @@ elseif(($module == 'story' || $module == 'testcase') && $field == 'review') set::name('forceReview'), set::value($forceReview), set::items($users), - set::control(array('type' => 'picker', 'multiple' => true)) + set::control(array('control' => 'picker', 'multiple' => true)) ), formRow ( @@ -137,7 +137,7 @@ elseif(($module == 'story' || $module == 'testcase') && $field == 'review') set::name('forceReviewRoles'), set::value($forceReviewRoles), set::items($lang->user->roleList), - set::control(array('type' => 'picker', 'multiple' => true)) + set::control(array('control' => 'picker', 'multiple' => true)) ) ), formGroup @@ -147,7 +147,7 @@ elseif(($module == 'story' || $module == 'testcase') && $field == 'review') set::name('forceReviewDepts'), set::value($forceReviewDepts), set::items($depts), - set::control(array('type' => 'picker', 'multiple' => true)) + set::control(array('control' => 'picker', 'multiple' => true)) ) ); $formItems[] = div @@ -161,7 +161,7 @@ elseif(($module == 'story' || $module == 'testcase') && $field == 'review') set::name('forceNotReview'), set::value($forceNotReview), set::items($users), - set::control(array('type' => 'picker', 'multiple' => true)) + set::control(array('control' => 'picker', 'multiple' => true)) ), formRow ( @@ -173,7 +173,7 @@ elseif(($module == 'story' || $module == 'testcase') && $field == 'review') set::name('forceNotReviewRoles'), set::value($forceNotReviewRoles), set::items($lang->user->roleList), - set::control(array('type' => 'picker', 'multiple' => true)) + set::control(array('control' => 'picker', 'multiple' => true)) ) ), formGroup @@ -183,7 +183,7 @@ elseif(($module == 'story' || $module == 'testcase') && $field == 'review') set::name('forceNotReviewDepts'), set::value($forceNotReviewDepts), set::items($depts), - set::control(array('type' => 'picker', 'multiple' => true)) + set::control(array('control' => 'picker', 'multiple' => true)) ) ); } @@ -206,7 +206,7 @@ elseif(($module == 'story' || $module == 'testcase') && $field == 'review') set::name('forceNotReview'), set::value($forceNotReview), set::items($users), - set::control(array('type' => 'picker', 'multiple' => true)) + set::control(array('control' => 'picker', 'multiple' => true)) ), icon ( @@ -236,7 +236,7 @@ elseif(($module == 'story' || $module == 'testcase') && $field == 'review') set::name('forceReview'), set::value($forceReview), set::items($users), - set::control(array('type' => 'picker', 'multiple' => true)) + set::control(array('control' => 'picker', 'multiple' => true)) ), icon ( diff --git a/module/doc/ui/create.html.php b/module/doc/ui/create.html.php index 0fa486bd09..7095e5436e 100644 --- a/module/doc/ui/create.html.php +++ b/module/doc/ui/create.html.php @@ -142,7 +142,7 @@ else setClass('flex items-center'), set::label($lang->doc->title), set::name('showTitle'), - set::control(array('type' => 'input', 'className' => 'hidden')), + set::control(array('control' => 'input', 'className' => 'hidden')), span(setClass('showTitle')) ), $projectRow, diff --git a/module/execution/ui/batchedit.html.php b/module/execution/ui/batchedit.html.php index 2ef199ef31..60db5c7559 100644 --- a/module/execution/ui/batchedit.html.php +++ b/module/execution/ui/batchedit.html.php @@ -64,7 +64,7 @@ formBatchPanel ( set::name('type'), set::label($lang->execution->method), - set::control(array('type' => 'picker', 'required' => true)), + set::control(array('control' => 'picker', 'required' => true)), set::items($lang->execution->typeList), set::disabled(true), set::width('100px') diff --git a/module/gitlab/ui/creategroup.html.php b/module/gitlab/ui/creategroup.html.php index 2002369a94..0f7fdc4700 100644 --- a/module/gitlab/ui/creategroup.html.php +++ b/module/gitlab/ui/creategroup.html.php @@ -66,13 +66,13 @@ formPanel ( set::label($lang->gitlab->group->permission), set::name('request_access_enabled'), - set::control(array('type' => 'checkbox', 'value' => '1', 'text' => $lang->gitlab->group->requestAccessEnabledTip, 'checked' => true)) + set::control(array('control' => 'checkbox', 'value' => '1', 'text' => $lang->gitlab->group->requestAccessEnabledTip, 'checked' => true)) ), formGroup ( set::label($lang->gitlab->group->lfsEnabled), set::name('lfs_enabled'), - set::control(array('type' => 'checkbox', 'value' => '1' , 'text' => $lang->gitlab->group->lfsEnabledTip, 'checked' => true)) + set::control(array('control' => 'checkbox', 'value' => '1' , 'text' => $lang->gitlab->group->lfsEnabledTip, 'checked' => true)) ), formGroup ( diff --git a/module/gitlab/ui/createuser.html.php b/module/gitlab/ui/createuser.html.php index 4462cab1bf..1552144b6e 100644 --- a/module/gitlab/ui/createuser.html.php +++ b/module/gitlab/ui/createuser.html.php @@ -77,21 +77,21 @@ formPanel ( set::name('can_create_group'), set::label($lang->gitlab->user->canCreateGroup), - set::control(array('type' => 'checkbox', 'checked' => true)), + set::control(array('control' => 'checkbox', 'checked' => true)), set::value('1') ), formGroup ( set::name('external'), set::label($lang->gitlab->user->external), - set::control(array('type' => 'checkbox', 'text' => $lang->gitlab->user->externalTip)), + set::control(array('control' => 'checkbox', 'text' => $lang->gitlab->user->externalTip)), set::value('1') ), formGroup ( set::name('avatar'), set::label($lang->gitlab->user->avatar), - set::control(array('type' => 'file', 'class' => 'hidden', 'id' => 'files')), + set::control(array('control' => 'file', 'class' => 'hidden', 'id' => 'files')), h::div ( set::id('avatarUpload'), diff --git a/module/gitlab/ui/editgroup.html.php b/module/gitlab/ui/editgroup.html.php index 7d402bd882..2a19b081d3 100644 --- a/module/gitlab/ui/editgroup.html.php +++ b/module/gitlab/ui/editgroup.html.php @@ -78,13 +78,13 @@ formPanel ( set::label($lang->gitlab->group->permission), set::name('request_access_enabled'), - set::control(array('type' => 'checkbox', 'value' => '1', 'text' => $lang->gitlab->group->requestAccessEnabledTip, 'checked' => $group->request_access_enabled ? true : false)) + set::control(array('control' => 'checkbox', 'value' => '1', 'text' => $lang->gitlab->group->requestAccessEnabledTip, 'checked' => $group->request_access_enabled ? true : false)) ), formGroup ( set::label($lang->gitlab->group->lfsEnabled), set::name('lfs_enabled'), - set::control(array('type' => 'checkbox', 'value' => '1' , 'text' => $lang->gitlab->group->lfsEnabledTip, 'checked' => $group->lfs_enabled ? true : false)) + set::control(array('control' => 'checkbox', 'value' => '1' , 'text' => $lang->gitlab->group->lfsEnabledTip, 'checked' => $group->lfs_enabled ? true : false)) ), formGroup ( diff --git a/module/gitlab/ui/edituser.html.php b/module/gitlab/ui/edituser.html.php index bc659608fb..2aa8d3567b 100644 --- a/module/gitlab/ui/edituser.html.php +++ b/module/gitlab/ui/edituser.html.php @@ -83,21 +83,21 @@ formPanel ( set::name('can_create_group'), set::label($lang->gitlab->user->canCreateGroup), - set::control(array('type' => 'checkbox', 'checked' => $user->can_create_group ? true : false)), + set::control(array('control' => 'checkbox', 'checked' => $user->can_create_group ? true : false)), set::value('1') ), formGroup ( set::name('external'), set::label($lang->gitlab->user->external), - set::control(array('type' => 'checkbox', 'text' => $lang->gitlab->user->externalTip, 'checked' => $user->external ? true : false)), + set::control(array('control' => 'checkbox', 'text' => $lang->gitlab->user->externalTip, 'checked' => $user->external ? true : false)), set::value('1') ), formGroup ( set::name('avatar'), set::label($lang->gitlab->user->avatar), - set::control(array('type' => 'file', 'class' => 'hidden', 'id' => 'files')), + set::control(array('control' => 'file', 'class' => 'hidden', 'id' => 'files')), h::div ( set::id('avatarUpload'), diff --git a/module/metric/ui/ajaxgetmultiplemetricbox.html.php b/module/metric/ui/ajaxgetmultiplemetricbox.html.php index b8d153077c..9fe22476c9 100644 --- a/module/metric/ui/ajaxgetmultiplemetricbox.html.php +++ b/module/metric/ui/ajaxgetmultiplemetricbox.html.php @@ -26,7 +26,7 @@ $fnGenerateQueryForm = function() use($metricRecordType, $metric, $metricID, $da setClass('query-inline picker-nowrap w-40'), set::label($this->lang->metric->query->scope[$metric->scope]), set::name('scope_' . $metricID), - set::control(array('type' => 'picker', 'multiple' => true)), + set::control(array('control' => 'picker', 'multiple' => true)), set::items($objectPairs), set::placeholder($this->lang->metric->placeholder->{$metric->scope}) ); diff --git a/module/metric/ui/create.html.php b/module/metric/ui/create.html.php index 923e31c7af..63d0986c18 100644 --- a/module/metric/ui/create.html.php +++ b/module/metric/ui/create.html.php @@ -121,14 +121,14 @@ formPanel formGroup ( set::label($lang->metric->desc), - set::control(array('type' => 'textarea', 'rows' => 3)), + set::control(array('control' => 'textarea', 'rows' => 3)), set::name('desc'), set::placeholder($lang->metric->descTip) ), formGroup ( set::label($lang->metric->definition), - set::control(array('type' => 'textarea', 'rows' => 3)), + set::control(array('control' => 'textarea', 'rows' => 3)), set::name('definition'), set::placeholder($lang->metric->definitionTip) ), @@ -137,7 +137,7 @@ formPanel set::width('1/2'), set::name('afterCreate'), set::label($lang->metric->afterCreate), - set::control(array('type' => 'radioList', 'inline' => true)), + set::control(array('control' => 'radioList', 'inline' => true)), set::items($lang->metric->afterCreateList), set::value('implement') ), diff --git a/module/metric/ui/edit.html.php b/module/metric/ui/edit.html.php index cb08329311..0a10b40cf1 100644 --- a/module/metric/ui/edit.html.php +++ b/module/metric/ui/edit.html.php @@ -18,7 +18,7 @@ $afterEdit = $isDisabled ? '' : formGroup set::width('1/2'), set::name('afterEdit'), set::label($lang->metric->afterCreate), - set::control(array('type' => 'radioList', 'inline' => true)), + set::control(array('control' => 'radioList', 'inline' => true)), set::items($lang->metric->afterCreateList), set::value('implement') ); @@ -146,7 +146,7 @@ formPanel formGroup ( set::label($lang->metric->desc), - set::control(array('type' => 'textarea', 'rows' => 3)), + set::control(array('control' => 'textarea', 'rows' => 3)), set::name('desc'), set::value($metric->desc), set::placeholder($lang->metric->descTip) @@ -154,7 +154,7 @@ formPanel formGroup ( set::label($lang->metric->definition), - set::control(array('type' => 'textarea', 'rows' => 3)), + set::control(array('control' => 'textarea', 'rows' => 3)), set::name('definition'), set::value($metric->definition), set::placeholder($lang->metric->definitionTip), diff --git a/module/metric/ui/previewmultiple.html.php b/module/metric/ui/previewmultiple.html.php index 3764a08408..c41991080c 100644 --- a/module/metric/ui/previewmultiple.html.php +++ b/module/metric/ui/previewmultiple.html.php @@ -155,7 +155,7 @@ $fnGenerateQueryForm = function() use($metricRecordType, $current, $dateLabels, setClass('query-inline picker-nowrap w-40'), set::label($this->lang->metric->query->scope[$current->scope]), set::name('scope_' . $current->id), - set::control(array('type' => 'picker', 'multiple' => true)), + set::control(array('control' => 'picker', 'multiple' => true)), set::items($objectPairs), set::placeholder($this->lang->metric->placeholder->{$current->scope}) ); diff --git a/module/metric/ui/previewsingle.html.php b/module/metric/ui/previewsingle.html.php index dd28f42bcf..905eccffc2 100644 --- a/module/metric/ui/previewsingle.html.php +++ b/module/metric/ui/previewsingle.html.php @@ -150,7 +150,7 @@ $fnGenerateQueryForm = function() use($metricRecordType, $current, $dateLabels, ( setClass('query-inline picker-nowrap w-40'), set::name('scope'), - set::control(array('type' => 'picker', 'multiple' => true)), + set::control(array('control' => 'picker', 'multiple' => true)), set::items($objectPairs), set::placeholder($this->lang->metric->placeholder->{$current->scope}) ); diff --git a/module/mr/ui/create.html.php b/module/mr/ui/create.html.php index fc8cb79190..525ccd9f4d 100644 --- a/module/mr/ui/create.html.php +++ b/module/mr/ui/create.html.php @@ -120,19 +120,19 @@ formPanel set::label($lang->mr->submitType), set::name('needCI'), set::width('270px'), - set::control(array('type' => 'checkbox', 'text' => $lang->mr->needCI, 'value' => '1')), + set::control(array('control' => 'checkbox', 'text' => $lang->mr->needCI, 'value' => '1')), on::change('onNeedCiChange') ), formGroup ( set::name('removeSourceBranch'), set::width('150px'), - set::control(array('type' => 'checkbox', 'text' => $lang->mr->removeSourceBranch, 'value' => '1')) + set::control(array('control' => 'checkbox', 'text' => $lang->mr->removeSourceBranch, 'value' => '1')) ), formGroup ( set::name('squash'), - set::control(array('type' => 'checkbox', 'text' => $lang->mr->squash, 'value' => '1')) + set::control(array('control' => 'checkbox', 'text' => $lang->mr->squash, 'value' => '1')) ) ), formGroup diff --git a/module/mr/ui/edit.html.php b/module/mr/ui/edit.html.php index 04978c21f8..bce587a97d 100644 --- a/module/mr/ui/edit.html.php +++ b/module/mr/ui/edit.html.php @@ -93,20 +93,20 @@ formPanel set::label($lang->mr->submitType), set::name('needCI'), set::width('270px'), - set::control(array('type' => 'checkbox', 'text' => $lang->mr->needCI, 'value' => '1', 'checked' => $MR->needCI == '1')), + set::control(array('control' => 'checkbox', 'text' => $lang->mr->needCI, 'value' => '1', 'checked' => $MR->needCI == '1')), on::change('onNeedCiChange') ), formGroup ( set::name('removeSourceBranch'), set::width('150px'), - set::control(array('type' => 'checkbox', 'text' => $lang->mr->removeSourceBranch, 'value' => '1', 'checked' => $MR->canDeleteBranch && $MR->removeSourceBranch == '1')), + set::control(array('control' => 'checkbox', 'text' => $lang->mr->removeSourceBranch, 'value' => '1', 'checked' => $MR->canDeleteBranch && $MR->removeSourceBranch == '1')), set::disabled(!$MR->canDeleteBranch) ), formGroup ( set::name('squash'), - set::control(array('type' => 'checkbox', 'text' => $lang->mr->squash, 'value' => '1', 'checked' => $MR->squash == '1')) + set::control(array('control' => 'checkbox', 'text' => $lang->mr->squash, 'value' => '1', 'checked' => $MR->squash == '1')) ) ), formRow diff --git a/module/product/ui/manageline.html.php b/module/product/ui/manageline.html.php index 0d325621cc..8dc8b3e5ea 100644 --- a/module/product/ui/manageline.html.php +++ b/module/product/ui/manageline.html.php @@ -64,7 +64,7 @@ foreach($lines as $line) formGroup ( set::width(in_array($this->config->systemMode, array('ALM', 'PLM')) ? '1/2' : 'full'), - set::control(array('type' => 'text', 'id' => "modules_id{$line->id}")), + set::control(array('control' => 'text', 'id' => "modules_id{$line->id}")), set::name("modules[id$line->id]"), set::value($line->name) ), @@ -72,7 +72,7 @@ foreach($lines as $line) ( set::width('1/2'), set::className('ml-4'), - set::control(array('type' => 'picker', 'id' => "programs_id{$line->id}")), + set::control(array('control' => 'picker', 'id' => "programs_id{$line->id}")), set::name("programs[id$line->id]"), set::items($programs), set::value($line->root) @@ -93,14 +93,14 @@ for($i = 0; $i <= 5; $i ++) formGroup ( set::width(in_array($this->config->systemMode, array('ALM', 'PLM')) ? '1/2' : 'full'), - set::control(array('type' => 'text', 'id' => "modules_{$i}")), + set::control(array('control' => 'text', 'id' => "modules_{$i}")), set::name("modules[$i]") ), in_array($this->config->systemMode, array('ALM', 'PLM')) ? formGroup ( set::width('1/2'), set::className('ml-4'), - set::control(array('type' => 'picker', 'id' => "programs_{$i}")), + set::control(array('control' => 'picker', 'id' => "programs_{$i}")), set::name("programs[$i]"), set::items($programs) ) : null diff --git a/module/repo/ui/create.html.php b/module/repo/ui/create.html.php index 114346910c..da34b196f9 100644 --- a/module/repo/ui/create.html.php +++ b/module/repo/ui/create.html.php @@ -43,7 +43,7 @@ formPanel set::name("product[]"), set::label($lang->story->product), set::required(true), - set::control(array("type" => "picker","multiple" => true)), + set::control(array("control" => "picker","multiple" => true)), set::items($products), set::value(empty($objectID) ? '' : implode(',', array_keys($products))) ) @@ -53,7 +53,7 @@ formPanel set::width('1/2'), set::name("projects[]"), set::label($lang->repo->projects), - set::control(array("type" => "picker","multiple" => true)), + set::control(array("control" => "picker","multiple" => true)), set::items($projects), set::value(empty($relatedProjects) ? '' : implode(',', array_values($relatedProjects))) ), diff --git a/module/repo/ui/createrepo.html.php b/module/repo/ui/createrepo.html.php index 1b6c5e551d..34389fa505 100644 --- a/module/repo/ui/createrepo.html.php +++ b/module/repo/ui/createrepo.html.php @@ -43,7 +43,7 @@ formPanel set::name("product[]"), set::label($lang->story->product), set::required(true), - set::control(array("type" => "picker","multiple" => true)), + set::control(array("control" => "picker","multiple" => true)), set::items($products), set::value(empty($objectID) ? '' : implode(',', array_keys($products))) ) @@ -53,7 +53,7 @@ formPanel set::width('1/2'), set::name("projects[]"), set::label($lang->repo->projects), - set::control(array("type" => "picker","multiple" => true)), + set::control(array("control" => "picker","multiple" => true)), set::items($projects), set::value(empty($relatedProjects) ? '' : implode(',', array_values($relatedProjects))) ), diff --git a/module/repo/ui/edit.html.php b/module/repo/ui/edit.html.php index a350c3e43a..e93ee510d4 100644 --- a/module/repo/ui/edit.html.php +++ b/module/repo/ui/edit.html.php @@ -31,7 +31,7 @@ formPanel set::name("product[]"), set::label($lang->story->product), set::required(true), - set::control(array("type" => "picker","multiple" => true)), + set::control(array("control" => "picker","multiple" => true)), set::items($products), set::value($repo->product) ), @@ -40,7 +40,7 @@ formPanel set::width('1/2'), set::name("projects[]"), set::label($lang->repo->projects), - set::control(array("type" => "picker","multiple" => true)), + set::control(array("control" => "picker","multiple" => true)), set::items($relatedProjects), set::value($repo->projects) ), diff --git a/module/stakeholder/ui/create.html.php b/module/stakeholder/ui/create.html.php index 44613b5ae7..4e7c6beca7 100644 --- a/module/stakeholder/ui/create.html.php +++ b/module/stakeholder/ui/create.html.php @@ -163,17 +163,17 @@ formPanel formGroup ( set::label($lang->stakeholder->nature), - set::control(array('name' => 'nature', 'type' => 'editor')) + set::control(array('name' => 'nature', 'control' => 'editor')) ), formGroup ( set::label($lang->stakeholder->analysis), - set::control(array('name' => 'analysis', 'type' => 'editor')) + set::control(array('name' => 'analysis', 'control' => 'editor')) ), formGroup ( set::label($lang->stakeholder->strategy), - set::control(array('name' => 'strategy', 'type' => 'editor')) + set::control(array('name' => 'strategy', 'control' => 'editor')) ) ); diff --git a/module/stakeholder/ui/edit.html.php b/module/stakeholder/ui/edit.html.php index 60fe665e5f..fab3a3aab9 100644 --- a/module/stakeholder/ui/edit.html.php +++ b/module/stakeholder/ui/edit.html.php @@ -67,7 +67,7 @@ formPanel setClass('user-info'), set::label($lang->stakeholder->company), set::name('company'), - set::control(array('type' => 'picker', 'items' => $companys)), + set::control(array('control' => 'picker', 'items' => $companys)), set::value($stakeholder->company) ) : null, formGroup diff --git a/module/system/ui/editdomain.html.php b/module/system/ui/editdomain.html.php index c3024e5667..53835bfd30 100644 --- a/module/system/ui/editdomain.html.php +++ b/module/system/ui/editdomain.html.php @@ -53,7 +53,7 @@ formPanel ( set::label(''), set::name('https[]'), - set::control(array('type' => 'checkbox', 'text' => $lang->system->domain->uploadCert, 'value' => 'true')), + set::control(array('control' => 'checkbox', 'text' => $lang->system->domain->uploadCert, 'value' => 'true')), on::change('onHttpsChange') ), formGroup diff --git a/module/task/ui/recordworkhour.html.php b/module/task/ui/recordworkhour.html.php index 86cbef3040..2890b0fbc5 100644 --- a/module/task/ui/recordworkhour.html.php +++ b/module/task/ui/recordworkhour.html.php @@ -182,7 +182,7 @@ else set::name('date'), set::label($lang->task->date), set::width('120px'), - set::control(array('type' => 'date', 'id' => '$GID')), + set::control(array('control' => 'date', 'id' => '$GID')), set::value(helper::today()) ), formBatchItem diff --git a/module/todo/ui/batchcreate.html.php b/module/todo/ui/batchcreate.html.php index 82107009b0..bee084d187 100644 --- a/module/todo/ui/batchcreate.html.php +++ b/module/todo/ui/batchcreate.html.php @@ -127,7 +127,7 @@ formBatchPanel set::name('type'), set::label($lang->todo->type), set::width('120px'), - set::control(array('type' => 'picker', 'required' => true)), + set::control(array('control' => 'picker', 'required' => true)), set::value('custom'), set::items($lang->todo->typeList) ), @@ -151,7 +151,7 @@ formBatchPanel set::value($app->user->account), set::ditto(true), set::width('140px'), - set::control(array('type' => 'picker', 'required' => true)), + set::control(array('control' => 'picker', 'required' => true)), set::items($users) ), formBatchItem @@ -159,7 +159,7 @@ formBatchPanel set::name('pri'), set::label($lang->todo->pri), set::width('80px'), - set::control(array('type' => 'priPicker', 'required' => true)), + set::control(array('control' => 'priPicker', 'required' => true)), set::value('3'), set::items($lang->todo->priList) ), diff --git a/module/todo/ui/edit.html.php b/module/todo/ui/edit.html.php index 16198d1f9b..7ccb994c90 100644 --- a/module/todo/ui/edit.html.php +++ b/module/todo/ui/edit.html.php @@ -503,7 +503,7 @@ formPanel ( set::width('1/3'), set::label($lang->todo->status), - set::control(array('type' => 'picker', 'id' => 'status', 'name' => 'status', 'items' => $lang->todo->statusList, 'value' => $todo->status)) + set::control(array('control' => 'picker', 'id' => 'status', 'name' => 'status', 'items' => $lang->todo->statusList, 'value' => $todo->status)) ), formRow ( diff --git a/module/user/ui/create.html.php b/module/user/ui/create.html.php index 7cbeecab51..fc1b9b9dc1 100644 --- a/module/user/ui/create.html.php +++ b/module/user/ui/create.html.php @@ -169,7 +169,7 @@ formPanel ( set::width('1/2'), set::label($lang->user->group), - set::control(array("type" => "picker","multiple" => true)), + set::control(array("control" => "picker","multiple" => true)), set::name('group[]'), set::items($groupList), set::placeholder($lang->user->placeholder->group) diff --git a/module/user/ui/login.html.php b/module/user/ui/login.html.php index c9cea2f447..79abe20a6d 100644 --- a/module/user/ui/login.html.php +++ b/module/user/ui/login.html.php @@ -122,7 +122,7 @@ div ( set::width('full'), set::label($lang->user->account), - set::control(array('type' => 'input', 'name' => 'account', 'id' => 'account')) + set::control(array('control' => 'input', 'name' => 'account', 'id' => 'account')) ), formGroup ( @@ -148,7 +148,7 @@ div ( setID('loginOptions'), set::width('full'), - set::control(array('type' => 'checkList', 'items' => $lang->user->keepLogin, 'name' => 'keepLogin', 'value' => $keepLogin)), + set::control(array('control' => 'checkList', 'items' => $lang->user->keepLogin, 'name' => 'keepLogin', 'value' => $keepLogin)), a( set('href', $resetLink), set('class', 'resetPassword'), From 5c31ced93a31298ed43e05f4956f9020569b8c07 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 29 Feb 2024 13:54:48 +0800 Subject: [PATCH 006/276] * Replace `control(array('type' => 'xxx'))` to `control(array('control' => 'xxx'))`. --- module/bug/ui/batchcreate.html.php | 4 ++-- module/product/ui/batchedit.html.php | 2 +- module/product/ui/common.field.php | 4 ++-- module/repo/ui/import.html.php | 4 ++-- module/story/config/form.php | 6 +++--- module/task/ui/create.field.php | 4 ++-- module/testcase/config/table.php | 4 ++-- module/testcase/ui/batchcreate.html.php | 4 ++-- module/testcase/ui/batchedit.html.php | 10 +++++----- module/testcase/ui/create.field.php | 2 +- module/user/config/form.php | 4 ++-- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/module/bug/ui/batchcreate.html.php b/module/bug/ui/batchcreate.html.php index b09a2e0d07..ef42d4223a 100644 --- a/module/bug/ui/batchcreate.html.php +++ b/module/bug/ui/batchcreate.html.php @@ -83,10 +83,10 @@ $items[] = array('name' => 'steps', 'label' => $lang->bug->steps, 'width' => '24 $items[] = array('name' => 'type', 'label' => $lang->typeAB, 'control' => 'picker', 'items' => $lang->bug->typeList, 'value' => '', 'width' => '160px', 'required' => isset($requiredFields['type']), 'ditto' => true); /* Field of pri. */ -$items[] = array('name' => 'pri', 'label' => $lang->bug->pri, 'control' => array('type' => 'priPicker', 'required' => true), 'items' => $lang->bug->priList, 'value' => 3, 'width' => '100px', 'required' => isset($requiredFields['pri']), 'ditto' => true); +$items[] = array('name' => 'pri', 'label' => $lang->bug->pri, 'control' => array('control' => 'priPicker', 'required' => true), 'items' => $lang->bug->priList, 'value' => 3, 'width' => '100px', 'required' => isset($requiredFields['pri']), 'ditto' => true); /* Field of severity. */ -$items[] = array('name' => 'severity', 'label' => $lang->bug->severity, 'control' => array('type' => 'severityPicker', 'required' => true), 'items' => $lang->bug->severityList, 'value' => 3, 'width' => '80px', 'required' => isset($requiredFields['severity'])); +$items[] = array('name' => 'severity', 'label' => $lang->bug->severity, 'control' => array('control' => 'severityPicker', 'required' => true), 'items' => $lang->bug->severityList, 'value' => 3, 'width' => '80px', 'required' => isset($requiredFields['severity'])); /* Field of os. */ $items[] = array('name' => 'os', 'label' => $lang->bug->os, 'control' => 'picker', 'items' => $lang->bug->osList, 'width' => '200px', 'multiple' => true, 'required' => isset($requiredFields['os'])); diff --git a/module/product/ui/batchedit.html.php b/module/product/ui/batchedit.html.php index 1241b5831c..8c84337a27 100644 --- a/module/product/ui/batchedit.html.php +++ b/module/product/ui/batchedit.html.php @@ -19,7 +19,7 @@ foreach($fields as $fieldName => $field) $items[$fieldName] = array('name' => $fieldName, 'label' => $field['title'], 'control' => $field['control'], 'width' => $field['width'], 'required' => $field['required'], 'items' => zget($field, 'options', array())); if($items[$fieldName]['control'] == 'select') $items[$fieldName]['control'] = 'picker'; } -$items['acl']['control'] = array('type' => $items['acl']['control'], 'inline' => true); +$items['acl']['control'] = array('control' => $items['acl']['control'], 'inline' => true); $extendFields = $this->product->getFlowExtendFields(); foreach($extendFields as $extendField) diff --git a/module/product/ui/common.field.php b/module/product/ui/common.field.php index d436f09f3b..496d53d044 100644 --- a/module/product/ui/common.field.php +++ b/module/product/ui/common.field.php @@ -21,7 +21,7 @@ if($config->systemMode != 'light') $fields->field('name')->wrapBefore()->required()->control('input'); $fields->field('type') - ->control(array('type' => 'picker', 'required' => true)) + ->control(array('control' => 'picker', 'required' => true)) ->items(data('fields.type.options')) ->value(data('fields.type.default')); @@ -55,4 +55,4 @@ $fields->field('desc') $fields->field('acl') ->width('full') - ->control(array('type' => 'aclBox', 'aclItems' => data('fields.acl.options'), 'aclValue' => data('fields.acl.default'),'whitelistLabel' => $lang->product->whitelist, 'aclValue' => data('fields.acl.default'), 'userValue' => data('fields.whitelist.default'))); + ->control(array('control' => 'aclBox', 'aclItems' => data('fields.acl.options'), 'aclValue' => data('fields.acl.default'),'whitelistLabel' => $lang->product->whitelist, 'aclValue' => data('fields.acl.default'), 'userValue' => data('fields.whitelist.default'))); diff --git a/module/repo/ui/import.html.php b/module/repo/ui/import.html.php index c528b95278..0b6962fac6 100644 --- a/module/repo/ui/import.html.php +++ b/module/repo/ui/import.html.php @@ -15,8 +15,8 @@ $items[] = array('name' => 'no', 'label' => $lang->user->abbr->id, 'control' => $items[] = array('name' => 'serviceProject', 'label' => '', 'hidden' => true); $items[] = array('name' => 'name_with_namespace', 'label' => $lang->repo->repo, 'control' => 'static', 'width' => '264px'); $items[] = array('name' => 'name', 'label' => $lang->repo->importName); -$items[] = array('name' => 'product', 'label' => $lang->repo->product, 'control' => array('type' => 'picker', 'multiple' => true), 'items' => $products); -$items[] = array('name' => 'projects', 'label' => $lang->repo->projects, 'control' => array('type' => 'picker', 'multiple' => true), 'items' => $projects); +$items[] = array('name' => 'product', 'label' => $lang->repo->product, 'control' => array('control' => 'picker', 'multiple' => true), 'items' => $products); +$items[] = array('name' => 'projects', 'label' => $lang->repo->projects, 'control' => array('control' => 'picker', 'multiple' => true), 'items' => $projects); $no = 1; foreach($repoList as $repo) diff --git a/module/story/config/form.php b/module/story/config/form.php index e2a98cecf2..c4c88f77dd 100644 --- a/module/story/config/form.php +++ b/module/story/config/form.php @@ -90,13 +90,13 @@ $config->story->form->batchCreate['mailto'] = array('ditto' => false, 'type' $config->story->form->batchEdit = array(); $config->story->form->batchEdit['branch'] = array('type' => 'int', 'width' => '200px', 'control' => 'picker', 'required' => false, 'default' => 0, 'options' => array()); -$config->story->form->batchEdit['module'] = array('type' => 'int', 'width' => '200px', 'control' => array('type' => 'picker', 'required' => true), 'required' => false, 'default' => 0, 'options' => array()); +$config->story->form->batchEdit['module'] = array('type' => 'int', 'width' => '200px', 'control' => array('control' => 'picker', 'required' => true), 'required' => false, 'default' => 0, 'options' => array()); $config->story->form->batchEdit['plan'] = array('type' => 'int', 'width' => '200px', 'control' => 'picker', 'required' => false, 'default' => 0, 'options' => array()); -$config->story->form->batchEdit['title'] = array('type' => 'string', 'width' => '240px', 'control' => array('type' => 'colorInput', 'inputClass' => 'filter-none'), 'required' => true, 'filter' => 'trim', 'base' => true); +$config->story->form->batchEdit['title'] = array('type' => 'string', 'width' => '240px', 'control' => array('control' => 'colorInput', 'inputClass' => 'filter-none'), 'required' => true, 'filter' => 'trim', 'base' => true); $config->story->form->batchEdit['color'] = array('type' => 'string', 'control' => 'color', 'required' => false, 'default' => '', 'filter' => 'trim'); $config->story->form->batchEdit['estimate'] = array('type' => 'float', 'width' => '76px', 'control' => 'text', 'required' => false, 'default' => '0'); $config->story->form->batchEdit['category'] = array('type' => 'string', 'width' => '160px', 'control' => 'picker', 'required' => false, 'default' => 'feature', 'options' => array_filter($lang->story->categoryList)); -$config->story->form->batchEdit['pri'] = array('type' => 'string', 'width' => '92px', 'control' => array('type' => 'picker', 'required' => true), 'required' => false, 'default' => $config->story->defaultPriority, 'options' => array_filter($lang->story->priList)); +$config->story->form->batchEdit['pri'] = array('type' => 'string', 'width' => '92px', 'control' => array('control' => 'picker', 'required' => true), 'required' => false, 'default' => $config->story->defaultPriority, 'options' => array_filter($lang->story->priList)); $config->story->form->batchEdit['assignedTo'] = array('type' => 'string', 'width' => '136px', 'control' => 'picker', 'required' => false, 'default' => '', 'options' => 'users'); $config->story->form->batchEdit['source'] = array('type' => 'string', 'width' => '160px', 'control' => 'picker', 'required' => false, 'default' => '', 'options' => array_filter($lang->story->sourceList)); $config->story->form->batchEdit['sourceNote'] = array('type' => 'string', 'width' => '200px', 'control' => 'text', 'required' => false, 'default' => '', 'filter' => 'trim'); diff --git a/module/task/ui/create.field.php b/module/task/ui/create.field.php index e9bbdc34be..bd1b79cac6 100644 --- a/module/task/ui/create.field.php +++ b/module/task/ui/create.field.php @@ -7,7 +7,7 @@ $fields = defineFieldList('task.create', 'task'); /* Set module field. */ $fields->field('module') ->checkbox(array('text' => $lang->task->allModule, 'name' => 'isShowAllModule', 'checked' => data('showAllModule'))) - ->control(array('type' => 'picker', 'required' => true)) + ->control(array('control' => 'picker', 'required' => true)) ->items(data('modulePairs')) ->value(data('task.module')); @@ -182,7 +182,7 @@ if(!isAjaxRequest('modal')) $fields->field('after') ->label($lang->task->afterSubmit) ->width('full') - ->control(array('type' => 'radioList', 'inline' => true)) + ->control(array('control' => 'radioList', 'inline' => true)) ->value(data('task.id') ? 'continueAdding' : 'toTaskList') ->items(empty(data('features.story')) ? array('toTaskList' => $lang->task->afterChoices['toTaskList']) : $config->task->afterOptions); } diff --git a/module/testcase/config/table.php b/module/testcase/config/table.php index 1cf6e1e9a4..f25c57ca19 100644 --- a/module/testcase/config/table.php +++ b/module/testcase/config/table.php @@ -265,7 +265,7 @@ $config->testcase->importfromlib->dtable->fieldList['id']['fixed'] = false; $config->testcase->importfromlib->dtable->fieldList['branch']['name'] = 'branch'; $config->testcase->importfromlib->dtable->fieldList['branch']['title'] = $lang->testcase->branch; $config->testcase->importfromlib->dtable->fieldList['branch']['type'] = 'control'; -$config->testcase->importfromlib->dtable->fieldList['branch']['control'] = array('type' => 'picker', 'props' => array('required' => true)); +$config->testcase->importfromlib->dtable->fieldList['branch']['control'] = array('control' => 'picker', 'props' => array('required' => true)); $config->testcase->importfromlib->dtable->fieldList['branch']['width'] = '200px'; $config->testcase->importfromlib->dtable->fieldList['pri']['name'] = 'pri'; @@ -286,7 +286,7 @@ $config->testcase->importfromlib->dtable->fieldList['fromModule']['type'] = 'ca $config->testcase->importfromlib->dtable->fieldList['module']['name'] = 'module'; $config->testcase->importfromlib->dtable->fieldList['module']['title'] = $lang->testcase->module; $config->testcase->importfromlib->dtable->fieldList['module']['type'] = 'control'; -$config->testcase->importfromlib->dtable->fieldList['module']['control'] = array('type' => 'picker', 'props' => "RAWJSRAWJS"); +$config->testcase->importfromlib->dtable->fieldList['module']['control'] = array('control' => 'picker', 'props' => "RAWJSRAWJS"); $config->testcase->importfromlib->dtable->fieldList['module']['width'] = '200px'; $config->testcase->importfromlib->dtable->fieldList['type']['name'] = 'type'; diff --git a/module/testcase/ui/batchcreate.html.php b/module/testcase/ui/batchcreate.html.php index 455d095edf..97f1d049bb 100644 --- a/module/testcase/ui/batchcreate.html.php +++ b/module/testcase/ui/batchcreate.html.php @@ -63,7 +63,7 @@ $items[] = array 'name' => 'module', 'label' => $lang->testcase->module, 'hidden' => zget($visibleFields, 'module', true, false), - 'control' => array('type' => 'picker', 'required' => true), + 'control' => array('control' => 'picker', 'required' => true), 'items' => $moduleOptionMenu, 'value' => $currentModuleID, 'width' => '200px', @@ -77,7 +77,7 @@ $items[] = array 'name' => 'scene', 'label' => $lang->testcase->scene, 'hidden' => zget($visibleFields, 'scene', true, false), - 'control' => array('type' => 'picker', 'required' => true), + 'control' => array('control' => 'picker', 'required' => true), 'items' => $sceneOptionMenu, 'value' => $currentSceneID, 'width' => '200px', diff --git a/module/testcase/ui/batchedit.html.php b/module/testcase/ui/batchedit.html.php index 54e6c352ce..0dfba1eedc 100644 --- a/module/testcase/ui/batchedit.html.php +++ b/module/testcase/ui/batchedit.html.php @@ -65,7 +65,7 @@ else 'name' => 'pri', 'label' => $lang->priAB, 'width' => '100px', - 'control' => array('type' => 'priPicker', 'required' => true), + 'control' => array('control' => 'priPicker', 'required' => true), 'items' => $lang->testcase->priList, 'ditto' => true, 'hidden' => !isset($visibleFields['pri']), @@ -77,7 +77,7 @@ else 'name' => 'status', 'label' => $lang->statusAB, 'width' => '120px', - 'control' => array('type' => 'picker', 'required' => true), + 'control' => array('control' => 'picker', 'required' => true), 'items' => $lang->testcase->statusList, 'hidden' => !isset($visibleFields['status']), 'required' => isset($requiredFields['status']) @@ -96,7 +96,7 @@ else 'name' => 'module', 'label' => $lang->testcase->module, 'width' => '180px', - 'control' => array('type' => 'picker', 'required' => true), + 'control' => array('control' => 'picker', 'required' => true), 'items' => array(), 'hidden' => !isset($visibleFields['module']), 'required' => isset($requiredFields['module']) @@ -106,7 +106,7 @@ else 'name' => 'scene', 'label' => $lang->testcase->scene, 'width' => '180px', - 'control' => array('type' => 'picker', 'required' => true), + 'control' => array('control' => 'picker', 'required' => true), 'items' => array(), 'hidden' => ($isLibCase || !isset($visibleFields['scene'])), 'required' => isset($requiredFields['scene']) @@ -136,7 +136,7 @@ else 'name' => 'type', 'label' => $lang->testcase->type, 'width' => '140px', - 'control' => array('type' => 'picker', 'required' => true), + 'control' => array('control' => 'picker', 'required' => true), 'items' => $lang->testcase->typeList, 'ditto' => true, 'required' => isset($requiredFields['type']), diff --git a/module/testcase/ui/create.field.php b/module/testcase/ui/create.field.php index 8a9d133ed9..4784be5c81 100644 --- a/module/testcase/ui/create.field.php +++ b/module/testcase/ui/create.field.php @@ -29,7 +29,7 @@ $fields->field('story') ->itemBegin()->control('btn', array('url' => helper::createLink('story', 'view', 'storyID=' . data('case.story')), 'data-toggle' => 'modal', 'data-size' => 'lg'))->className('hidden', empty(data('case.story')))->icon('eye text-primary')->hint($lang->preview)->id('preview')->itemEnd(); $fields->field('scene') - ->control(array('type' => 'picker', 'required' => true)) + ->control(array('control' => 'picker', 'required' => true)) ->items(data('sceneOptionMenu')) ->value(data('currentSceneID')); diff --git a/module/user/config/form.php b/module/user/config/form.php index c4bcca43af..1a0e2b45fa 100644 --- a/module/user/config/form.php +++ b/module/user/config/form.php @@ -81,14 +81,14 @@ $config->user->form->edit['passwordLength'] = array('required' => false, 'type $config->user->form->edit['passwordStrength'] = array('required' => false, 'type' => 'int', 'default' => 0); $config->user->form->batchEdit = array(); -$config->user->form->batchEdit['dept'] = array('required' => false, 'type' => 'int', 'width' => '200px', 'name' => 'dept', 'label' => $lang->user->dept, 'control' => array('type' => 'picker', 'required' => true), 'default' => 0, 'ditto' => true); +$config->user->form->batchEdit['dept'] = array('required' => false, 'type' => 'int', 'width' => '200px', 'name' => 'dept', 'label' => $lang->user->dept, 'control' => array('control' => 'picker', 'required' => true), 'default' => 0, 'ditto' => true); $config->user->form->batchEdit['company'] = array('required' => false, 'type' => 'int', 'width' => '200px', 'name' => 'company', 'label' => $lang->user->company, 'control' => 'picker', 'default' => 0); $config->user->form->batchEdit['account'] = array('required' => true, 'type' => 'string', 'width' => '140px', 'name' => 'account', 'label' => $lang->user->account, 'control' => 'text', 'default' => '', 'readonly' => true, 'base' => true); $config->user->form->batchEdit['realname'] = array('required' => true, 'type' => 'string', 'width' => '96px', 'name' => 'realname', 'label' => $lang->user->realname, 'control' => 'text', 'default' => ''); $config->user->form->batchEdit['visions'] = array('required' => true, 'type' => 'array', 'width' => '240px', 'name' => 'visions', 'label' => $lang->user->visions, 'control' => 'picker', 'default' => [], 'multiple' => true, 'filter' => 'join'); $config->user->form->batchEdit['role'] = array('required' => false, 'type' => 'string', 'width' => '160px', 'name' => 'role', 'label' => $lang->user->role, 'control' => 'picker', 'default' => '', 'ditto' => true, 'items' => $lang->user->roleList); $config->user->form->batchEdit['email'] = array('required' => false, 'type' => 'string', 'width' => '160px', 'name' => 'email', 'label' => $lang->user->email, 'control' => 'text', 'default' => ''); -$config->user->form->batchEdit['gender'] = array('required' => false, 'type' => 'string', 'width' => '100px', 'name' => 'gender', 'label' => $lang->user->gender, 'control' => array('type' => 'radioList', 'inline' => true), 'default' => 'm', 'items' => $lang->user->genderList); +$config->user->form->batchEdit['gender'] = array('required' => false, 'type' => 'string', 'width' => '100px', 'name' => 'gender', 'label' => $lang->user->gender, 'control' => array('control' => 'radioList', 'inline' => true), 'default' => 'm', 'items' => $lang->user->genderList); $config->user->form->batchEdit['commiter'] = array('required' => false, 'type' => 'string', 'width' => '120px', 'name' => 'commiter', 'label' => $lang->user->commiter, 'control' => 'text', 'default' => ''); $config->user->form->batchEdit['join'] = array('required' => false, 'type' => 'date', 'width' => '120px', 'name' => 'join', 'label' => $lang->user->join, 'control' => 'date', 'default' => ''); $config->user->form->batchEdit['mobile'] = array('required' => false, 'type' => 'string', 'width' => '120px', 'name' => 'mobile', 'label' => $lang->user->mobile, 'control' => 'text', 'default' => ''); From c25150bdf3e9a17accc5957e201d8e88039e67aa Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 15:15:57 +0800 Subject: [PATCH 007/276] * Adjust language check script. --- misc/check.php | 263 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 179 insertions(+), 84 deletions(-) diff --git a/misc/check.php b/misc/check.php index 73f410b449..b4f6e9e0d5 100755 --- a/misc/check.php +++ b/misc/check.php @@ -17,68 +17,159 @@ $config->systemScore = true; /* set module root path and included the resource of group module. */ $lang = new stdclass(); -$lang->index = new stdclass(); -$lang->my = new stdclass(); -$lang->personnel = new stdclass(); -$lang->program = new stdclass(); -$lang->project = new stdclass(); +$lang->common = new stdclass(); +$lang->index = new stdclass(); +$lang->my = new stdclass(); +$lang->todo = new stdclass(); +$lang->block = new stdclass(); +$lang->program = new stdclass(); +$lang->programplan = new stdclass(); +$lang->product = new stdclass(); +$lang->project = new stdclass(); +$lang->design = new stdclass(); +$lang->stage = new stdclass(); +$lang->scrum = new stdclass(); +$lang->waterfall = new stdclass(); +$lang->execution = new stdclass(); +$lang->kanban = new stdclass(); +$lang->story = new stdclass(); +$lang->requirement = new stdclass(); +$lang->release = new stdclass(); +$lang->branch = new stdclass(); +$lang->productplan = new stdclass(); +$lang->review = new stdclass(); +$lang->milestone = new stdclass(); +$lang->qa = new stdclass(); +$lang->doc = new stdclass(); +$lang->system = new stdclass(); +$lang->testcase = new stdclass(); +$lang->testtask = new stdclass(); +$lang->testreport = new stdclass(); +$lang->score = new stdclass(); +$lang->auditplan = new stdclass(); +$lang->cm = new stdclass(); +$lang->nc = new stdclass(); +$lang->pssp = new stdclass(); +$lang->stakeholder = new stdclass(); +$lang->task = new stdclass(); +$lang->build = new stdclass(); +$lang->bug = new stdclass(); +$lang->company = new stdclass(); +$lang->dept = new stdclass(); +$lang->group = new stdclass(); +$lang->user = new stdclass(); +$lang->bi = new stdclass(); +$lang->screen = new stdclass(); +$lang->pivot = new stdclass(); +$lang->chart = new stdclass(); +$lang->report = new stdclass(); +$lang->repo = new stdclass(); +$lang->jenkins = new stdclass(); +$lang->gitlab = new stdclass(); +$lang->gitea = new stdclass(); +$lang->gogs = new stdclass(); +$lang->mr = new stdclass(); +$lang->compile = new stdclass(); +$lang->job = new stdclass(); +$lang->svn = new stdclass(); +$lang->git = new stdclass(); +$lang->subject = new stdclass(); +$lang->admin = new stdclass(); +$lang->convert = new stdclass(); +$lang->upgrade = new stdclass(); +$lang->action = new stdclass(); +$lang->backup = new stdclass(); +$lang->extension = new stdclass(); +$lang->custom = new stdclass(); +$lang->mail = new stdclass(); +$lang->cron = new stdclass(); +$lang->dev = new stdclass(); +$lang->editor = new stdclass(); +$lang->entry = new stdclass(); +$lang->webhook = new stdclass(); +$lang->message = new stdclass(); +$lang->search = new stdclass(); +$lang->devops = new stdclass(); +$lang->team = new stdclass(); +$lang->automation = new stdclass(); +$lang->personnel = new stdclass(); +$lang->testsuite = new stdclass(); +$lang->caselib = new stdclass(); +$lang->ci = new stdclass(); +$lang->datatable = new stdclass(); +$lang->tree = new stdclass(); +$lang->api = new stdclass(); +$lang->file = new stdclass(); +$lang->misc = new stdclass(); +$lang->acl = new stdclass(); +$lang->curd = new stdclass(); +$lang->sonarqube = new stdclass(); +$lang->app = new stdclass(); +$lang->host = new stdclass(); +$lang->zahost = new stdclass(); +$lang->zanode = new stdclass(); +$lang->holiday = new stdclass(); +$lang->contact = new stdclass(); +$lang->dimension = new stdclass(); +$lang->space = new stdclass(); +$lang->store = new stdclass(); +$lang->instance = new stdclass(); +$lang->CNE = new stdclass(); +$lang->account = new stdclass(); +$lang->ops = new stdclass(); +$lang->domain = new stdclass(); +$lang->service = new stdclass(); +$lang->deploy = new stdclass(); +$lang->metric = new stdclass(); +$lang->ai = new stdclass(); +$lang->aiapp = new stdclass(); +$lang->serverroom = new stdclass(); +$lang->programstakeholder = new stdclass(); +$lang->researchplan = new stdclass(); +$lang->workestimation = new stdclass(); +$lang->gapanalysis = new stdclass(); +$lang->executionview = new stdclass(); +$lang->managespace = new stdclass(); +$lang->systemteam = new stdclass(); +$lang->systemschedule = new stdclass(); +$lang->systemeffort = new stdclass(); +$lang->systemdynamic = new stdclass(); +$lang->systemcompany = new stdclass(); +$lang->pipeline = new stdclass(); +$lang->devopssetting = new stdclass(); +$lang->featureswitch = new stdclass(); +$lang->importdata = new stdclass(); +$lang->systemsetting = new stdclass(); +$lang->staffmanage = new stdclass(); +$lang->modelconfig = new stdclass(); +$lang->featureconfig = new stdclass(); +$lang->doctemplate = new stdclass(); +$lang->notifysetting = new stdclass(); +$lang->bidesign = new stdclass(); +$lang->personalsettings = new stdclass(); +$lang->projectsettings = new stdclass(); +$lang->dataaccess = new stdclass(); +$lang->executiongantt = new stdclass(); +$lang->executionkanban = new stdclass(); +$lang->executionburn = new stdclass(); +$lang->executioncfd = new stdclass(); +$lang->executionstory = new stdclass(); +$lang->executionqa = new stdclass(); +$lang->executionsettings = new stdclass(); +$lang->generalcomment = new stdclass(); +$lang->generalping = new stdclass(); +$lang->generaltemplate = new stdclass(); +$lang->generaleffort = new stdclass(); +$lang->productsettings = new stdclass(); +$lang->projectreview = new stdclass(); +$lang->projecttrack = new stdclass(); +$lang->projectqa = new stdclass(); +$lang->holidayseason = new stdclass(); +$lang->codereview = new stdclass(); +$lang->repocode = new stdclass(); $lang->projectbuild = new stdclass(); -$lang->projectstory = new stdclass(); $lang->projectrelease = new stdclass(); -$lang->stakeholder = new stdclass(); -$lang->product = new stdclass(); -$lang->branch = new stdclass(); -$lang->story = new stdclass(); -$lang->productplan = new stdclass(); -$lang->release = new stdclass(); -$lang->execution = new stdclass(); -$lang->task = new stdclass(); -$lang->build = new stdclass(); -$lang->qa = new stdclass(); -$lang->bug = new stdclass(); -$lang->testcase = new stdclass(); -$lang->testtask = new stdclass(); -$lang->testreport = new stdclass(); -$lang->testsuite = new stdclass(); -$lang->caselib = new stdclass(); -$lang->automation = new stdclass(); -$lang->repo = new stdclass(); -$lang->ci = new stdclass(); -$lang->compile = new stdclass(); -$lang->jenkins = new stdclass(); -$lang->job = new stdclass(); -$lang->doc = new stdclass(); -$lang->mail = new stdclass(); -$lang->custom = new stdclass(); -$lang->datatable = new stdclass(); -$lang->svn = new stdclass(); -$lang->gitlab = new stdclass(); -$lang->mr = new stdclass(); -$lang->git = new stdclass(); -$lang->company = new stdclass(); -$lang->dept = new stdclass(); -$lang->group = new stdclass(); -$lang->user = new stdclass(); -$lang->tree = new stdclass(); -$lang->report = new stdclass(); -$lang->search = new stdclass(); -$lang->admin = new stdclass(); -$lang->extension = new stdclass(); -$lang->webhook = new stdclass(); -$lang->api = new stdclass(); -$lang->file = new stdclass(); -$lang->misc = new stdclass(); -$lang->message = new stdclass(); -$lang->action = new stdclass(); -$lang->backup = new stdclass(); -$lang->cron = new stdclass(); -$lang->dev = new stdclass(); - -$moduleRoot = '../module/'; -include '../framework/helper.class.php'; -include $moduleRoot . '/group/lang/resource.php'; -foreach(glob($moduleRoot . '/group/ext/lang/zh-cn/*.php') as $resourceFile) include $resourceFile; -foreach(glob('../xuanxuan/module/group/ext/lang/zh-cn/*.php') as $resourceFile) include $resourceFile; +$lang->projectstory = new stdclass(); $lang->projectCommon = ''; $lang->storyCommon = ''; @@ -87,6 +178,33 @@ $lang->URCommon = ''; $lang->productCommon = ''; $lang->executionCommon = ''; +$config = new stdclass(); +$config->disabledFeatures = ''; +$config->URAndSR = ''; +$config->systemScore = ''; +$config->programLink = 'program-browse'; +$config->productLink = 'product-browse'; +$config->projectLink = 'project-browse'; +$config->executionLink = 'execution-all'; +$config->systemMode = 'ALM'; +$config->edition = 'open'; + +$config->featureGroup = new stdclass(); +$config->featureGroup->my = array('score'); +$config->featureGroup->product = array('roadmap', 'track', 'UR'); +$config->featureGroup->scrum = array(); +$config->featureGroup->waterfall = array(); +$config->featureGroup->agileplus = array(); +$config->featureGroup->waterfallplus = array(); +$config->featureGroup->assetlib = array(); +$config->featureGroup->other = array('devops', 'kanban', 'setCode'); + +$moduleRoot = '../module/'; +include '../framework/helper.class.php'; +include $moduleRoot . '/group/lang/resource.php'; +foreach(glob($moduleRoot . '/group/ext/lang/zh-cn/*.php') as $resourceFile) include $resourceFile; +foreach(glob('../xuanxuan/module/group/ext/lang/zh-cn/*.php') as $resourceFile) include $resourceFile; + $whiteList[] = 'report-annualdata'; $whiteList[] = 'api-getsessionid'; $whiteList[] = 'admin-setflow'; @@ -277,7 +395,7 @@ foreach(array($moduleRoot, '../xuanxuan/module/') as $subModuleRoot) if(empty(trim($line))) continue; if(strpos($line, '$lang') === 0) { - if(strpos($line, '=') !== false) + if(strpos($line, '=') !== false && strpos($lines[$lineNO], '=') !== false) { list($mainKey, $mainValue) = explode('=', $line); list($key, $value) = explode('=', $lines[$lineNO]); @@ -325,29 +443,6 @@ foreach(array($moduleRoot, '../xuanxuan/module/') as $subModuleRoot) } } -echo '-------------php5.4 synatax checking-----------------' . "\n"; -class app {function loadLang() {}} -$app = new app; -$lang = new stdclass(); - -error_reporting(E_WARNING | E_STRICT ); -foreach(array($moduleRoot, '../xuanxuan/module/') as $subModuleRoot) -{ - foreach(glob($subModuleRoot . '*') as $modulePath) - { - $moduleName = basename($modulePath); - $cnLangFile = $modulePath . '/lang/zh-cn.php'; - $enLangFile = $modulePath . '/lang/en.php'; - $configFile = $modulePath . '/config.php'; - - if(!isset($lang->$moduleName)) $lang->$moduleName = new stdclass(); - if(!isset($config->$moduleName)) $config->$moduleName = new stdclass(); - if(file_exists($cnLangFile)) include $cnLangFile; - if(file_exists($enLangFile)) include $enLangFile; - if(file_exists($configFile)) include $configFile; - } -} - echo '-------------demo data checking. -----------------' . "\n"; $demoSQL = file("../db/demo.sql"); foreach($demoSQL as $line => $sql) From 489b437dcfbc5f6241a5a8bb8661f34849c3bf3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=88=9A?= Date: Thu, 29 Feb 2024 15:40:11 +0800 Subject: [PATCH 008/276] * add ai model upgrade. --- module/upgrade/config/upgradeflow.php | 3 +- module/upgrade/model.php | 44 +++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/module/upgrade/config/upgradeflow.php b/module/upgrade/config/upgradeflow.php index 8675c884dc..dddca70909 100644 --- a/module/upgrade/config/upgradeflow.php +++ b/module/upgrade/config/upgradeflow.php @@ -92,7 +92,8 @@ $config->upgrade->execFlow['18_6'] = array('functions' => 'removeProductL $config->upgrade->execFlow['18_7'] = array('functions' => 'processHistoryDataForMetric,metric-updateMetricDate'); $config->upgrade->execFlow['18_8'] = array('functions' => 'upgradeTesttaskMembers,deleteGeneralReportBlock,stopOldCron'); $config->upgrade->execFlow['18_9'] = array('functions' => 'addDefaultTraincoursePriv,renameBIModule,migrateXuanClientSettings'); -$config->upgrade->execFlow['20.0.alpha1'] = array('functions' => 'revertStoryCustomFields,hideOA'); +$config->upgrade->execFlow['18_10_1'] = array('functions' => 'migrateAIModelConfig'); +$config->upgrade->execFlow['20.0.alpha1'] = array('functions' => 'revertStoryCustomFields,hideOA,migrateAIModelConfig'); if(!empty($config->isINT)) { diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 376593a73c..f7024d66a7 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -8469,6 +8469,50 @@ class upgradeModel extends model return true; } + /** + * Migrate configured AI model (from pre 18.11) into table. + * + * @access public + * @return void + */ + public function migrateAIModelConfig() + { + $aiSettings = $this->loadModel('setting')->getItems('owner=system&module=ai'); + if(empty($aiSettings)) return; + + $aiConfig = new stdclass(); + foreach($aiSettings as $item) $aiConfig->{$item->key} = $item->value; + + $model = new stdclass(); + $model->type = $aiConfig->type; + $model->vendor = $aiConfig->vendor ?: ''; + $model->enabled = $aiConfig->status == 'on' ? '1' : '0'; + $model->desc = $aiConfig->description ?: ''; + $model->createdDate = helper::now(); + $model->createdBy = 'system'; + + $credentials = new stdclass(); + if($model->type == 'baidu-ernie') + { + $credentials->secret = $aiConfig->secret ?: ''; + } + else + { + if($aiConfig->vendor == 'azure') + { + $credentials->resource = $aiConfig->resource ?: ''; + $credentials->deployment = $aiConfig->deployment ?: ''; + } + $credentials->key = $aiConfig->key ?: ''; + } + $model->credentials = json_encode($credentials); + + $model->proxy = $aiConfig->proxyType == 'socks5' ? json_encode((object)array('type' => 'socks5', 'addr' => $aiConfig->proxyAddr)) : null; + + $this->dao->insert(TABLE_AI_MODEL)->data($model)->exec(); + if(!dao::isError()) $this->setting->deleteItems('owner=system&module=ai'); + } + /** * 检查办公应用是否有数据,没有就隐藏。 * Check if the office app has data, if not, hide it. From 85a5c6829bf2d988ec61f00a8b120e875bd4ea9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=88=9A?= Date: Thu, 29 Feb 2024 15:40:58 +0800 Subject: [PATCH 009/276] * Move updateMetricDate function to master from 18x. --- module/upgrade/config/upgradeflow.php | 2 +- module/upgrade/model.php | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/module/upgrade/config/upgradeflow.php b/module/upgrade/config/upgradeflow.php index dddca70909..bffe450455 100644 --- a/module/upgrade/config/upgradeflow.php +++ b/module/upgrade/config/upgradeflow.php @@ -93,7 +93,7 @@ $config->upgrade->execFlow['18_7'] = array('functions' => 'processHistory $config->upgrade->execFlow['18_8'] = array('functions' => 'upgradeTesttaskMembers,deleteGeneralReportBlock,stopOldCron'); $config->upgrade->execFlow['18_9'] = array('functions' => 'addDefaultTraincoursePriv,renameBIModule,migrateXuanClientSettings'); $config->upgrade->execFlow['18_10_1'] = array('functions' => 'migrateAIModelConfig'); -$config->upgrade->execFlow['20.0.alpha1'] = array('functions' => 'revertStoryCustomFields,hideOA,migrateAIModelConfig'); +$config->upgrade->execFlow['20.0.alpha1'] = array('functions' => 'revertStoryCustomFields,hideOA,updateMetricDateType,migrateAIModelConfig'); if(!empty($config->isINT)) { diff --git a/module/upgrade/model.php b/module/upgrade/model.php index f7024d66a7..473b5cba84 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -8513,6 +8513,21 @@ class upgradeModel extends model if(!dao::isError()) $this->setting->deleteItems('owner=system&module=ai'); } + /** + * Update metric datetype. + * + * @access public + * @return void + */ + public function updateMetricDateType() + { + $this->loadModel('metric'); + foreach($this->config->metric->dateType as $code => $dateType) + { + $this->dao->update(TABLE_METRIC)->set('dateType')->eq($dateType)->where('code')->eq($code)->exec(); + } + } + /** * 检查办公应用是否有数据,没有就隐藏。 * Check if the office app has data, if not, hide it. From 9d12fa37fd6d3ea79aab7b771de93a1bc7f99c02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=88=9A?= Date: Thu, 29 Feb 2024 15:41:12 +0800 Subject: [PATCH 010/276] * Fix bug #46305 --- module/story/ui/review.html.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/module/story/ui/review.html.php b/module/story/ui/review.html.php index 2e70809a73..cbaf46e3d8 100644 --- a/module/story/ui/review.html.php +++ b/module/story/ui/review.html.php @@ -29,8 +29,17 @@ foreach($fields as $field => $attr) $formItems[$field] = formRow ( + in_array($field, array('assignedTo', 'closedReason', 'pri', 'estimate', 'childStories')) ? setID($field . 'Box') : null, + in_array($field, array('closedReason', 'duplicateStory', 'pri', 'estimate', 'childStories', 'status')) ? set::hidden(true) : null, + + $field == 'duplicateStory' ? setID('rejectedReasonBox') : null, + $field == 'assignedTo' ? set::hidden(!$isLastOne) : null, + $field == 'result' ? on::change('switchShow(e.target);') : null, + $field == 'closedReason' ? on::change('setStory(e.target);') : null, + formGroup ( + set::width($width), set::name($fieldName), set::label($attr['title']), @@ -42,15 +51,6 @@ foreach($fields as $field => $attr) } if($this->config->vision != 'or') $formItems['affected'] = $getAffectedTabs($story, $users); -$formItems['result']->add(on::change('switchShow(e.target);')); -$formItems['assignedTo']->add(setID('assignedToBox'))->add(set::hidden(!$isLastOne)); -$formItems['closedReason']->add(setID('rejectedReasonBox'))->add(set::hidden(true))->add(on::change('setStory(e.target);')); -$formItems['duplicateStory']->add(setID('duplicateStoryBox'))->add(set::hidden(true)); -$formItems['pri']->add(setID('priBox'))->add(set::hidden(true)); -$formItems['estimate']->add(setID('estimateBox'))->add(set::hidden(true)); -$formItems['childStories']->add(setID('childStoriesBox'))->add(set::hidden(true)); -$formItems['status']->add(set::hidden(true)); - modalHeader(); panel ( From c30a71f9839613df8bfe56f1d9e75575dc3e2b4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=88=9A?= Date: Thu, 29 Feb 2024 15:41:26 +0800 Subject: [PATCH 011/276] * Fix bug #46314 --- lib/zin/wg/productsbox/js/v1.js | 6 +++--- lib/zin/wg/productsbox/v1.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/zin/wg/productsbox/js/v1.js b/lib/zin/wg/productsbox/js/v1.js index 28398ba8f4..a7d8b3a671 100644 --- a/lib/zin/wg/productsbox/js/v1.js +++ b/lib/zin/wg/productsbox/js/v1.js @@ -4,7 +4,7 @@ window.branchChange = function(e) loadPlans($product, $(e.target)); } -function loadBranches(e) +window.loadBranches = function(e) { /* When selecting a product, delete a plan that is empty by default. */ $("#planDefault").remove(); @@ -52,7 +52,7 @@ function loadBranches(e) loadPlans(e.target, branch.length > 0 ? branch[0] : branch); } -function addNewLine(e) +window.addNewLine = function(e) { const obj = e.target const newLine = $(obj).closest('.productBox').clone(); @@ -96,7 +96,7 @@ function addNewLine(e) new zui.Picker(`#plans${index}`, {items:[], multiple: true, name: `plans[${index}]`}); } -function removeLine(e) +window.removeLine = function(e) { const obj = e.target; $(obj).closest('.productBox').remove(); diff --git a/lib/zin/wg/productsbox/v1.php b/lib/zin/wg/productsbox/v1.php index 3c797c667d..1657ae18f8 100644 --- a/lib/zin/wg/productsbox/v1.php +++ b/lib/zin/wg/productsbox/v1.php @@ -58,9 +58,9 @@ class productsBox extends wg return div ( setClass('productsBox'), - on::click('.productsBox .addLine', 'addNewLine'), - on::click('.productsBox .removeLine', 'removeLine'), - on::change('.productsBox [name^=products]', 'loadBranches'), + on::click('.productsBox .addLine', 'window.addNewLine'), + on::click('.productsBox .removeLine', 'window.removeLine'), + on::change('.productsBox [name^=products]', 'window.loadBranches'), jsVar('multiBranchProducts', data('multiBranchProducts')), jsVar('project', \zget($project, 'id', 0)), jsVar('errorSameProducts', $errorSameProducts), From f6f9834962913853011085bd69c4eeb750ffa780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=88=9A?= Date: Thu, 29 Feb 2024 15:41:45 +0800 Subject: [PATCH 012/276] * Cherry pick 7840285fa392beb9c0c76298153a3f16d2771014. --- module/metric/config/datetype.php | 166 ------------------------------ module/metric/model.php | 5 +- module/upgrade/model.php | 17 +++ 3 files changed, 19 insertions(+), 169 deletions(-) diff --git a/module/metric/config/datetype.php b/module/metric/config/datetype.php index f5284e677c..0487d26d5b 100644 --- a/module/metric/config/datetype.php +++ b/module/metric/config/datetype.php @@ -1,30 +1,10 @@ metric->dateType = array(); -$config->metric->dateType['count_of_program'] = 'nodate'; -$config->metric->dateType['count_of_doing_program'] = 'nodate'; -$config->metric->dateType['count_of_closed_program'] = 'nodate'; -$config->metric->dateType['count_of_suspended_program'] = 'nodate'; -$config->metric->dateType['count_of_wait_program'] = 'nodate'; -$config->metric->dateType['count_of_top_program'] = 'nodate'; -$config->metric->dateType['count_of_closed_top_program'] = 'nodate'; -$config->metric->dateType['count_of_unclosed_top_program'] = 'nodate'; $config->metric->dateType['count_of_annual_created_top_program'] = 'year'; $config->metric->dateType['count_of_annual_closed_top_program'] = 'year'; -$config->metric->dateType['count_of_line'] = 'nodate'; -$config->metric->dateType['count_of_product'] = 'nodate'; -$config->metric->dateType['count_of_normal_product'] = 'nodate'; -$config->metric->dateType['count_of_closed_product'] = 'nodate'; $config->metric->dateType['count_of_annual_created_product'] = 'year'; $config->metric->dateType['count_of_annual_closed_product'] = 'year'; -$config->metric->dateType['count_of_project'] = 'nodate'; -$config->metric->dateType['count_of_wait_project'] = 'nodate'; -$config->metric->dateType['count_of_doing_project'] = 'nodate'; -$config->metric->dateType['count_of_suspended_project'] = 'nodate'; -$config->metric->dateType['count_of_closed_project'] = 'nodate'; -$config->metric->dateType['count_of_unclosed_project'] = 'nodate'; -$config->metric->dateType['count_of_undelayed_finished_project_which_finished'] = 'nodate'; -$config->metric->dateType['count_of_delayed_finished_project_which_finished'] = 'nodate'; $config->metric->dateType['count_of_annual_created_project'] = 'year'; $config->metric->dateType['count_of_annual_closed_project'] = 'year'; $config->metric->dateType['count_of_undelayed_finished_project_which_annual_started'] = 'year'; @@ -39,49 +19,25 @@ $config->metric->dateType['consume_of_monthly_closed_project'] = 'month'; $config->metric->dateType['day_of_annual_closed_project'] = 'year'; $config->metric->dateType['rate_of_undelayed_finished_project_which_annual_finished'] = 'year'; $config->metric->dateType['rate_of_delayed_finished_project_which_annual_finished'] = 'year'; -$config->metric->dateType['count_of_productplan'] = 'nodate'; $config->metric->dateType['count_of_annual_created_productplan'] = 'year'; $config->metric->dateType['count_of_annual_finished_productplan'] = 'year'; $config->metric->dateType['count_of_annual_closed_productplan'] = 'year'; -$config->metric->dateType['count_of_finished_productplan'] = 'nodate'; -$config->metric->dateType['count_of_unfinished_productplan'] = 'nodate'; -$config->metric->dateType['count_of_execution'] = 'nodate'; -$config->metric->dateType['count_of_wait_execution'] = 'nodate'; -$config->metric->dateType['count_of_doing_execution'] = 'nodate'; -$config->metric->dateType['count_of_suspended_execution'] = 'nodate'; -$config->metric->dateType['count_of_closed_execution'] = 'nodate'; -$config->metric->dateType['count_of_unclosed_execution'] = 'nodate'; $config->metric->dateType['count_of_annual_created_execution'] = 'year'; $config->metric->dateType['count_of_annual_closed_execution'] = 'year'; $config->metric->dateType['count_of_monthly_created_execution'] = 'month'; $config->metric->dateType['count_of_monthly_closed_execution'] = 'month'; -$config->metric->dateType['count_of_undelayed_finished_execution_which_finished'] = 'nodate'; -$config->metric->dateType['count_of_delayed_finished_execution_which_finished'] = 'nodate'; $config->metric->dateType['count_of_undelayed_finished_execution_which_annual_finished'] = 'year'; $config->metric->dateType['count_of_delayed_finished_execution_which_annual_finished'] = 'year'; $config->metric->dateType['rate_of_undelayed_closed_execution_which_annual_finished'] = 'year'; $config->metric->dateType['rate_of_delayed_closed_execution_which_annual_finished'] = 'year'; -$config->metric->dateType['count_of_release'] = 'nodate'; -$config->metric->dateType['count_of_marker_release'] = 'nodate'; $config->metric->dateType['count_of_annual_created_release'] = 'year'; $config->metric->dateType['count_of_monthly_created_release'] = 'month'; $config->metric->dateType['count_of_weekly_created_release'] = 'week'; -$config->metric->dateType['count_of_story'] = 'nodate'; -$config->metric->dateType['count_of_closed_story'] = 'nodate'; -$config->metric->dateType['count_of_finished_story'] = 'nodate'; -$config->metric->dateType['count_of_unclosed_story'] = 'nodate'; -$config->metric->dateType['count_of_invalid_story'] = 'nodate'; -$config->metric->dateType['count_of_valid_story'] = 'nodate'; -$config->metric->dateType['count_of_delivered_story'] = 'nodate'; $config->metric->dateType['count_of_annual_created_story'] = 'year'; $config->metric->dateType['count_of_annual_finished_story'] = 'year'; $config->metric->dateType['count_of_monthly_created_story'] = 'month'; $config->metric->dateType['count_of_monthly_finished_story'] = 'month'; $config->metric->dateType['count_of_annual_delivered_story'] = 'year'; -$config->metric->dateType['scale_of_story'] = 'nodate'; -$config->metric->dateType['scale_of_finished_story'] = 'nodate'; -$config->metric->dateType['scale_of_invalid_story'] = 'nodate'; -$config->metric->dateType['scale_of_valid_story'] = 'nodate'; $config->metric->dateType['scale_of_annual_finished_story'] = 'year'; $config->metric->dateType['scale_of_annual_delivered_story'] = 'year'; $config->metric->dateType['scale_of_annual_closed_story'] = 'year'; @@ -91,101 +47,45 @@ $config->metric->dateType['scale_of_monthly_closed_story'] = 'month'; $config->metric->dateType['scale_of_weekly_finished_story'] = 'week'; $config->metric->dateType['count_of_weekly_finished_story'] = 'week'; $config->metric->dateType['count_of_daily_created_story'] = 'day'; -$config->metric->dateType['rate_of_finished_story'] = 'nodate'; -$config->metric->dateType['rate_of_delivered_story'] = 'nodate'; $config->metric->dateType['rate_of_annual_finished_story'] = 'year'; $config->metric->dateType['rate_of_annual_delivered_story'] = 'year'; -$config->metric->dateType['count_of_task'] = 'nodate'; -$config->metric->dateType['count_of_finished_task'] = 'nodate'; -$config->metric->dateType['count_of_unfinished_task'] = 'nodate'; -$config->metric->dateType['count_of_closed_task'] = 'nodate'; $config->metric->dateType['count_of_annual_created_task'] = 'year'; $config->metric->dateType['count_of_annual_finished_task'] = 'year'; $config->metric->dateType['count_of_monthly_created_task'] = 'month'; $config->metric->dateType['count_of_monthly_finished_task'] = 'month'; -$config->metric->dateType['estimate_of_task'] = 'nodate'; -$config->metric->dateType['consume_of_task'] = 'nodate'; -$config->metric->dateType['left_of_task'] = 'nodate'; $config->metric->dateType['count_of_daily_finished_task'] = 'day'; -$config->metric->dateType['count_of_bug'] = 'nodate'; -$config->metric->dateType['count_of_activated_bug'] = 'nodate'; -$config->metric->dateType['count_of_resolved_bug'] = 'nodate'; -$config->metric->dateType['count_of_closed_bug'] = 'nodate'; -$config->metric->dateType['count_of_unclosed_bug'] = 'nodate'; -$config->metric->dateType['count_of_fixed_bug'] = 'nodate'; -$config->metric->dateType['count_of_valid_bug'] = 'nodate'; $config->metric->dateType['count_of_annual_created_bug'] = 'year'; $config->metric->dateType['count_of_annual_fixed_bug'] = 'year'; $config->metric->dateType['count_of_monthly_created_bug'] = 'month'; $config->metric->dateType['count_of_monthly_fixed_bug'] = 'month'; $config->metric->dateType['count_of_daily_closed_bug'] = 'day'; -$config->metric->dateType['rate_of_fixed_bug'] = 'nodate'; -$config->metric->dateType['count_of_case'] = 'nodate'; $config->metric->dateType['count_of_annual_created_case'] = 'year'; $config->metric->dateType['count_of_daily_run_case'] = 'day'; -$config->metric->dateType['count_of_user'] = 'nodate'; $config->metric->dateType['count_of_annual_created_user'] = 'year'; $config->metric->dateType['hour_of_annual_effort'] = 'year'; $config->metric->dateType['day_of_annual_effort'] = 'year'; $config->metric->dateType['day_of_daily_effort'] = 'day'; $config->metric->dateType['hour_of_daily_effort'] = 'day'; -$config->metric->dateType['count_of_doc'] = 'nodate'; $config->metric->dateType['count_of_annual_created_doc'] = 'year'; -$config->metric->dateType['count_of_feedback'] = 'nodate'; -$config->metric->dateType['count_of_closed_feedback'] = 'nodate'; $config->metric->dateType['count_of_annual_created_feedback'] = 'year'; $config->metric->dateType['count_of_annual_closed_feedback'] = 'year'; -$config->metric->dateType['count_of_codebase'] = 'nodate'; -$config->metric->dateType['count_of_pipeline'] = 'nodate'; -$config->metric->dateType['count_of_artifactrepo'] = 'nodate'; -$config->metric->dateType['count_of_node'] = 'nodate'; -$config->metric->dateType['count_of_application'] = 'nodate'; -$config->metric->dateType['count_of_pending_issue'] = 'nodate'; -$config->metric->dateType['count_of_pending_mergeRequest'] = 'nodate'; -$config->metric->dateType['count_of_pending_deployment'] = 'nodate'; -$config->metric->dateType['count_of_productplan_in_product'] = 'nodate'; $config->metric->dateType['count_of_annual_created_productplan_in_product'] = 'year'; $config->metric->dateType['count_of_annual_finished_productplan_in_product'] = 'year'; -$config->metric->dateType['count_of_release_in_product'] = 'nodate'; $config->metric->dateType['count_of_annual_created_release_in_product'] = 'year'; $config->metric->dateType['count_of_monthly_created_release_in_product'] = 'month'; -$config->metric->dateType['count_of_story_in_product'] = 'nodate'; -$config->metric->dateType['count_of_finished_story_in_product'] = 'nodate'; -$config->metric->dateType['count_of_closed_story_in_product'] = 'nodate'; -$config->metric->dateType['count_of_unclosed_story_in_product'] = 'nodate'; -$config->metric->dateType['count_of_delivered_story_in_product'] = 'nodate'; -$config->metric->dateType['count_of_invalid_story_in_product'] = 'nodate'; -$config->metric->dateType['count_of_valid_story_in_product'] = 'nodate'; -$config->metric->dateType['count_of_developed_story_in_product'] = 'nodate'; -$config->metric->dateType['case_coverage_of_projected_story_in_product'] = 'nodate'; $config->metric->dateType['count_of_annual_created_story_in_product'] = 'year'; $config->metric->dateType['count_of_annual_finished_story_in_product'] = 'year'; $config->metric->dateType['count_of_annual_delivered_story_in_product'] = 'year'; $config->metric->dateType['count_of_annual_closed_story_in_product'] = 'year'; $config->metric->dateType['count_of_monthly_finished_story_in_product'] = 'month'; -$config->metric->dateType['count_of_projected_story_in_product'] = 'nodate'; $config->metric->dateType['count_of_monthly_delivered_story_in_product'] = 'month'; -$config->metric->dateType['count_of_projected_story_with_case_in_product'] = 'nodate'; $config->metric->dateType['count_of_monthly_closed_story_in_product'] = 'month'; $config->metric->dateType['count_of_monthly_created_story_in_product'] = 'month'; -$config->metric->dateType['scale_of_story_in_product'] = 'nodate'; $config->metric->dateType['scale_of_annual_finished_story_in_product'] = 'year'; $config->metric->dateType['scale_of_annual_delivered_story_in_product'] = 'year'; $config->metric->dateType['scale_of_annual_closed_story_in_product'] = 'year'; $config->metric->dateType['scale_of_monthly_finished_story_in_product'] = 'month'; -$config->metric->dateType['rate_of_approved_story_in_product'] = 'nodate'; -$config->metric->dateType['rate_of_finish_story_in_product'] = 'nodate'; -$config->metric->dateType['rate_of_delivery_story_in_product'] = 'nodate'; -$config->metric->dateType['count_of_requirement_in_product'] = 'nodate'; $config->metric->dateType['count_of_annual_created_requirement_in_product'] = 'year'; -$config->metric->dateType['bug_concentration_of_developed_story_in_product'] = 'nodate'; -$config->metric->dateType['count_of_bug_in_product'] = 'nodate'; -$config->metric->dateType['count_of_activated_bug_in_product'] = 'nodate'; -$config->metric->dateType['count_of_effective_bug_in_product'] = 'nodate'; -$config->metric->dateType['count_of_fixed_bug_in_product'] = 'nodate'; -$config->metric->dateType['count_of_severity_1_bug_in_product'] = 'nodate'; -$config->metric->dateType['count_of_severity_2_bug_in_product'] = 'nodate'; -$config->metric->dateType['count_of_severe_bug_in_product'] = 'nodate'; $config->metric->dateType['count_of_annual_created_bug_in_product'] = 'year'; $config->metric->dateType['count_of_annual_created_effective_bug_in_product'] = 'year'; $config->metric->dateType['count_of_annual_fixed_bug_in_product'] = 'year'; @@ -195,81 +95,15 @@ $config->metric->dateType['count_of_daily_closed_bug_in_product'] = 'day'; $config->metric->dateType['count_of_monthly_fixed_bug_in_product'] = 'month'; $config->metric->dateType['count_of_monthly_closed_bug_in_product'] = 'month'; $config->metric->dateType['count_of_monthly_created_bug_in_product'] = 'month'; -$config->metric->dateType['rate_of_fixed_bug_in_product'] = 'nodate'; -$config->metric->dateType['count_of_case_in_product'] = 'nodate'; $config->metric->dateType['count_of_annual_created_case_in_product'] = 'year'; $config->metric->dateType['count_of_feedback_in_product'] = 'year'; $config->metric->dateType['count_of_annual_created_feedback_in_product'] = 'year'; $config->metric->dateType['count_of_annual_closed_feedback_in_product'] = 'year'; -$config->metric->dateType['planned_period_of_project'] = 'nodate'; -$config->metric->dateType['left_period_of_project'] = 'nodate'; -$config->metric->dateType['count_of_actual_time_in_project'] = 'nodate'; -$config->metric->dateType['variance_of_time_in_project'] = 'nodate'; -$config->metric->dateType['count_of_closed_execution_in_project'] = 'nodate'; -$config->metric->dateType['count_of_suspended_execution_in_project'] = 'nodate'; -$config->metric->dateType['count_of_doing_execution_in_project'] = 'nodate'; -$config->metric->dateType['count_wait_execution_in_project'] = 'nodate'; $config->metric->dateType['count_annual_closed_execution_in_project'] = 'year'; -$config->metric->dateType['count_of_execution_in_project'] = 'nodate'; -$config->metric->dateType['count_of_story_in_project'] = 'nodate'; -$config->metric->dateType['count_of_closed_story_in_project'] = 'nodate'; -$config->metric->dateType['count_of_unclosed_story_in_project'] = 'nodate'; -$config->metric->dateType['count_of_finished_story_in_project'] = 'nodate'; -$config->metric->dateType['count_of_invalid_story_in_project'] = 'nodate'; -$config->metric->dateType['count_of_valid_story_in_project'] = 'nodate'; -$config->metric->dateType['scale_of_story_in_project'] = 'nodate'; $config->metric->dateType['count_of_annual_finished_story_in_project'] = 'year'; $config->metric->dateType['scale_of_annual_finished_story_in_project'] = 'year'; -$config->metric->dateType['rate_of_finished_story_in_project'] = 'nodate'; -$config->metric->dateType['count_of_task_in_project'] = 'nodate'; -$config->metric->dateType['count_of_wait_task_in_project'] = 'nodate'; -$config->metric->dateType['count_of_doing_task_in_project'] = 'nodate'; -$config->metric->dateType['count_of_finished_task_in_project'] = 'nodate'; -$config->metric->dateType['estimate_of_task_in_project'] = 'nodate'; -$config->metric->dateType['consume_of_task_in_project'] = 'nodate'; -$config->metric->dateType['left_of_task_in_project'] = 'nodate'; -$config->metric->dateType['ev_of_finished_task_in_waterfall'] = 'nodate'; -$config->metric->dateType['pv_of_task_in_waterfall'] = 'nodate'; -$config->metric->dateType['progress_of_task_in_project'] = 'nodate'; -$config->metric->dateType['sv_in_waterfall'] = 'nodate'; -$config->metric->dateType['cv_in_waterfall'] = 'nodate'; -$config->metric->dateType['count_of_bug_in_project'] = 'nodate'; -$config->metric->dateType['count_of_activated_bug_in_project'] = 'nodate'; -$config->metric->dateType['count_of_closed_bug_in_project'] = 'nodate'; -$config->metric->dateType['count_of_user_in_project'] = 'nodate'; -$config->metric->dateType['consume_of_all_in_project'] = 'nodate'; -$config->metric->dateType['day_of_invested_in_project'] = 'nodate'; -$config->metric->dateType['ac_of_all_in_waterfall'] = 'nodate'; -$config->metric->dateType['count_of_opened_risk_in_project'] = 'nodate'; -$config->metric->dateType['count_of_opened_issue_in_project'] = 'nodate'; -$config->metric->dateType['count_of_story_in_execution'] = 'nodate'; -$config->metric->dateType['count_of_finished_story_in_execution'] = 'nodate'; -$config->metric->dateType['count_of_invalid_story_in_execution'] = 'nodate'; -$config->metric->dateType['count_of_valid_story_in_execution'] = 'nodate'; -$config->metric->dateType['count_of_developed_story_in_execution'] = 'nodate'; -$config->metric->dateType['rate_of_finished_story_in_execution'] = 'nodate'; -$config->metric->dateType['rate_of_developed_story_in_execution'] = 'nodate'; -$config->metric->dateType['count_of_task_in_execution'] = 'nodate'; -$config->metric->dateType['count_of_finished_task_in_execution'] = 'nodate'; -$config->metric->dateType['count_of_unfinished_task_in_execution'] = 'nodate'; $config->metric->dateType['count_of_daily_finished_task_in_execution'] = 'day'; -$config->metric->dateType['estimate_of_task_in_execution'] = 'nodate'; -$config->metric->dateType['consume_of_task_in_execution'] = 'nodate'; -$config->metric->dateType['left_of_task_in_execution'] = 'nodate'; -$config->metric->dateType['progress_of_task_in_execution'] = 'nodate'; -$config->metric->dateType['count_of_reviewing_story_in_user'] = 'nodate'; $config->metric->dateType['count_of_daily_review_story_in_user'] = 'day'; -$config->metric->dateType['count_of_pending_story_in_user'] = 'nodate'; $config->metric->dateType['count_of_daily_finished_task_in_user'] = 'day'; -$config->metric->dateType['count_of_assigned_task_in_user'] = 'nodate'; $config->metric->dateType['count_of_daily_fixed_bug_in_user'] = 'day'; -$config->metric->dateType['count_of_assigned_bug_in_user'] = 'nodate'; -$config->metric->dateType['count_of_assigned_case_in_user'] = 'nodate'; -$config->metric->dateType['count_of_assigned_feedback_in_user'] = 'nodate'; -$config->metric->dateType['count_of_reviewing_feedback_in_user'] = 'nodate'; $config->metric->dateType['count_of_daily_review_feedback_in_user'] = 'day'; -$config->metric->dateType['count_of_submitted_code_issues_in_codebase'] = 'nodate'; -$config->metric->dateType['count_of_resolved_code_issues_in_codebase'] = 'nodate'; -$config->metric->dateType['count_of_pending_issues_in_codebase'] = 'nodate'; -$config->metric->dateType['count_of_merged_pull_requests_in_codebase'] = 'nodate'; -$config->metric->dateType['count_of_code_commits_in_codebase'] = 'nodate'; diff --git a/module/metric/model.php b/module/metric/model.php index 12e864dd31..48d4b5b57a 100755 --- a/module/metric/model.php +++ b/module/metric/model.php @@ -2128,9 +2128,8 @@ class metricModel extends model /* Get dateType from config second. */ if(isset($this->config->metric->dateType[$code])) return $this->config->metric->dateType[$code]; - /* At last, infer dateType by code. */ - $dataFields = $this->getMetricRecordDateField($code); - return $this->getDateType($dataFields); + /* Return nodate if no matches. */ + return 'nodate'; } /** diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 473b5cba84..2a37cfc810 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -8469,6 +8469,23 @@ class upgradeModel extends model return true; } + /** + * Update metric datetype. + * + * @access public + * @return void + */ + public function updateMetricDateType() + { + $this->loadModel('metric'); + foreach($this->config->metric->dateType as $code => $dateType) + { + $this->dao->update(TABLE_METRIC)->set('dateType')->eq($dateType)->where('code')->eq($code)->exec(); + } + + $this->dao->update(TABLE_METRIC)->set('dateType')->eq('nodate')->where('dateType')->eq('')->exec(); + } + /** * Migrate configured AI model (from pre 18.11) into table. * From 27eec77d3c83cb912bfbceb30cada378267b2eb1 Mon Sep 17 00:00:00 2001 From: liyang Date: Thu, 29 Feb 2024 15:53:01 +0800 Subject: [PATCH 013/276] * Fix bug #46323. --- module/story/ui/batchcreate.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/story/ui/batchcreate.html.php b/module/story/ui/batchcreate.html.php index 081c8e0b45..688374ee91 100644 --- a/module/story/ui/batchcreate.html.php +++ b/module/story/ui/batchcreate.html.php @@ -82,7 +82,7 @@ formBatchPanel array('text' => $lang->goback, 'data-back' => 'APP', 'class' => 'open-url') )), formHidden('type', $type), - formHidden('status') + formHidden('status', '') ); render(); From a097083d97ea2ee34f181c0a06a8abe5e5a49f15 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 29 Feb 2024 15:55:45 +0800 Subject: [PATCH 014/276] * Fix bug #46312. --- module/task/model.php | 2 ++ module/task/ui/view.html.php | 29 ++++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/module/task/model.php b/module/task/model.php index 3f9f7153bb..9b8f1c4083 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -1270,6 +1270,8 @@ class taskModel extends model $task = $this->loadModel('file')->replaceImgURL($task, 'desc'); $task->files = $this->file->getByObject('task', $taskID); if($setImgSize && $task->desc) $task->desc = $this->file->setImgSize($task->desc); + /* Get related test cases. */ + if($task->story) $task->cases = $this->dao->select('id, title')->from(TABLE_CASE)->where('story')->eq($task->story)->andWhere('storyVersion')->eq($task->storyVersion)->andWhere('deleted')->eq('0')->fetchPairs(); /* Process a task, compute its progress and get its related information. */ return $this->processTask($task); diff --git a/module/task/ui/view.html.php b/module/task/ui/view.html.php index 4c4a9cde8d..c0171dcb7d 100644 --- a/module/task/ui/view.html.php +++ b/module/task/ui/view.html.php @@ -183,6 +183,28 @@ foreach($linkCommits as $commit) ) : div($revision . ' ' . $commit->comment); } +$linkedCases = array(); +$canViewCase = common::hasPriv('testcase', 'view'); +if(!empty($task->cases)) +{ + foreach($task->cases as $caseID => $case) + { + $linkedCases[] = $canViewCase ? a + ( + setClass('flex clip'), + set::href(createLink('testcase', 'view', "caseID={$caseID}")), + setData('toggle', 'modal'), + setData('size', 'lg'), + set::title($case), + "#{$caseID} " . $case + ) : div( + setClass('flex clip'), + set::title($case), + "#{$caseID} " . $case + ); + } +} + detailBody ( sectionList @@ -252,6 +274,11 @@ detailBody ) ) ) : null, + !empty($task->cases) ? section + ( + set::title($lang->task->case), + div($linkedCases) + ) : null, $task->children ? section ( @@ -325,7 +352,7 @@ detailBody item ( set::name($lang->task->assignedTo), - $task->assignedToRealName + zget($users, $task->assignedTo, '') ), item ( From 169e8bd324e2f8e5a446636b04c1b14877031b6e Mon Sep 17 00:00:00 2001 From: liyang Date: Thu, 29 Feb 2024 16:06:19 +0800 Subject: [PATCH 015/276] * Add "repo-view" configuration in the back button. --- lib/zin/wg/backbtn/v1.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/zin/wg/backbtn/v1.php b/lib/zin/wg/backbtn/v1.php index 04402a3166..9c085a41c2 100644 --- a/lib/zin/wg/backbtn/v1.php +++ b/lib/zin/wg/backbtn/v1.php @@ -43,9 +43,9 @@ class backBtn extends btn global $app; $backs = array( - 'task' => 'execution-task,my-work,my-contribute,execution-tree,execution-grouptask,project-execution,product-track', - 'story' => 'product-browse,projectstory-story,execution-story,my-work,my-contribute,productplan-view,build-view,projectbuild-view,product-track', - 'bug' => 'bug-browse,project-bug,my-work,my-contribute,execution-bug,bug-view,qa-index,execution-task,product-track,execution-task,task-view', + 'task' => 'execution-task,my-work,my-contribute,execution-tree,execution-grouptask,project-execution,product-track,repo-view', + 'story' => 'product-browse,projectstory-story,execution-story,my-work,my-contribute,productplan-view,build-view,projectbuild-view,product-track,repo-view', + 'bug' => 'bug-browse,project-bug,my-work,my-contribute,execution-bug,bug-view,qa-index,execution-task,product-track,execution-task,task-view,repo-view', 'testcase' => 'testcase-browse,project-testcase,my-work,my-contribute,execution-testcase,testtask-cases,testsuite-view,product-browse,testcase-view,qa-index,caselib-browse,product-track', 'testsuite' => 'testsuite-browse,testsuite-view,', 'testtask' => 'testtask-browse,testtask-cases,qa-index,testcase-browse,', From 1030177244bbd634f780be275a345014b773213d Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 16:06:49 +0800 Subject: [PATCH 016/276] * Adjust language check script. --- misc/check.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/check.php b/misc/check.php index b4f6e9e0d5..f2bf3bc5dd 100755 --- a/misc/check.php +++ b/misc/check.php @@ -406,7 +406,7 @@ foreach(array($moduleRoot, '../xuanxuan/module/') as $subModuleRoot) $lineNO = $lineNO + 1; $referLang = $langKey != 'en' ? 'en' : 'zh-cn'; echo "module $moduleName need checking, command is:"; - echo " vim -O +$lineNO ../module/$moduleName/lang/$referLang.php +$lineNO ../module/$moduleName/lang/$langKey.php \n"; + echo " vimdiff -O +$lineNO ../module/$moduleName/lang/$referLang.php ../module/$moduleName/lang/$langKey.php \n"; break; } } @@ -434,7 +434,7 @@ foreach(array($moduleRoot, '../xuanxuan/module/') as $subModuleRoot) $key = trim($key); $lineNO = $lineNO + 1; echo "module $moduleName need checking, command is:"; - echo " vim -O +$lineNO ../../module/$moduleName/ext/lang/zh-cn/$extLangFile +$lineNO ../../module/$moduleName/ext/lang/en/$extLangFile \n"; + echo " vimdiff -O +$lineNO ../../module/$moduleName/ext/lang/zh-cn/$extLangFile ../../module/$moduleName/ext/lang/en/$extLangFile \n"; break; } } From e15585ba148610c61774f5b03f7bd2b84794d24f Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 16:06:55 +0800 Subject: [PATCH 017/276] * Complete language item configuration. --- module/account/lang/de.php | 1 + module/account/lang/en.php | 1 + module/account/lang/fr.php | 1 + module/action/lang/de.php | 9 +++++++- module/action/lang/fr.php | 7 ++++++ module/action/lang/zh-cn.php | 5 ++--- module/aiapp/lang/zh-cn.php | 10 ++++----- module/block/lang/de.php | 11 +-------- module/block/lang/en.php | 11 +-------- module/block/lang/fr.php | 4 +--- module/bug/lang/de.php | 2 +- module/bug/lang/en.php | 2 +- module/bug/lang/fr.php | 2 +- module/chart/lang/de.php | 3 +++ module/chart/lang/en.php | 3 +++ module/chart/lang/fr.php | 3 +++ module/common/lang/de.php | 5 +---- module/common/lang/en.php | 1 + module/common/lang/fr.php | 5 +---- module/common/lang/zh-cn.php | 2 +- module/cron/lang/de.php | 1 + module/cron/lang/fr.php | 1 + module/cron/lang/zh-cn.php | 1 + module/extension/lang/de.php | 4 ++++ module/extension/lang/en.php | 4 ++++ module/extension/lang/fr.php | 4 ++++ module/file/lang/zh-cn.php | 2 +- module/group/lang/fr.php | 3 +-- module/program/lang/de.php | 3 +-- module/program/lang/en.php | 1 - module/program/lang/fr.php | 3 +-- module/project/lang/de.php | 23 +++++++++++-------- module/project/lang/en.php | 17 +++++++------- module/project/lang/fr.php | 25 ++++++++++++--------- module/release/lang/de.php | 2 +- module/score/lang/fr.php | 4 ++-- module/testcase/lang/de.php | 33 ++++++++++++++------------- module/testcase/lang/en.php | 33 ++++++++++++++------------- module/testcase/lang/fr.php | 33 ++++++++++++++------------- module/testtask/lang/de.php | 1 + module/testtask/lang/en.php | 1 + module/testtask/lang/fr.php | 5 +++-- module/tree/lang/zh-cn.php | 1 - module/tutorial/lang/en.php | 4 ---- module/tutorial/lang/fr.php | 1 - module/upgrade/lang/de.php | 43 ++++++++++++++++++------------------ module/upgrade/lang/en.php | 39 ++++++++++++++++---------------- module/upgrade/lang/fr.php | 39 ++++++++++++++++---------------- module/user/lang/de.php | 8 +++---- module/user/lang/fr.php | 8 +++---- 50 files changed, 227 insertions(+), 208 deletions(-) diff --git a/module/account/lang/de.php b/module/account/lang/de.php index 9131c43be9..74379aadd4 100644 --- a/module/account/lang/de.php +++ b/module/account/lang/de.php @@ -10,6 +10,7 @@ $lang->account->view = 'view account'; $lang->account->editAction = 'edit account'; $lang->account->deleteAction = 'delete account'; +$lang->account->id = 'id'; $lang->account->provider = 'provider'; $lang->account->type = 'type'; $lang->account->name = 'name'; diff --git a/module/account/lang/en.php b/module/account/lang/en.php index 9131c43be9..74379aadd4 100644 --- a/module/account/lang/en.php +++ b/module/account/lang/en.php @@ -10,6 +10,7 @@ $lang->account->view = 'view account'; $lang->account->editAction = 'edit account'; $lang->account->deleteAction = 'delete account'; +$lang->account->id = 'id'; $lang->account->provider = 'provider'; $lang->account->type = 'type'; $lang->account->name = 'name'; diff --git a/module/account/lang/fr.php b/module/account/lang/fr.php index 9131c43be9..74379aadd4 100644 --- a/module/account/lang/fr.php +++ b/module/account/lang/fr.php @@ -10,6 +10,7 @@ $lang->account->view = 'view account'; $lang->account->editAction = 'edit account'; $lang->account->deleteAction = 'delete account'; +$lang->account->id = 'id'; $lang->account->provider = 'provider'; $lang->account->type = 'type'; $lang->account->name = 'name'; diff --git a/module/action/lang/de.php b/module/action/lang/de.php index c191ee7673..a85ae5e85c 100644 --- a/module/action/lang/de.php +++ b/module/action/lang/de.php @@ -317,7 +317,7 @@ $lang->action->desc->install = '$date, installed by $act $lang->action->desc->uninstall = '$date, uninstalled by $actor.' . "\n"; $lang->action->desc->start = '$date, started by $actor.' . "\n"; $lang->action->desc->stop = '$date, closed by $actor.' . "\n"; -$lang->action->desc->editextra = '$date, updated from $oldname to $newName by $actor.' . "\n"; +$lang->action->desc->editname = '$date, updated from $oldname to $newName by $actor.' . "\n"; $lang->action->desc->upgrade = '$date, upgraded from $oldVersion to $newVersion by $actor.' . "\n"; $lang->action->desc->backup = '$date, backuped by $actor.' . "\n"; $lang->action->desc->adjustmemory = '$date, resized to $newMemory of memory by $actor.' . "\n"; @@ -817,6 +817,13 @@ $lang->action->dynamicAction->repo['edited'] = 'Edit Repo'; $lang->action->dynamicAction->repo['deleted'] = 'Delete Repo'; $lang->action->dynamicAction->repo['undeleted'] = 'Undelete Repo'; +$lang->action->dynamicAction->metric['created'] = 'Create Metric'; +$lang->action->dynamicAction->metric['edited'] = 'Edit Metric'; +$lang->action->dynamicAction->metric['deleted'] = 'Delete Metric'; +$lang->action->dynamicAction->metric['undeleted'] = 'Undelete Metric'; +$lang->action->dynamicAction->metric['delist'] = 'Delist Metric'; +$lang->action->dynamicAction->metric['publish'] = 'Publish Metric'; + /* Generate the corresponding object link. */ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; $lang->action->label->productplan = 'Plan|productplan|view|productID=%s'; diff --git a/module/action/lang/fr.php b/module/action/lang/fr.php index 10f5d13a81..ed15cc9e1f 100644 --- a/module/action/lang/fr.php +++ b/module/action/lang/fr.php @@ -817,6 +817,13 @@ $lang->action->dynamicAction->repo['edited'] = 'Edit Repo'; $lang->action->dynamicAction->repo['deleted'] = 'Delete Repo'; $lang->action->dynamicAction->repo['undeleted'] = 'Undelete Repo'; +$lang->action->dynamicAction->metric['created'] = 'Create Metric'; +$lang->action->dynamicAction->metric['edited'] = 'Edit Metric'; +$lang->action->dynamicAction->metric['deleted'] = 'Delete Metric'; +$lang->action->dynamicAction->metric['undeleted'] = 'Undelete Metric'; +$lang->action->dynamicAction->metric['delist'] = 'Delist Metric'; +$lang->action->dynamicAction->metric['publish'] = 'Publish Metric'; + /* Generate the corresponding object link. */ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; $lang->action->label->productplan = 'Plan|productplan|view|productID=%s'; diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php index 3b3c761ec4..125dfbfd5b 100755 --- a/module/action/lang/zh-cn.php +++ b/module/action/lang/zh-cn.php @@ -654,7 +654,7 @@ $lang->action->dynamicAction->task['confirmed'] = "确认{$lang->SRCo $lang->action->dynamicAction->task['started'] = '开始任务'; $lang->action->dynamicAction->task['finished'] = '完成任务'; $lang->action->dynamicAction->task['recordworkhour'] = '记录工时'; -$lang->action->dynamicAction->task['recordestimate '] = '记录工时'; +$lang->action->dynamicAction->task['recordestimate'] = '记录工时'; $lang->action->dynamicAction->task['editestimate'] = '编辑工时'; $lang->action->dynamicAction->task['deleteestimate'] = '删除工时'; $lang->action->dynamicAction->task['paused'] = '暂停任务'; @@ -824,7 +824,6 @@ $lang->action->dynamicAction->metric['undeleted'] = '还原度量'; $lang->action->dynamicAction->metric['delist'] = '下架度量'; $lang->action->dynamicAction->metric['publish'] = '发布度量'; - /* 用来生成相应对象的链接。*/ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; $lang->action->label->productplan = "计划|productplan|view|productID=%s"; @@ -938,7 +937,7 @@ $lang->action->search->label['linked2kanban'] = $lang->action->label->li $lang->action->search->label['started'] = $lang->action->label->started; $lang->action->search->label['restarted'] = $lang->action->label->restarted; $lang->action->search->label['recordworkhour'] = $lang->action->label->recordworkhour; -$lang->action->search->label['recordestimate '] = $lang->action->label->recordworkhour; +$lang->action->search->label['recordestimate'] = $lang->action->label->recordworkhour; $lang->action->search->label['editestimate'] = $lang->action->label->editestimate; $lang->action->search->label['canceled'] = $lang->action->label->canceled; $lang->action->search->label['finished'] = $lang->action->label->finished; diff --git a/module/aiapp/lang/zh-cn.php b/module/aiapp/lang/zh-cn.php index 9ce20f6919..38ec7682dc 100644 --- a/module/aiapp/lang/zh-cn.php +++ b/module/aiapp/lang/zh-cn.php @@ -23,17 +23,17 @@ $lang->aiapp->deleted = '已删除'; $lang->aiapp->clear = '清空'; $lang->aiapp->modelCurrent = '当前语言模型'; $lang->aiapp->categoryList = array('work' => '工作', 'personal' => '个人', 'life' => '生活', 'creative' => '创意', 'others' => '其它'); +$lang->aiapp->generate = '生成'; $lang->aiapp->regenerate = '重新生成'; $lang->aiapp->emptyNameWarning = '「%s」不能为空'; +$lang->aiapp->chatTip = '请在左侧输入字段内容,生成结果试试吧。'; +$lang->aiapp->noModel = array('尚未配置语言模型,请联系管理员或跳转至后台配置语言模型。', '若已完成相关配置,请尝试重新加载页面。'); $lang->aiapp->clearContext = '上下文内容已清除'; $lang->aiapp->newChatTip = '请在左侧输入字段内容,开启新对话。'; $lang->aiapp->disabledTip = '当前小程序已被禁用。'; -$lang->aiapp->generate = '生成'; -$lang->aiapp->chatTip = '请在左侧输入字段内容,生成结果试试吧。'; -$lang->aiapp->noModel = array('尚未配置语言模型,请联系管理员或跳转至后台配置语言模型。', '若已完成相关配置,请尝试重新加载页面。'); $lang->aiapp->continueasking = '继续追问'; $lang->aiapp->miniProgramSquare = '查看AI小程序列表'; -$lang->aiapp->view = '查看AI小程序详情'; -$lang->aiapp->miniProgramChat = '执行AI小程序'; $lang->aiapp->collectMiniProgram = '收藏AI小程序'; +$lang->aiapp->miniProgramChat = '执行AI小程序'; +$lang->aiapp->view = '查看AI小程序详情'; diff --git a/module/block/lang/de.php b/module/block/lang/de.php index da8cec7bee..62283aeb94 100644 --- a/module/block/lang/de.php +++ b/module/block/lang/de.php @@ -497,7 +497,7 @@ $lang->block->themes['default'] = 'Default'; $lang->block->themes['blue'] = 'Young Blue'; $lang->block->themes['green'] = 'Green'; $lang->block->themes['red'] = 'Red'; -$lang->block->themes['pink'] = 'Pink'; +$lang->block->themes['purple'] = 'Purple'; $lang->block->visionTitle = 'The user interface of ZenTao is divided into 【Full feature interface】 and 【Operation Management Interface】.'; $lang->block->visions['rnd'] = new stdclass(); @@ -524,21 +524,12 @@ $lang->block->welcome->assignToMe = 'AssignToMe'; $lang->block->welcome->reviewList = array(); $lang->block->welcome->reviewList['story'] = 'Story'; -$lang->block->welcome->reviewList['feedback'] = 'Feedback'; -$lang->block->welcome->reviewList['testcase'] = 'Testcase'; $lang->block->welcome->assignList = array(); $lang->block->welcome->assignList['task'] = 'Task'; $lang->block->welcome->assignList['bug'] = 'Bug'; $lang->block->welcome->assignList['story'] = 'SRStroy'; $lang->block->welcome->assignList['testcase'] = 'TestCase'; -$lang->block->welcome->assignList['requirement'] = 'URStory'; -$lang->block->welcome->assignList['testtask'] = 'Testtask'; -$lang->block->welcome->assignList['issue'] = 'Issue'; -$lang->block->welcome->assignList['risk'] = 'Risk'; -$lang->block->welcome->assignList['qa'] = 'QA'; -$lang->block->welcome->assignList['meeting'] = 'Meeting'; -$lang->block->welcome->assignList['feedback'] = 'Feedback'; $lang->block->customModeTip = new stdClass(); $lang->block->customModeTip->common = 'There are 2 running modes of ZenTao: Light Mode and ALM Mode.'; diff --git a/module/block/lang/en.php b/module/block/lang/en.php index 2b372490d1..ef5c4befd2 100644 --- a/module/block/lang/en.php +++ b/module/block/lang/en.php @@ -497,7 +497,7 @@ $lang->block->themes['default'] = 'Default'; $lang->block->themes['blue'] = 'Young Blue'; $lang->block->themes['green'] = 'Green'; $lang->block->themes['red'] = 'Red'; -$lang->block->themes['pink'] = 'Pink'; +$lang->block->themes['purple'] = 'Purple'; $lang->block->visionTitle = 'The user interface of ZenTao is divided into 【Full feature interface】 and 【Operation Management Interface】.'; $lang->block->visions['rnd'] = new stdclass(); @@ -524,21 +524,12 @@ $lang->block->welcome->assignToMe = 'AssignToMe'; $lang->block->welcome->reviewList = array(); $lang->block->welcome->reviewList['story'] = 'Story'; -$lang->block->welcome->reviewList['feedback'] = 'Feedback'; -$lang->block->welcome->reviewList['testcase'] = 'Testcase'; $lang->block->welcome->assignList = array(); $lang->block->welcome->assignList['task'] = 'Task'; $lang->block->welcome->assignList['bug'] = 'Bug'; $lang->block->welcome->assignList['story'] = 'SRStroy'; $lang->block->welcome->assignList['testcase'] = 'TestCase'; -$lang->block->welcome->assignList['requirement'] = 'URStory'; -$lang->block->welcome->assignList['testtask'] = 'Test Request'; -$lang->block->welcome->assignList['issue'] = 'Issue'; -$lang->block->welcome->assignList['risk'] = 'Risk'; -$lang->block->welcome->assignList['qa'] = 'QA'; -$lang->block->welcome->assignList['meeting'] = 'Meeting'; -$lang->block->welcome->assignList['feedback'] = 'Feedback'; $lang->block->customModeTip = new stdClass(); $lang->block->customModeTip->common = 'There are 2 running modes of ZenTao: Light Mode and ALM Mode.'; diff --git a/module/block/lang/fr.php b/module/block/lang/fr.php index 60b702edc5..351753849b 100644 --- a/module/block/lang/fr.php +++ b/module/block/lang/fr.php @@ -497,7 +497,7 @@ $lang->block->themes['default'] = 'Default'; $lang->block->themes['blue'] = 'Young Blue'; $lang->block->themes['green'] = 'Green'; $lang->block->themes['red'] = 'Red'; -$lang->block->themes['pink'] = 'Pink'; +$lang->block->themes['purple'] = 'Purple'; $lang->block->visionTitle = 'The user interface of ZenTao is divided into 【Full feature interface】 and 【Operation Management Interface】.'; $lang->block->visions['rnd'] = new stdclass(); @@ -524,8 +524,6 @@ $lang->block->welcome->assignToMe = 'AssignToMe'; $lang->block->welcome->reviewList = array(); $lang->block->welcome->reviewList['story'] = 'Story'; -$lang->block->welcome->reviewList['feedback'] = 'Feedback'; -$lang->block->welcome->reviewList['testcase'] = 'Testcase'; $lang->block->welcome->assignList = array(); $lang->block->welcome->assignList['task'] = 'Task'; diff --git a/module/bug/lang/de.php b/module/bug/lang/de.php index de1967c286..71b86431ce 100644 --- a/module/bug/lang/de.php +++ b/module/bug/lang/de.php @@ -398,10 +398,10 @@ $lang->bug->featureBar['browse']['unclosed'] = $lang->bug->unclosed; $lang->bug->featureBar['browse']['openedbyme'] = $lang->bug->openedByMe; $lang->bug->featureBar['browse']['assigntome'] = $lang->bug->assignToMe; $lang->bug->featureBar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe; +$lang->bug->featureBar['browse']['assignedbyme'] = $lang->bug->assignedByMe; $lang->bug->featureBar['browse']['more'] = $lang->more; $lang->bug->moreSelects['browse']['more']['unresolved'] = $lang->bug->unResolved; -$lang->bug->moreSelects['browse']['more']['assignedbyme'] = $lang->bug->assignedByMe; $lang->bug->moreSelects['browse']['more']['unconfirmed'] = $lang->bug->unconfirmed; $lang->bug->moreSelects['browse']['more']['assigntonull'] = $lang->bug->assignToNull; $lang->bug->moreSelects['browse']['more']['longlifebugs'] = $lang->bug->longLifeBugs; diff --git a/module/bug/lang/en.php b/module/bug/lang/en.php index 9c3d311730..1c9bd860a6 100644 --- a/module/bug/lang/en.php +++ b/module/bug/lang/en.php @@ -398,10 +398,10 @@ $lang->bug->featureBar['browse']['unclosed'] = $lang->bug->unclosed; $lang->bug->featureBar['browse']['openedbyme'] = $lang->bug->openedByMe; $lang->bug->featureBar['browse']['assigntome'] = $lang->bug->assignToMe; $lang->bug->featureBar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe; +$lang->bug->featureBar['browse']['assignedbyme'] = $lang->bug->assignedByMe; $lang->bug->featureBar['browse']['more'] = $lang->more; $lang->bug->moreSelects['browse']['more']['unresolved'] = $lang->bug->unResolved; -$lang->bug->moreSelects['browse']['more']['assignedbyme'] = $lang->bug->assignedByMe; $lang->bug->moreSelects['browse']['more']['unconfirmed'] = $lang->bug->unconfirmed; $lang->bug->moreSelects['browse']['more']['assigntonull'] = $lang->bug->assignToNull; $lang->bug->moreSelects['browse']['more']['longlifebugs'] = $lang->bug->longLifeBugs; diff --git a/module/bug/lang/fr.php b/module/bug/lang/fr.php index e5f71100d2..46cac99a10 100644 --- a/module/bug/lang/fr.php +++ b/module/bug/lang/fr.php @@ -398,10 +398,10 @@ $lang->bug->featureBar['browse']['unclosed'] = $lang->bug->unclosed; $lang->bug->featureBar['browse']['openedbyme'] = $lang->bug->openedByMe; $lang->bug->featureBar['browse']['assigntome'] = $lang->bug->assignToMe; $lang->bug->featureBar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe; +$lang->bug->featureBar['browse']['assignedbyme'] = $lang->bug->assignedByMe; $lang->bug->featureBar['browse']['more'] = $lang->more; $lang->bug->moreSelects['browse']['more']['unresolved'] = $lang->bug->unResolved; -$lang->bug->moreSelects['browse']['more']['assignedbyme'] = $lang->bug->assignedByMe; $lang->bug->moreSelects['browse']['more']['unconfirmed'] = $lang->bug->unconfirmed; $lang->bug->moreSelects['browse']['more']['assigntonull'] = $lang->bug->assignToNull; $lang->bug->moreSelects['browse']['more']['longlifebugs'] = $lang->bug->longLifeBugs; diff --git a/module/chart/lang/de.php b/module/chart/lang/de.php index 65cf8903e7..04c2ad8207 100644 --- a/module/chart/lang/de.php +++ b/module/chart/lang/de.php @@ -25,6 +25,9 @@ $lang->chart->noChart = 'No Chart'; $lang->chart->noChartSelected = 'Please select one chart.'; $lang->chart->chartMaxChecked = 'You can only select up to %s charts.'; +$lang->chart->featureBar = array(); +$lang->chart->featureBar['preview'] = array(); + $lang->chart->aggList = array(); $lang->chart->aggList['count'] = 'Count'; $lang->chart->aggList['distinct'] = 'Count after distinct'; diff --git a/module/chart/lang/en.php b/module/chart/lang/en.php index 65cf8903e7..04c2ad8207 100644 --- a/module/chart/lang/en.php +++ b/module/chart/lang/en.php @@ -25,6 +25,9 @@ $lang->chart->noChart = 'No Chart'; $lang->chart->noChartSelected = 'Please select one chart.'; $lang->chart->chartMaxChecked = 'You can only select up to %s charts.'; +$lang->chart->featureBar = array(); +$lang->chart->featureBar['preview'] = array(); + $lang->chart->aggList = array(); $lang->chart->aggList['count'] = 'Count'; $lang->chart->aggList['distinct'] = 'Count after distinct'; diff --git a/module/chart/lang/fr.php b/module/chart/lang/fr.php index 65cf8903e7..04c2ad8207 100644 --- a/module/chart/lang/fr.php +++ b/module/chart/lang/fr.php @@ -25,6 +25,9 @@ $lang->chart->noChart = 'No Chart'; $lang->chart->noChartSelected = 'Please select one chart.'; $lang->chart->chartMaxChecked = 'You can only select up to %s charts.'; +$lang->chart->featureBar = array(); +$lang->chart->featureBar['preview'] = array(); + $lang->chart->aggList = array(); $lang->chart->aggList['count'] = 'Count'; $lang->chart->aggList['distinct'] = 'Count after distinct'; diff --git a/module/common/lang/de.php b/module/common/lang/de.php index 2c3222683b..3a4ff109c2 100644 --- a/module/common/lang/de.php +++ b/module/common/lang/de.php @@ -118,9 +118,9 @@ $lang->showMoreInfo = 'Display more information'; $lang->hideMoreInfo = 'Hide more information'; $lang->saveSuccess = 'Gespeichert'; $lang->importSuccess = 'Gespeichert'; -$lang->deleteSuccess = 'Gelöscht'; $lang->fail = 'Fehlgeschlagen'; $lang->addFiles = 'Hinzufügen '; +$lang->deleteSuccess = 'Gelöscht'; $lang->files = 'Datei '; $lang->pasteText = 'Einfügen'; $lang->uploadImages = 'Hochladen'; @@ -144,9 +144,6 @@ $lang->noticeOkFile = 'Aus Sicherheitsgrü nden muss Ihr Adminkonto bestätig $lang->noticeDrag = 'Click to add or drag to upload, no more than %s'; $lang->allProgress = 'All Progress'; -$lang->fieldDisplaySetting = 'Einstellungen der Feldanzeige'; -$lang->fieldSettingTip = 'Die folgenden Felder sind standardmäßig eingeklappt, klicken Sie auf die Schaltfläche "Weitere Felder anzeigen", um die Ansicht zu erweitern. Wenn Sie möchten, dass einige Felder nicht standardmäßig eingeklappt sind, können Sie dies mit einem Stift festlegen.'; - $lang->fieldDisplaySetting = 'Field Display Setting'; $lang->fieldSettingTip = 'The following fields are collapsed by default, click on the "Show more fields" button to expand the view, if you want some fields not to be collapsed by default, you can fix it with a pin.'; diff --git a/module/common/lang/en.php b/module/common/lang/en.php index 2de807048a..a3f41ced68 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -120,6 +120,7 @@ $lang->saveSuccess = 'Saved'; $lang->importSuccess = 'Saved'; $lang->fail = 'Fail'; $lang->addFiles = 'Added Files '; +$lang->deleteSuccess = 'Deleted Success'; $lang->files = 'Files '; $lang->pasteText = 'Multi-line Paste'; $lang->uploadImages = 'Multi-image Upload'; diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php index 6426175a70..6c23835d55 100644 --- a/module/common/lang/fr.php +++ b/module/common/lang/fr.php @@ -118,9 +118,9 @@ $lang->showMoreInfo = 'Display more information'; $lang->hideMoreInfo = 'Hide more information'; $lang->saveSuccess = 'Sauvegardé'; $lang->importSuccess = 'Sauvé'; -$lang->deleteSuccess = 'Supprimé'; $lang->fail = 'Echec'; $lang->addFiles = 'Fichiers ajoutés '; +$lang->deleteSuccess = 'Supprimé'; $lang->files = 'Fichiers '; $lang->pasteText = 'Collage Multi-lignes'; $lang->uploadImages = 'Upload Multi-images'; @@ -144,9 +144,6 @@ $lang->noticeOkFile = 'For security reasons, your Admin account has to be con $lang->noticeDrag = 'Click to add or drag to upload, no more than %s'; $lang->allProgress = 'All Progress'; -$lang->fieldDisplaySetting = 'Paramètres d\'affichage des champs'; -$lang->fieldSettingTip = 'Les champs suivants sont réduits par défaut, cliquez sur le bouton "Afficher plus de champs" pour développer la vue. Si vous souhaitez que certains champs ne soient pas réduits par défaut, vous pouvez les fixer avec une épingle.'; - $lang->fieldDisplaySetting = 'Field Display Setting'; $lang->fieldSettingTip = 'The following fields are collapsed by default, click on the "Show more fields" button to expand the view, if you want some fields not to be collapsed by default, you can fix it with a pin.'; diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 13fd5ea678..4f99160060 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -118,9 +118,9 @@ $lang->showMoreInfo = '显示更多信息'; $lang->hideMoreInfo = '隐藏更多信息'; $lang->saveSuccess = '保存成功'; $lang->importSuccess = '导入成功'; -$lang->deleteSuccess = '删除成功'; $lang->fail = '失败'; $lang->addFiles = '上传了附件 '; +$lang->deleteSuccess = '删除成功'; $lang->files = '附件 '; $lang->pasteText = '多项录入'; $lang->uploadImages = '多图上传 '; diff --git a/module/cron/lang/de.php b/module/cron/lang/de.php index e6d155f0d8..552a1eb2ee 100644 --- a/module/cron/lang/de.php +++ b/module/cron/lang/de.php @@ -56,3 +56,4 @@ $lang->cron->notice->mon = 'Bereich:1-12'; $lang->cron->notice->dow = 'Bereich:0-6'; $lang->cron->notice->help = 'Hinweis:nach einem Server Neustart oder wenn die geplanten Tasks nicht funktionieren, bedeutet das, dass die Aufgaben nicht ausgeführt werden. Sie können die Aufgaben neustarten indem Sie 【Neustart】 klicken oder diese Seite neu laden. Wenn sich die Zeit der letzen Ausführung ändert, beduetet das, dass die geplanten Tasks funktionieren.'; $lang->cron->notice->errorRule = '"%s" ist nicht gültig'; +$lang->cron->notice->errorType = 'You cannot create scheduled tasks of operating system command types'; diff --git a/module/cron/lang/fr.php b/module/cron/lang/fr.php index 73a87a44b8..b8af029826 100644 --- a/module/cron/lang/fr.php +++ b/module/cron/lang/fr.php @@ -56,3 +56,4 @@ $lang->cron->notice->mon = 'Range:1-12'; $lang->cron->notice->dow = 'Range:0-6'; $lang->cron->notice->help = "Note : Si le serveur est redémarré ou que le Cron ne fonctionne pas, cela signifie que le Cron s'est arrêté. Vous pouvez le redémarrer en cliquant sur 【Restart】 ou en rafraichissant cette page. Si la dernière heure d'exécution est modifiée, cela signifie que le Cron est en cours d'exécution."; $lang->cron->notice->errorRule = '"%s" invalide'; +$lang->cron->notice->errorType = 'You cannot create scheduled tasks of operating system command types'; diff --git a/module/cron/lang/zh-cn.php b/module/cron/lang/zh-cn.php index c0a5e5bce4..e95615ef8e 100644 --- a/module/cron/lang/zh-cn.php +++ b/module/cron/lang/zh-cn.php @@ -43,6 +43,7 @@ $lang->cron->confirmTurnon = '是否关闭计划任务?'; $lang->cron->introduction = <<计划任务功能可以定时执行诸如更新燃尽图、备份等操作,免除自己布置计划任务。

EOD; + $lang->cron->confirmOpen = <<是否开启该功能?打开计划任务

EOD; diff --git a/module/extension/lang/de.php b/module/extension/lang/de.php index b58b81b4b2..38b8e4231c 100644 --- a/module/extension/lang/de.php +++ b/module/extension/lang/de.php @@ -74,6 +74,10 @@ $lang->extension->byUpdatedTime = 'Zuletzt bearbeitet'; $lang->extension->bySearch = 'Suche'; $lang->extension->byCategory = 'Kategorie'; +$lang->extension->featureBar['browse']['installed'] = $lang->extension->installed; +$lang->extension->featureBar['browse']['deactivated'] = $lang->extension->deactivated; +$lang->extension->featureBar['browse']['available'] = $lang->extension->available; + $lang->extension->installFailed = '%s fehlgeschlagen. Error:'; $lang->extension->uninstallFailed = 'Deinstallation fehlgeschlagen. Error:'; $lang->extension->confirmUninstall = 'Deinstallation der Erweiterung führt zur Anpassung der Datenbank. Möchten Sie deinstallieren?'; diff --git a/module/extension/lang/en.php b/module/extension/lang/en.php index bf57f97c6c..8d6978cd84 100644 --- a/module/extension/lang/en.php +++ b/module/extension/lang/en.php @@ -74,6 +74,10 @@ $lang->extension->byUpdatedTime = 'Latest Update'; $lang->extension->bySearch = 'Search'; $lang->extension->byCategory = 'Category'; +$lang->extension->featureBar['browse']['installed'] = $lang->extension->installed; +$lang->extension->featureBar['browse']['deactivated'] = $lang->extension->deactivated; +$lang->extension->featureBar['browse']['available'] = $lang->extension->available; + $lang->extension->installFailed = '%s failed. Error:'; $lang->extension->uninstallFailed = 'Uninstallation failed. Error:'; $lang->extension->confirmUninstall = 'Uninstallation will delete or change related database. Do you want to uninstall it?'; diff --git a/module/extension/lang/fr.php b/module/extension/lang/fr.php index b618c5cecf..13e013e7be 100644 --- a/module/extension/lang/fr.php +++ b/module/extension/lang/fr.php @@ -74,6 +74,10 @@ $lang->extension->byUpdatedTime = 'Dernier Update'; $lang->extension->bySearch = 'Rechercher'; $lang->extension->byCategory = 'Category'; +$lang->extension->featureBar['browse']['installed'] = $lang->extension->installed; +$lang->extension->featureBar['browse']['deactivated'] = $lang->extension->deactivated; +$lang->extension->featureBar['browse']['available'] = $lang->extension->available; + $lang->extension->installFailed = '%s a échoué. Erreur:'; $lang->extension->uninstallFailed = 'Echec de désinstallation. Erreur:'; $lang->extension->confirmUninstall = 'La désinstallation va supprimer ou changer la base de données. Voulez-vous la désinstaller malgré tout ?'; diff --git a/module/file/lang/zh-cn.php b/module/file/lang/zh-cn.php index 450d859356..bbf772f11e 100755 --- a/module/file/lang/zh-cn.php +++ b/module/file/lang/zh-cn.php @@ -70,6 +70,7 @@ $lang->file->errorFileSize = " 文件大小已经超过%s,可能不能成 $lang->file->errorFileUpload = " 文件上传失败,文件大小可能超出限制"; $lang->file->errorFileFormate = " 文件上传失败,文件格式不在规定范围内"; $lang->file->errorFileMove = " 文件上传失败,移动文件时出错"; +$lang->file->errorFileCount = " 只能上传 %s 个文件,超出数量限制的文件无法上传。"; $lang->file->dangerFile = " 您选择的文件存在安全风险,系统将不予上传。"; $lang->file->errorSuffix = '压缩包格式错误,只能上传zip压缩包!'; $lang->file->errorExtract = '解压缩失败!可能文件已经损坏,或压缩包里含有非法上传文件。'; @@ -77,7 +78,6 @@ $lang->file->errorUploadEmpty = '没有等待上传的文件'; $lang->file->fileNotFound = '未找到该文件,可能物理文件已被删除!'; $lang->file->fileContentEmpty = '上传文件内容为空,请检查后重新上传。'; $lang->file->bizGuide = '如需使用Excel导入导出功能,可升级到 %s'; -$lang->file->errorFileCount = " 只能上传 %s 个文件,超出数量限制的文件无法上传。"; $lang->file->uploadError[1] = "上传的文件大小超过了限制,请修改 php.ini 中 upload_max_filesize 与 post_max_size 选项限制的值"; $lang->file->uploadError[2] = '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值'; diff --git a/module/group/lang/fr.php b/module/group/lang/fr.php index d7c9f55598..14d6dd13e1 100644 --- a/module/group/lang/fr.php +++ b/module/group/lang/fr.php @@ -317,7 +317,7 @@ $lang->group->package->exportOffice = 'Export Office'; $lang->group->package->browseFeedback = 'Browse Feedback'; $lang->group->package->manageFeedback = 'Manage Feedback'; $lang->group->package->importFeedback = 'Import Feedback'; -$lang->group->package->handleFeedback = 'Handle Feedback'; +$lang->group->package->manageFeedback = 'Manage Feedback'; $lang->group->package->faq = 'Faq'; $lang->group->package->browseTicket = 'Browse Ticket'; $lang->group->package->manageTicket = 'Manage Ticket'; @@ -592,6 +592,5 @@ $lang->group->package->deleteArtifactrepo = 'Delete Artifact Repo'; $lang->group->package->browseApplication = 'Application List'; $lang->group->package->mangeApplication = 'Manage Application'; $lang->group->package->trainPracticeLib = 'Practice Library'; -$lang->group->package->other = 'Other'; include (dirname(__FILE__) . '/resource.php'); diff --git a/module/program/lang/de.php b/module/program/lang/de.php index d58229a36b..09b0f174f8 100644 --- a/module/program/lang/de.php +++ b/module/program/lang/de.php @@ -190,7 +190,6 @@ $lang->program->featureBar['project']['closed'] = 'Closed'; $lang->program->featureBar['productview']['all'] = 'All'; $lang->program->featureBar['productview']['unclosed'] = 'Unclosed'; -$lang->program->featureBar['productview']['end'] = 'End'; $lang->program->featureBar['productview']['wait'] = 'Waiting'; $lang->program->featureBar['productview']['doing'] = 'Doing'; $lang->program->featureBar['productview']['more'] = $lang->more; @@ -220,7 +219,7 @@ $lang->program->project = 'Projects'; $lang->program->totalBugs = 'Total Bugs'; $lang->program->latestReleaseDate = 'Latest Release Date'; $lang->program->latestRelease = 'Latest Release'; -$lang->program->manageLine = 'Verwalte Produktlinie'; +$lang->program->manageLine = 'Manage Product Line'; $lang->program->checkedProducts = '%total%  products selected.'; $lang->program->programBudget = 'Program Budget'; diff --git a/module/program/lang/en.php b/module/program/lang/en.php index f7cf7eb214..e51ebf02e7 100644 --- a/module/program/lang/en.php +++ b/module/program/lang/en.php @@ -190,7 +190,6 @@ $lang->program->featureBar['project']['closed'] = 'Closed'; $lang->program->featureBar['productview']['all'] = 'All'; $lang->program->featureBar['productview']['unclosed'] = 'Unclosed'; -$lang->program->featureBar['productview']['end'] = 'End'; $lang->program->featureBar['productview']['wait'] = 'Waiting'; $lang->program->featureBar['productview']['doing'] = 'Doing'; $lang->program->featureBar['productview']['more'] = $lang->more; diff --git a/module/program/lang/fr.php b/module/program/lang/fr.php index e1891f8c5f..0919507797 100644 --- a/module/program/lang/fr.php +++ b/module/program/lang/fr.php @@ -190,7 +190,6 @@ $lang->program->featureBar['project']['closed'] = 'Fermées'; $lang->program->featureBar['productview']['all'] = 'All'; $lang->program->featureBar['productview']['unclosed'] = 'Unclosed'; -$lang->program->featureBar['productview']['end'] = 'End'; $lang->program->featureBar['productview']['wait'] = 'Waiting'; $lang->program->featureBar['productview']['doing'] = 'Doing'; $lang->program->featureBar['productview']['more'] = $lang->more; @@ -220,7 +219,7 @@ $lang->program->project = 'Projects'; $lang->program->totalBugs = 'Total Bugs'; $lang->program->latestReleaseDate = 'Latest Release Date'; $lang->program->latestRelease = 'Latest Release'; -$lang->program->manageLine = 'Gérer Ligne Produit'; +$lang->program->manageLine = 'Manage Product Line'; $lang->program->checkedProducts = '%total%  products selected.'; $lang->program->programBudget = 'Program Budget'; diff --git a/module/project/lang/de.php b/module/project/lang/de.php index 10ef663be2..4036479ef5 100644 --- a/module/project/lang/de.php +++ b/module/project/lang/de.php @@ -47,6 +47,7 @@ $lang->project->unbindWhitelist = "{$lang->projectCommon} Remove Whitelist"; $lang->project->manageProducts = "Manage {$lang->productCommon}s"; $lang->project->manageOtherProducts = "Manage Other {$lang->productCommon}s"; $lang->project->manageProductPlan = "Manage {$lang->productCommon}s And Plans"; +$lang->project->managePlans = 'Manage Plans'; $lang->project->copyTitle = "Please select an {$lang->projectCommon} to copy"; $lang->project->errorSameProducts = "{$lang->projectCommon} cannot be associated with multiple identical {$lang->productCommon}s."; $lang->project->errorSameBranches = "{$lang->projectCommon} cannot be associated with multiple identical branches."; @@ -147,6 +148,7 @@ $lang->project->estimate = 'Estimates'; $lang->project->consume = 'Cost'; $lang->project->surplus = 'Left'; $lang->project->progress = 'Progress'; +$lang->project->allProgress = 'All Progress'; $lang->project->weekProgress = 'This Week Progress'; $lang->project->dateRange = 'Plan Duration'; $lang->project->to = ' to '; @@ -172,7 +174,6 @@ $lang->project->leftHours = 'Left Hours'; $lang->project->children = "Child {$lang->projectCommon}"; $lang->project->parent = 'Parent Program'; $lang->project->allStories = 'All Stories'; -$lang->project->allProgress = 'All Progress'; $lang->project->doneStories = 'Finished Stories'; $lang->project->doneProjects = 'Finished'; $lang->project->allInput = 'Total Input'; @@ -248,14 +249,6 @@ $lang->project->allSummary = "Total {$lang->projectCommon}s: %s, Wai $lang->project->checkedSummary = 'Seleted: %total%.'; $lang->project->checkedAllSummary = 'Seleted: %total%, Wait: %wait%, Doing: %doing%, Suspended: %suspended%, Closed: %closed%.'; -$lang->project->tip = new stdclass(); -$lang->project->tip->closed = 'The project has been closed. Re-close is not available.'; -$lang->project->tip->notSuspend = 'The project has been closed. Suspend is not available.'; -$lang->project->tip->suspended = 'The project has been suspended. Re-suspend is not available.'; -$lang->project->tip->actived = 'The project has been activated. Re-activated is not available.'; -$lang->project->tip->group = "It's a Kanban project. Editing privilege group is not available."; -$lang->project->tip->whitelist = "It's a public project with open permissions. No need to edit whitelists."; - $lang->project->error = new stdclass(); $lang->project->error->existProductName = "{$lang->productCommon} name already exists."; $lang->project->error->budgetGe0 = '『Budget』must be greater than or equal to 0.'; @@ -264,6 +257,14 @@ $lang->project->error->productNotEmpty = "Please link {$lang->productCommon}s o $lang->project->error->emptyBranch = 'Branch can not be empty!'; $lang->project->error->endLessBegin = 'The end date must be greater than the start date.'; +$lang->project->tip = new stdclass(); +$lang->project->tip->closed = 'The project has been closed. Re-close is not available.'; +$lang->project->tip->notSuspend = 'The project has been closed. Suspend is not available.'; +$lang->project->tip->suspended = 'The project has been suspended. Re-suspend is not available.'; +$lang->project->tip->actived = 'The project has been activated. Re-activated is not available.'; +$lang->project->tip->group = "It's a Kanban project. Editing privilege group is not available."; +$lang->project->tip->whitelist = "It's a public project with open permissions. No need to edit whitelists."; + $lang->project->tenThousand = 'Ten Thousand'; $lang->project->hundredMillion = 'Hundred Million'; @@ -350,6 +351,10 @@ $lang->project->multipleList['0'] = 'No'; $lang->project->acls['private'] = 'Private'; $lang->project->acls['open'] = 'Open'; +$lang->project->shortAclList['open'] = 'Open'; +$lang->project->shortAclList['private'] = 'Private'; +$lang->project->shortAclList['program'] = 'Open within the program'; + $lang->project->subAclList['open'] = "Open (accessible with {$lang->projectCommon} view permissions)"; $lang->project->subAclList['private'] = "Private (Only the {$lang->projectCommon} leader, team members and stakeholders can access)"; $lang->project->subAclList['program'] = "Open in the program (all upper-level program team leaders and stakeholders, the {$lang->projectCommon} leader, team members and stakeholders can access)"; diff --git a/module/project/lang/en.php b/module/project/lang/en.php index 00aa92c39c..4036479ef5 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -47,6 +47,7 @@ $lang->project->unbindWhitelist = "{$lang->projectCommon} Remove Whitelist"; $lang->project->manageProducts = "Manage {$lang->productCommon}s"; $lang->project->manageOtherProducts = "Manage Other {$lang->productCommon}s"; $lang->project->manageProductPlan = "Manage {$lang->productCommon}s And Plans"; +$lang->project->managePlans = 'Manage Plans'; $lang->project->copyTitle = "Please select an {$lang->projectCommon} to copy"; $lang->project->errorSameProducts = "{$lang->projectCommon} cannot be associated with multiple identical {$lang->productCommon}s."; $lang->project->errorSameBranches = "{$lang->projectCommon} cannot be associated with multiple identical branches."; @@ -248,14 +249,6 @@ $lang->project->allSummary = "Total {$lang->projectCommon}s: %s, Wai $lang->project->checkedSummary = 'Seleted: %total%.'; $lang->project->checkedAllSummary = 'Seleted: %total%, Wait: %wait%, Doing: %doing%, Suspended: %suspended%, Closed: %closed%.'; -$lang->project->tip = new stdclass(); -$lang->project->tip->closed = 'The project has been closed. Re-close is not available.'; -$lang->project->tip->notSuspend = 'The project has been closed. Suspend is not available.'; -$lang->project->tip->suspended = 'The project has been suspended. Re-suspend is not available.'; -$lang->project->tip->actived = 'The project has been activated. Re-activated is not available.'; -$lang->project->tip->group = "It's a Kanban project. Editing privilege group is not available."; -$lang->project->tip->whitelist = "It's a public project with open permissions. No need to edit whitelists."; - $lang->project->error = new stdclass(); $lang->project->error->existProductName = "{$lang->productCommon} name already exists."; $lang->project->error->budgetGe0 = '『Budget』must be greater than or equal to 0.'; @@ -264,6 +257,14 @@ $lang->project->error->productNotEmpty = "Please link {$lang->productCommon}s o $lang->project->error->emptyBranch = 'Branch can not be empty!'; $lang->project->error->endLessBegin = 'The end date must be greater than the start date.'; +$lang->project->tip = new stdclass(); +$lang->project->tip->closed = 'The project has been closed. Re-close is not available.'; +$lang->project->tip->notSuspend = 'The project has been closed. Suspend is not available.'; +$lang->project->tip->suspended = 'The project has been suspended. Re-suspend is not available.'; +$lang->project->tip->actived = 'The project has been activated. Re-activated is not available.'; +$lang->project->tip->group = "It's a Kanban project. Editing privilege group is not available."; +$lang->project->tip->whitelist = "It's a public project with open permissions. No need to edit whitelists."; + $lang->project->tenThousand = 'Ten Thousand'; $lang->project->hundredMillion = 'Hundred Million'; diff --git a/module/project/lang/fr.php b/module/project/lang/fr.php index 5cb2cdbb95..4036479ef5 100644 --- a/module/project/lang/fr.php +++ b/module/project/lang/fr.php @@ -47,6 +47,7 @@ $lang->project->unbindWhitelist = "{$lang->projectCommon} Remove Whitelist"; $lang->project->manageProducts = "Manage {$lang->productCommon}s"; $lang->project->manageOtherProducts = "Manage Other {$lang->productCommon}s"; $lang->project->manageProductPlan = "Manage {$lang->productCommon}s And Plans"; +$lang->project->managePlans = 'Manage Plans'; $lang->project->copyTitle = "Please select an {$lang->projectCommon} to copy"; $lang->project->errorSameProducts = "{$lang->projectCommon} cannot be associated with multiple identical {$lang->productCommon}s."; $lang->project->errorSameBranches = "{$lang->projectCommon} cannot be associated with multiple identical branches."; @@ -147,6 +148,7 @@ $lang->project->estimate = 'Estimates'; $lang->project->consume = 'Cost'; $lang->project->surplus = 'Left'; $lang->project->progress = 'Progress'; +$lang->project->allProgress = 'All Progress'; $lang->project->weekProgress = 'This Week Progress'; $lang->project->dateRange = 'Plan Duration'; $lang->project->to = ' to '; @@ -172,7 +174,6 @@ $lang->project->leftHours = 'Left Hours'; $lang->project->children = "Child {$lang->projectCommon}"; $lang->project->parent = 'Parent Program'; $lang->project->allStories = 'All Stories'; -$lang->project->allProgress = 'All Progress'; $lang->project->doneStories = 'Finished Stories'; $lang->project->doneProjects = 'Finished'; $lang->project->allInput = 'Total Input'; @@ -213,7 +214,7 @@ $lang->project->typeList = array(); $lang->project->typeList['my'] = "{$lang->projectCommon}s Ownedbyme"; $lang->project->typeList['other'] = "Other {$lang->projectCommon}s"; -$lang->project->stageByList['product'] = "Create by {$lang->projectCommon}"; +$lang->project->stageByList['project'] = "Create by {$lang->projectCommon}"; $lang->project->stageByList['product'] = "Create by {$lang->productCommon}"; $lang->project->stageBySwitchList['0'] = 'Close'; @@ -248,14 +249,6 @@ $lang->project->allSummary = "Total {$lang->projectCommon}s: %s, Wai $lang->project->checkedSummary = 'Seleted: %total%.'; $lang->project->checkedAllSummary = 'Seleted: %total%, Wait: %wait%, Doing: %doing%, Suspended: %suspended%, Closed: %closed%.'; -$lang->project->tip = new stdclass(); -$lang->project->tip->closed = 'The project has been closed. Re-close is not available.'; -$lang->project->tip->notSuspend = 'The project has been closed. Suspend is not available.'; -$lang->project->tip->suspended = 'The project has been suspended. Re-suspend is not available.'; -$lang->project->tip->actived = 'The project has been activated. Re-activated is not available.'; -$lang->project->tip->group = "It's a Kanban project. Editing privilege group is not available."; -$lang->project->tip->whitelist = "It's a public project with open permissions. No need to edit whitelists."; - $lang->project->error = new stdclass(); $lang->project->error->existProductName = "{$lang->productCommon} name already exists."; $lang->project->error->budgetGe0 = '『Budget』must be greater than or equal to 0.'; @@ -264,6 +257,14 @@ $lang->project->error->productNotEmpty = "Please link {$lang->productCommon}s o $lang->project->error->emptyBranch = 'Branch can not be empty!'; $lang->project->error->endLessBegin = 'The end date must be greater than the start date.'; +$lang->project->tip = new stdclass(); +$lang->project->tip->closed = 'The project has been closed. Re-close is not available.'; +$lang->project->tip->notSuspend = 'The project has been closed. Suspend is not available.'; +$lang->project->tip->suspended = 'The project has been suspended. Re-suspend is not available.'; +$lang->project->tip->actived = 'The project has been activated. Re-activated is not available.'; +$lang->project->tip->group = "It's a Kanban project. Editing privilege group is not available."; +$lang->project->tip->whitelist = "It's a public project with open permissions. No need to edit whitelists."; + $lang->project->tenThousand = 'Ten Thousand'; $lang->project->hundredMillion = 'Hundred Million'; @@ -350,6 +351,10 @@ $lang->project->multipleList['0'] = 'No'; $lang->project->acls['private'] = 'Private'; $lang->project->acls['open'] = 'Open'; +$lang->project->shortAclList['open'] = 'Open'; +$lang->project->shortAclList['private'] = 'Private'; +$lang->project->shortAclList['program'] = 'Open within the program'; + $lang->project->subAclList['open'] = "Open (accessible with {$lang->projectCommon} view permissions)"; $lang->project->subAclList['private'] = "Private (Only the {$lang->projectCommon} leader, team members and stakeholders can access)"; $lang->project->subAclList['program'] = "Open in the program (all upper-level program team leaders and stakeholders, the {$lang->projectCommon} leader, team members and stakeholders can access)"; diff --git a/module/release/lang/de.php b/module/release/lang/de.php index d1d6fa8299..661b1471fc 100644 --- a/module/release/lang/de.php +++ b/module/release/lang/de.php @@ -28,9 +28,9 @@ $lang->release->confirmUnlinkStory = 'Möchten Sie diese Story löschen?'; $lang->release->confirmUnlinkBug = 'Möchten Sie diesen Bug löschen?'; $lang->release->existBuild = '『Build』『%s』 existiert bereits. Sie können den 『name』 ändern oder ein anderes 『build』 wählen.'; $lang->release->noRelease = 'Keine Releases. '; +$lang->release->errorDate = 'The release date should not be greater than today.'; $lang->release->confirmActivate = 'Do you want to activate this release?'; $lang->release->confirmTerminate = 'Do you want to pause this release?'; -$lang->release->errorDate = 'The release date should not be greater than today.'; $lang->release->basicInfo = 'Basis Info'; diff --git a/module/score/lang/fr.php b/module/score/lang/fr.php index 10bf2dfd9e..28e2d27f15 100644 --- a/module/score/lang/fr.php +++ b/module/score/lang/fr.php @@ -65,7 +65,7 @@ $lang->score->methods['todo']['create'] = 'Cr?er Entr?e Agenda'; $lang->score->methods['story']['create'] = 'Cr?er Story'; $lang->score->methods['story']['close'] = 'Fermer Story'; $lang->score->methods['bug']['create'] = 'Signaler un Bug'; -$lang->score->methods['bug']['confirmBug'] = 'Confirmer Bug'; +$lang->score->methods['bug']['confirm'] = 'Confirmer Bug'; $lang->score->methods['bug']['createFormCase'] = 'Cr?er Formulaire Bug'; $lang->score->methods['bug']['resolve'] = 'R?soudre Bug'; $lang->score->methods['bug']['saveTplModal'] = 'Sauver Mod?le'; @@ -83,7 +83,7 @@ $lang->score->methods['search']['saveQueryAdvanced'] = 'Recherche Avanc?e'; $lang->score->extended['user']['changePassword'] = "Obtenez ##strength,1## points, si le mot de passe est moyen. Obtenez ##strength,2## points, s'il est fort."; $lang->score->extended['execution']['close'] = "Apr?s que le projet soit ferm?, le Project Manager obtient ##manager,close## points et les membres de l'?quipe obtiennent ##member,close## points. S'il a ?t? r?alis? dans les temps ou plus vite, le Project Manager obtient ##manager,onTime## points et les membres de l'?quipe obtiennent ##member,onTime## points."; $lang->score->extended['bug']['resolve'] = 'Apr?s un bug r?solu, obtenez des extra-points en fonction de sa s?v?rit?. S1, + ##severity,3##; S2 + ##severity,2##, S3 + ##severity,1##.'; -$lang->score->extended['bug']['confirmBug'] = 'Apr?s un bug confirm?, obtenez des extra-points en fonction de sa s?v?rit?. S1, + ##severity,3##; S2 + ##severity,2##, S3 + ##severity,1##.'; +$lang->score->extended['bug']['confirm'] = 'Apr?s un bug confirm?, obtenez des extra-points en fonction de sa s?v?rit?. S1, + ##severity,3##; S2 + ##severity,2##, S3 + ##severity,1##.'; $lang->score->extended['task']['finish'] = 'Apr?s une t?che accomplie, obtenez des extra-points par arrondi(heures-homme / 10 Estim?s / Co?t) + Points de Priorit? (p1 ##pri,1##, p2 ##pri,2##).'; $lang->score->extended['story']['close'] = "Apr?s la fermeture d'une Story, son cr?ateur recevra extra ##createID## points."; diff --git a/module/testcase/lang/de.php b/module/testcase/lang/de.php index e87b0a4c45..2e2f2137b9 100644 --- a/module/testcase/lang/de.php +++ b/module/testcase/lang/de.php @@ -203,15 +203,13 @@ $lang->testcase->ditto = 'Dito'; $lang->testcase->dittoNotice = "This Case is not linked to the {$lang->productCommon} as the last one is!"; $lang->testcase->confirmUnlinkTesttask = 'The case [%s] is already associated in the testtask order of the previous branch/platform, after adjusting the branch/platform, it will be removed from the test list of the previous branch/platform, please confirm whether to continue to modify.'; -$lang->testcase->reviewList[0] = 'Nein'; -$lang->testcase->reviewList[1] = 'Ja'; - -$lang->testcase->autoList = array(); $lang->testcase->autoList[''] = ''; $lang->testcase->autoList['auto'] = 'Yes'; $lang->testcase->autoList['no'] = 'No'; -$lang->testcase->priList[0] = ''; +$lang->testcase->reviewList[0] = '否'; +$lang->testcase->reviewList[1] = '是'; + $lang->testcase->priList[3] = 3; $lang->testcase->priList[1] = 1; $lang->testcase->priList[2] = 2; @@ -314,18 +312,19 @@ $lang->testcase->settingCase = 'Testcase'; $lang->testcase->settingPri = 'Priority'; $lang->testcase->settingGroup = 'Step Group'; -$lang->testcase->caseNotExist = 'The test case in the imported file was not recognized and the import failed'; -$lang->testcase->saveFail = 'Save failed'; -$lang->testcase->set2Scene = 'Set as Scene'; -$lang->testcase->set2Testcase = 'Set as Testcase'; -$lang->testcase->clearSetting = 'Clear Settings'; -$lang->testcase->setModule = 'Set scene module'; -$lang->testcase->pickModule = 'Please select a module'; -$lang->testcase->clearBefore = 'Clear previous scenes'; -$lang->testcase->clearAfter = 'Clear the following scenes'; -$lang->testcase->clearCurrent = 'Clear the current scene'; -$lang->testcase->removeGroup = 'Remove Group'; -$lang->testcase->set2Group = 'Set as Group'; +$lang->testcase->jsLng = new stdclass(); +$lang->testcase->jsLng->caseNotExist = 'The test case in the imported file was not recognized and the import failed'; +$lang->testcase->jsLng->saveFail = 'Save failed'; +$lang->testcase->jsLng->set2Scene = 'Set as Scene'; +$lang->testcase->jsLng->set2Testcase = 'Set as Testcase'; +$lang->testcase->jsLng->clearSetting = 'Clear Settings'; +$lang->testcase->jsLng->setModule = 'Set scene module'; +$lang->testcase->jsLng->pickModule = 'Please select a module'; +$lang->testcase->jsLng->clearBefore = 'Clear previous scenes'; +$lang->testcase->jsLng->clearAfter = 'Clear the following scenes'; +$lang->testcase->jsLng->clearCurrent = 'Clear the current scene'; +$lang->testcase->jsLng->removeGroup = 'Remove Group'; +$lang->testcase->jsLng->set2Group = 'Set as Group'; $lang->testcase->exportTemplet = 'Export Template'; diff --git a/module/testcase/lang/en.php b/module/testcase/lang/en.php index daec53734a..9f44fd2dd7 100644 --- a/module/testcase/lang/en.php +++ b/module/testcase/lang/en.php @@ -203,15 +203,13 @@ $lang->testcase->ditto = 'Ditto'; $lang->testcase->dittoNotice = "This Case is not linked to the {$lang->productCommon} as the last one is!"; $lang->testcase->confirmUnlinkTesttask = 'The case [%s] is already associated in the testtask order of the previous branch/platform, after adjusting the branch/platform, it will be removed from the test list of the previous branch/platform, please confirm whether to continue to modify.'; -$lang->testcase->reviewList[0] = 'NO'; -$lang->testcase->reviewList[1] = 'YES'; - -$lang->testcase->autoList = array(); $lang->testcase->autoList[''] = ''; $lang->testcase->autoList['auto'] = 'Yes'; $lang->testcase->autoList['no'] = 'No'; -$lang->testcase->priList[0] = ''; +$lang->testcase->reviewList[0] = '否'; +$lang->testcase->reviewList[1] = '是'; + $lang->testcase->priList[3] = 3; $lang->testcase->priList[1] = 1; $lang->testcase->priList[2] = 2; @@ -314,18 +312,19 @@ $lang->testcase->settingCase = 'Testcase'; $lang->testcase->settingPri = 'Priority'; $lang->testcase->settingGroup = 'Step Group'; -$lang->testcase->caseNotExist = 'The test case in the imported file was not recognized and the import failed'; -$lang->testcase->saveFail = 'Save failed'; -$lang->testcase->set2Scene = 'Set as Scene'; -$lang->testcase->set2Testcase = 'Set as Testcase'; -$lang->testcase->clearSetting = 'Clear Settings'; -$lang->testcase->setModule = 'Set scene module'; -$lang->testcase->pickModule = 'Please select a module'; -$lang->testcase->clearBefore = 'Clear previous scenes'; -$lang->testcase->clearAfter = 'Clear the following scenes'; -$lang->testcase->clearCurrent = 'Clear the current scene'; -$lang->testcase->removeGroup = 'Remove Group'; -$lang->testcase->set2Group = 'Set as Group'; +$lang->testcase->jsLng = new stdclass(); +$lang->testcase->jsLng->caseNotExist = 'The test case in the imported file was not recognized and the import failed'; +$lang->testcase->jsLng->saveFail = 'Save failed'; +$lang->testcase->jsLng->set2Scene = 'Set as Scene'; +$lang->testcase->jsLng->set2Testcase = 'Set as Testcase'; +$lang->testcase->jsLng->clearSetting = 'Clear Settings'; +$lang->testcase->jsLng->setModule = 'Set scene module'; +$lang->testcase->jsLng->pickModule = 'Please select a module'; +$lang->testcase->jsLng->clearBefore = 'Clear previous scenes'; +$lang->testcase->jsLng->clearAfter = 'Clear the following scenes'; +$lang->testcase->jsLng->clearCurrent = 'Clear the current scene'; +$lang->testcase->jsLng->removeGroup = 'Remove Group'; +$lang->testcase->jsLng->set2Group = 'Set as Group'; $lang->testcase->exportTemplet = 'Export Template'; diff --git a/module/testcase/lang/fr.php b/module/testcase/lang/fr.php index e1eb7ec3df..1f4e9df678 100644 --- a/module/testcase/lang/fr.php +++ b/module/testcase/lang/fr.php @@ -203,15 +203,13 @@ $lang->testcase->ditto = 'Idem'; $lang->testcase->dittoNotice = "This Case is not linked to the {$lang->productCommon} as the last one is!"; $lang->testcase->confirmUnlinkTesttask = 'The case [%s] is already associated in the testtask order of the previous branch/platform, after adjusting the branch/platform, it will be removed from the test list of the previous branch/platform, please confirm whether to continue to modify.'; -$lang->testcase->reviewList[0] = 'NON'; -$lang->testcase->reviewList[1] = 'OUI'; - -$lang->testcase->autoList = array(); $lang->testcase->autoList[''] = ''; $lang->testcase->autoList['auto'] = 'Yes'; $lang->testcase->autoList['no'] = 'No'; -$lang->testcase->priList[0] = ''; +$lang->testcase->reviewList[0] = '否'; +$lang->testcase->reviewList[1] = '是'; + $lang->testcase->priList[3] = 3; $lang->testcase->priList[1] = 1; $lang->testcase->priList[2] = 2; @@ -314,18 +312,19 @@ $lang->testcase->settingCase = 'Testcase'; $lang->testcase->settingPri = 'Priority'; $lang->testcase->settingGroup = 'Step Group'; -$lang->testcase->caseNotExist = 'The test case in the imported file was not recognized and the import failed'; -$lang->testcase->saveFail = 'Save failed'; -$lang->testcase->set2Scene = 'Set as Scene'; -$lang->testcase->set2Testcase = 'Set as Testcase'; -$lang->testcase->clearSetting = 'Clear Settings'; -$lang->testcase->setModule = 'Set scene module'; -$lang->testcase->pickModule = 'Please select a module'; -$lang->testcase->clearBefore = 'Clear previous scenes'; -$lang->testcase->clearAfter = 'Clear the following scenes'; -$lang->testcase->clearCurrent = 'Clear the current scene'; -$lang->testcase->removeGroup = 'Remove Group'; -$lang->testcase->set2Group = 'Set as Group'; +$lang->testcase->jsLng = new stdclass(); +$lang->testcase->jsLng->caseNotExist = 'The test case in the imported file was not recognized and the import failed'; +$lang->testcase->jsLng->saveFail = 'Save failed'; +$lang->testcase->jsLng->set2Scene = 'Set as Scene'; +$lang->testcase->jsLng->set2Testcase = 'Set as Testcase'; +$lang->testcase->jsLng->clearSetting = 'Clear Settings'; +$lang->testcase->jsLng->setModule = 'Set scene module'; +$lang->testcase->jsLng->pickModule = 'Please select a module'; +$lang->testcase->jsLng->clearBefore = 'Clear previous scenes'; +$lang->testcase->jsLng->clearAfter = 'Clear the following scenes'; +$lang->testcase->jsLng->clearCurrent = 'Clear the current scene'; +$lang->testcase->jsLng->removeGroup = 'Remove Group'; +$lang->testcase->jsLng->set2Group = 'Set as Group'; $lang->testcase->exportTemplet = 'Export Template'; diff --git a/module/testtask/lang/de.php b/module/testtask/lang/de.php index bf883564d8..5e5c9e2d56 100644 --- a/module/testtask/lang/de.php +++ b/module/testtask/lang/de.php @@ -88,6 +88,7 @@ $lang->testtask->realFinishedDate = 'Actual Finished Date'; $lang->testtask->desc = 'Beschreibung'; $lang->testtask->mailto = 'Mail an'; $lang->testtask->status = 'Status'; +$lang->testtask->statusAB = 'Status'; $lang->testtask->subStatus = 'Sub Status'; $lang->testtask->testreport = 'Test Report'; $lang->testtask->assignedTo = 'Zugeordnet'; diff --git a/module/testtask/lang/en.php b/module/testtask/lang/en.php index 7b644c309c..3b892c6766 100644 --- a/module/testtask/lang/en.php +++ b/module/testtask/lang/en.php @@ -88,6 +88,7 @@ $lang->testtask->realFinishedDate = 'Actual Finished Date'; $lang->testtask->desc = 'Description'; $lang->testtask->mailto = 'Mailto'; $lang->testtask->status = 'Status'; +$lang->testtask->statusAB = 'Status'; $lang->testtask->subStatus = 'Sub Status'; $lang->testtask->testreport = 'Test Report'; $lang->testtask->assignedTo = 'Assigned'; diff --git a/module/testtask/lang/fr.php b/module/testtask/lang/fr.php index 1ca27ab9c9..fc54060709 100644 --- a/module/testtask/lang/fr.php +++ b/module/testtask/lang/fr.php @@ -40,16 +40,16 @@ $lang->testtask->next = 'Suiv'; $lang->testtask->start = "Commencer"; $lang->testtask->close = "Clôturer"; $lang->testtask->wait = "En Attente"; -$lang->testtask->waitAB = "Waiting"; $lang->testtask->block = "Bloquer"; $lang->testtask->activate = "Activer"; $lang->testtask->testing = "En Déroulement"; -$lang->testtask->testingAB = "Testing"; $lang->testtask->blocked = "Bloquée"; $lang->testtask->done = "Jouée"; $lang->testtask->totalStatus = "Toutes"; $lang->testtask->all = 'Toutes'; $lang->testtask->allTasks = 'Toutes Recettes'; +$lang->testtask->collapseAll = 'Collapse'; +$lang->testtask->expandAll = 'Expand'; $lang->testtask->auto = 'Test Automation Tasks'; $lang->testtask->task = 'Test Task'; $lang->testtask->run = 'Test Run ID'; @@ -88,6 +88,7 @@ $lang->testtask->realFinishedDate = 'Actual Finished Date'; $lang->testtask->desc = 'Description'; $lang->testtask->mailto = 'Mailto'; $lang->testtask->status = 'Statut'; +$lang->testtask->statusAB = 'Status'; $lang->testtask->subStatus = 'Sous-statut'; $lang->testtask->testreport = 'Test Report'; $lang->testtask->assignedTo = 'Affecté'; diff --git a/module/tree/lang/zh-cn.php b/module/tree/lang/zh-cn.php index 9983725342..dce1d54991 100755 --- a/module/tree/lang/zh-cn.php +++ b/module/tree/lang/zh-cn.php @@ -37,7 +37,6 @@ $lang->tree->manageDashboard = '维护仪表盘模块'; $lang->tree->manageDashboardChild = '维护仪表盘子模块'; $lang->tree->manageProjectChild = "维护{$lang->projectCommon}子模块"; $lang->tree->manageTaskChild = "维护{$lang->execution->common}子模块"; -$lang->tree->manageTaskChild = "维护{$lang->execution->common}子模块"; $lang->tree->syncFromProduct = '复制模块'; $lang->tree->dragAndSort = "拖放排序"; $lang->tree->sort = "排序"; diff --git a/module/tutorial/lang/en.php b/module/tutorial/lang/en.php index 5320d92cf3..96dc088664 100644 --- a/module/tutorial/lang/en.php +++ b/module/tutorial/lang/en.php @@ -41,25 +41,21 @@ $lang->tutorial->tasks->createAccount->targetPageName = 'Add User'; $lang->tutorial->tasks->createAccount->desc = "

Create a User:

  • Open Admin Company Users New;
  • Fill the form with user information;
  • Save
"; $lang->tutorial->tasks->createProgram = new stdClass(); - $lang->tutorial->tasks->createProgram->title = 'Create a program'; $lang->tutorial->tasks->createProgram->targetPageName = 'Create program'; $lang->tutorial->tasks->createProgram->desc = "

Create a new program:

  • Open Program Program list Create program;
  • Fill the form with program information;
  • Save
"; $lang->tutorial->tasks->createProduct = new stdClass(); - $lang->tutorial->tasks->createProduct->title = 'Create a product'; $lang->tutorial->tasks->createProduct->targetPageName = 'Create product'; $lang->tutorial->tasks->createProduct->desc = "

Create a new product:

  • Open Product Product list Create product;
  • Fill the form with product information;
  • Save
"; $lang->tutorial->tasks->createStory = new stdClass(); - $lang->tutorial->tasks->createStory->title = 'Create a story'; $lang->tutorial->tasks->createStory->targetPageName = 'Create story'; $lang->tutorial->tasks->createStory->desc = "

Create a story:

  • Open {$lang->productCommon} Story Create;
  • Fill the form with story information;
  • Save
"; $lang->tutorial->tasks->createProject = new stdClass(); - $lang->tutorial->tasks->createProject->title = 'Create a project'; $lang->tutorial->tasks->createProject->targetPageName = 'Create project'; $lang->tutorial->tasks->createProject->desc = "

Create a project:

  • Open {$lang->productCommon} Project Create;
  • Fill the form with project information;
  • Save
"; diff --git a/module/tutorial/lang/fr.php b/module/tutorial/lang/fr.php index 60f4cf980a..0f5f35af0f 100644 --- a/module/tutorial/lang/fr.php +++ b/module/tutorial/lang/fr.php @@ -41,7 +41,6 @@ $lang->tutorial->tasks->createAccount->targetPageName = 'Add User'; $lang->tutorial->tasks->createAccount->desc = "

Create a User:

  • Open Company Users New;
  • Fill the form with user information;
  • Save
"; $lang->tutorial->tasks->createProgram = new stdclass(); - $lang->tutorial->tasks->createProgram->title = 'Create a program'; $lang->tutorial->tasks->createProgram->targetPageName = 'Create program'; $lang->tutorial->tasks->createProgram->desc = "

Create a new program:

  • Open Program Program list Create program;
  • Fill the form with program information;
  • Save
"; diff --git a/module/upgrade/lang/de.php b/module/upgrade/lang/de.php index 059eba3166..6185ab3c0f 100644 --- a/module/upgrade/lang/de.php +++ b/module/upgrade/lang/de.php @@ -58,25 +58,26 @@ $lang->upgrade->setStatusFile = '

Please complete the following actions<

I have read and done as instructed above. Continue upgrading.

'; -$lang->upgrade->selectVersion = 'Version auswählen'; -$lang->upgrade->continue = 'Weiter'; -$lang->upgrade->noteVersion = "Wählen Sie eine kompatible Version oder es droht Datenverlust."; -$lang->upgrade->fromVersion = 'Von Version'; -$lang->upgrade->toVersion = 'Upgrade nach Version'; -$lang->upgrade->confirm = 'SQL Bestätigen'; -$lang->upgrade->sureExecute = 'Ausführen'; -$lang->upgrade->upgradingTips = 'The upgrade is in progress, please be patient. Do not refresh the page, blackout, or turn off your computer!'; -$lang->upgrade->forbiddenExt = 'Die Erweiterung ist nicht kompatibel mit der Upgradeversion. Sie wurde deaktiviert:'; -$lang->upgrade->updateFile = 'Updateinformation wurden hinzugefügt.'; -$lang->upgrade->noticeSQL = 'Your database is inconsistent with the standard and it failed to fix it. Please run the following SQL and refresh.'; -$lang->upgrade->afterDeleted = 'Please modify the database manually according to the above error information, and refresh after the modification!'; -$lang->upgrade->afterExec = 'Please manually modify the database according to the above error information, and refresh after modifiy!'; -$lang->upgrade->mergeProgram = 'Data Merge'; -$lang->upgrade->mergeTips = 'Data Migration Tips'; -$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade'; -$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade'; -$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade'; -$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade'; +$lang->upgrade->selectVersion = 'Version auswählen'; +$lang->upgrade->continue = 'Weiter'; +$lang->upgrade->noteVersion = "Wählen Sie eine kompatible Version oder es droht Datenverlust."; +$lang->upgrade->fromVersion = 'Von Version'; +$lang->upgrade->toVersion = 'Upgrade nach Version'; +$lang->upgrade->confirm = 'SQL Bestätigen'; +$lang->upgrade->sureExecute = 'Ausführen'; +$lang->upgrade->upgradingTips = 'The upgrade is in progress, please be patient. Do not refresh the page, blackout, or turn off your computer!'; +$lang->upgrade->forbiddenExt = 'Die Erweiterung ist nicht kompatibel mit der Upgradeversion. Sie wurde deaktiviert:'; +$lang->upgrade->updateFile = 'Updateinformation wurden hinzugefügt.'; +$lang->upgrade->showSQLLog = 'Your database is inconsistent with the standard and try fix it.'; +$lang->upgrade->noticeErrSQL = 'Your database is inconsistent with the standard and it failed to fix it. Please run the following SQL and refresh.'; +$lang->upgrade->afterDeleted = 'Please modify the database manually according to the above error information, and refresh after the modification!'; +$lang->upgrade->afterExec = 'Please manually modify the database according to the above error information, and refresh after modifiy!'; +$lang->upgrade->mergeProgram = 'Data Merge'; +$lang->upgrade->mergeTips = 'Data Migration Tips'; +$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade'; +$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade'; +$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade'; +$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade'; $lang->upgrade->line = 'Product Line'; $lang->upgrade->allLines = "All Product Lines"; @@ -157,8 +158,8 @@ $lang->upgrade->recoveryActions = new stdclass(); $lang->upgrade->recoveryActions->cancel = 'Cancel'; $lang->upgrade->recoveryActions->review = 'Review'; -$lang->upgrade->remark = 'Remark'; -$lang->upgrade->remarkDesc = 'You can also switch the mode in the Admin-System-Mode page of the system.'; +$lang->upgrade->remark = 'Remark'; +$lang->upgrade->remarkDesc = 'You can also switch the mode in the Admin-System-Mode page of the system.'; $lang->upgrade->upgradingTip = 'The system is being upgraded, please wait patiently...'; diff --git a/module/upgrade/lang/en.php b/module/upgrade/lang/en.php index d282f6f136..7dd46bbc11 100644 --- a/module/upgrade/lang/en.php +++ b/module/upgrade/lang/en.php @@ -58,25 +58,26 @@ $lang->upgrade->setStatusFile = '

Please complete the following actions<

I have read and done as instructed above. Continue upgrading.

'; -$lang->upgrade->selectVersion = 'Version'; -$lang->upgrade->continue = 'Continue'; -$lang->upgrade->noteVersion = "Select the compatible version, or it might cause data loss."; -$lang->upgrade->fromVersion = 'From'; -$lang->upgrade->toVersion = 'To'; -$lang->upgrade->confirm = 'Confirm SQL'; -$lang->upgrade->sureExecute = 'Execute'; -$lang->upgrade->upgradingTips = 'The upgrade is in progress, please be patient. Do not refresh the page, blackout, or turn off your computer!'; -$lang->upgrade->forbiddenExt = 'The extension is incompatible with the version. It has been deactivated:'; -$lang->upgrade->updateFile = 'File information has to be updated.'; -$lang->upgrade->noticeSQL = 'Your database is inconsistent with the standard and it failed to fix it. Please run the following SQL and refresh.'; -$lang->upgrade->afterDeleted = 'Please execute commands to delete the files. Please refresh after you delete them.'; -$lang->upgrade->afterExec = 'Please modify the database manually according to the above error information, and refresh after the modification!'; -$lang->upgrade->mergeProgram = 'Data Merge'; -$lang->upgrade->mergeTips = 'Data Migration Tips'; -$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade'; -$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade'; -$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade'; -$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade'; +$lang->upgrade->selectVersion = 'Version'; +$lang->upgrade->continue = 'Continue'; +$lang->upgrade->noteVersion = "Select the compatible version, or it might cause data loss."; +$lang->upgrade->fromVersion = 'From'; +$lang->upgrade->toVersion = 'To'; +$lang->upgrade->confirm = 'Confirm SQL'; +$lang->upgrade->sureExecute = 'Execute'; +$lang->upgrade->upgradingTips = 'The upgrade is in progress, please be patient. Do not refresh the page, blackout, or turn off your computer!'; +$lang->upgrade->forbiddenExt = 'The extension is incompatible with the version. It has been deactivated:'; +$lang->upgrade->updateFile = 'File information has to be updated.'; +$lang->upgrade->showSQLLog = 'Your database is inconsistent with the standard and try fix it.'; +$lang->upgrade->noticeErrSQL = 'Your database is inconsistent with the standard and it failed to fix it. Please run the following SQL and refresh.'; +$lang->upgrade->afterDeleted = 'Please execute commands to delete the files. Please refresh after you delete them.'; +$lang->upgrade->afterExec = 'Please modify the database manually according to the above error information, and refresh after the modification!'; +$lang->upgrade->mergeProgram = 'Data Merge'; +$lang->upgrade->mergeTips = 'Data Migration Tips'; +$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade'; +$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade'; +$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade'; +$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade'; $lang->upgrade->line = 'Product Line'; $lang->upgrade->allLines = "All Product Lines"; diff --git a/module/upgrade/lang/fr.php b/module/upgrade/lang/fr.php index 59610c4de7..487d91e730 100644 --- a/module/upgrade/lang/fr.php +++ b/module/upgrade/lang/fr.php @@ -58,25 +58,26 @@ $lang->upgrade->setStatusFile = '

Please complete the following actions<

I have read and done as instructed above. Continue upgrading.

'; -$lang->upgrade->selectVersion = 'Version'; -$lang->upgrade->continue = 'Continuer'; -$lang->upgrade->noteVersion = "Sélectionnez une version compatible où vous pourriez perdre des données."; -$lang->upgrade->fromVersion = 'De'; -$lang->upgrade->toVersion = 'à'; -$lang->upgrade->confirm = 'Confirmez SQL'; -$lang->upgrade->sureExecute = 'Executez'; -$lang->upgrade->upgradingTips = 'La mise à jour est en cours, veuillez être patient. Ne pas actualiser la page ou éteindre votre ordinateur!'; -$lang->upgrade->forbiddenExt = 'Cette extension est incompatible avec la version. Elle a été désactivée :'; -$lang->upgrade->updateFile = "Le fichier information a besoin d'une mise à jour."; -$lang->upgrade->noticeSQL = 'Votre base de donnée est inconsistente avec le standard et il y a eu un échec pour la corriger. Exécutez la commande SQL suivante et rafraichissez.'; -$lang->upgrade->afterDeleted = "Le fichier n'est pas supprimé. Recommencez après l'avoir supprimé."; -$lang->upgrade->afterExec = 'Please modify the database manually according to the above error information, and refresh after the modification!'; -$lang->upgrade->mergeProgram = 'Data Merge'; -$lang->upgrade->mergeTips = 'Data Migration Tips'; -$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade'; -$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade'; -$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade'; -$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade'; +$lang->upgrade->selectVersion = 'Version'; +$lang->upgrade->continue = 'Continuer'; +$lang->upgrade->noteVersion = "Sélectionnez une version compatible où vous pourriez perdre des données."; +$lang->upgrade->fromVersion = 'De'; +$lang->upgrade->toVersion = 'à'; +$lang->upgrade->confirm = 'Confirmez SQL'; +$lang->upgrade->sureExecute = 'Executez'; +$lang->upgrade->upgradingTips = 'La mise à jour est en cours, veuillez être patient. Ne pas actualiser la page ou éteindre votre ordinateur!'; +$lang->upgrade->forbiddenExt = 'Cette extension est incompatible avec la version. Elle a été désactivée :'; +$lang->upgrade->updateFile = "Le fichier information a besoin d'une mise à jour."; +$lang->upgrade->showSQLLog = 'Your database is inconsistent with the standard and try fix it.'; +$lang->upgrade->noticeErrSQL = 'Votre base de donnée est inconsistente avec le standard et il y a eu un échec pour la corriger. Exécutez la commande SQL suivante et rafraichissez.'; +$lang->upgrade->afterDeleted = "Le fichier n'est pas supprimé. Recommencez après l'avoir supprimé."; +$lang->upgrade->afterExec = 'Please modify the database manually according to the above error information, and refresh after the modification!'; +$lang->upgrade->mergeProgram = 'Data Merge'; +$lang->upgrade->mergeTips = 'Data Migration Tips'; +$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade'; +$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade'; +$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade'; +$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade'; $lang->upgrade->line = 'Product Line'; $lang->upgrade->allLines = "All Product Lines"; diff --git a/module/user/lang/de.php b/module/user/lang/de.php index 9b79928f99..b619068ade 100644 --- a/module/user/lang/de.php +++ b/module/user/lang/de.php @@ -82,10 +82,10 @@ $lang->user->resetPwdByAdmin = 'Reset password via admin'; $lang->user->resetPwdByMail = 'Reset password via email'; $lang->user->abbr = new stdclass(); -$lang->user->abbr->id = 'ID'; -$lang->user->abbr->password2AB = 'Passwort wiederholen'; -$lang->user->abbr->addressAB = 'Adresse'; -$lang->user->abbr->joinAB = 'Induktion'; +$lang->user->abbr->id = 'ID'; +$lang->user->abbr->password2 = 'Passwort wiederholen'; +$lang->user->abbr->address = 'Adresse'; +$lang->user->abbr->join = 'Induktion'; $lang->user->legendBasic = 'Basic Information'; $lang->user->legendContribution = 'Contribution'; diff --git a/module/user/lang/fr.php b/module/user/lang/fr.php index 0f0292714d..f55ff3b8af 100644 --- a/module/user/lang/fr.php +++ b/module/user/lang/fr.php @@ -82,10 +82,10 @@ $lang->user->resetPwdByAdmin = 'Reset password via admin'; $lang->user->resetPwdByMail = 'Reset password via email'; $lang->user->abbr = new stdclass(); -$lang->user->abbr->id = 'ID'; -$lang->user->abbr->password2AB = 'Répétez Password'; -$lang->user->abbr->addressAB = 'Adresse'; -$lang->user->abbr->joinAB = 'Ajouté le'; +$lang->user->abbr->id = 'ID'; +$lang->user->abbr->password2 = 'Répétez Password'; +$lang->user->abbr->address = 'Adresse'; +$lang->user->abbr->join = 'Ajouté le'; $lang->user->legendBasic = 'Informations de Base'; $lang->user->legendContribution = 'Contribution'; From 7ecfc71adb9bdb2b244025b1241f71f8c4fea9c8 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 16:30:48 +0800 Subject: [PATCH 018/276] * Update version info. --- VERSION | 2 +- config/config.php | 2 +- doc/CHANGELOG | 2 ++ module/misc/lang/de.php | 2 ++ module/misc/lang/en.php | 2 ++ module/misc/lang/fr.php | 2 ++ module/misc/lang/zh-cn.php | 2 ++ module/upgrade/lang/version.php | 3 ++- 8 files changed, 14 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index 5f11db3c7a..bf79c7af7e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -20.0.beta1 +20.0.stable diff --git a/config/config.php b/config/config.php index adb669e3cf..5e262f8143 100644 --- a/config/config.php +++ b/config/config.php @@ -16,7 +16,7 @@ if(!class_exists('config')){class config{}} if(!function_exists('getWebRoot')){function getWebRoot(){}} /* 基本设置。Basic settings. */ -$config->version = '20.0.beta1'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. +$config->version = '20.0.stable'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. $config->liteVersion = '1.2'; // 迅捷版版本。 The version of Lite. $config->charset = 'UTF-8'; // ZenTaoPHP的编码。 The encoding of ZenTaoPHP. $config->cookieLife = time() + 2592000; // Cookie的生存时间。The cookie life time. diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 8c3ff548fc..750f2ccb5f 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,3 +1,5 @@ +2024-02-29 20.0.stable + 2024-02-20 18.11 完成的需求 开源版: diff --git a/module/misc/lang/de.php b/module/misc/lang/de.php index d989f630d6..8d7c284f4a 100644 --- a/module/misc/lang/de.php +++ b/module/misc/lang/de.php @@ -113,6 +113,7 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ +$lang->misc->releaseDate['20.0.stable'] = '2024-02-29'; $lang->misc->releaseDate['18.11'] = '2024-02-28'; $lang->misc->releaseDate['18.10.1'] = '2024-01-17'; $lang->misc->releaseDate['20.0.beta1'] = '2024-01-26'; @@ -223,6 +224,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ +$lang->misc->feature->all['20.0.stable'][] = array('title' => '', 'desc' => ''); $lang->misc->feature->all['18.11'][] = array('title' => "We have successfully implemented AI mini-program functionality, integrating measurement metrics and global filtering capabilities into the large-screen display. Additionally, we have added feedback functionality to the OR interface. Furthermore, we have enabled the inclusion of keywords in the Requirement Management Hub, allowing for the redistribution of requirements in the Requirement Management Hub once a user's requirement has been withdrawn.", 'desc' => ''); $lang->misc->feature->all['18.10.1'][] = array('title' => 'The Requirement Management Hub (RM Hub) now includes notification functionality, supports product line features, and allows for distributing a single requirement to multiple products.', 'desc' => ''); $lang->misc->feature->all['20.0.beta1'][] = array('title' => 'This release mainly involves a large-scale refactoring of the code and a brand new upgrade to the user interface (UI), bringing better product performance, stronger security, and a more user-friendly experience.', 'desc' => ''); diff --git a/module/misc/lang/en.php b/module/misc/lang/en.php index 553fbcf4d9..6b32bdf3b4 100644 --- a/module/misc/lang/en.php +++ b/module/misc/lang/en.php @@ -113,6 +113,7 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ +$lang->misc->releaseDate['20.0.stable'] = '2024-02-29'; $lang->misc->releaseDate['18.11'] = '2024-02-28'; $lang->misc->releaseDate['18.10.1'] = '2024-01-17'; $lang->misc->releaseDate['20.0.beta1'] = '2024-01-26'; @@ -223,6 +224,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ +$lang->misc->feature->all['20.0.stable'][] = array('title' => '', 'desc' => ''); $lang->misc->feature->all['18.11'][] = array('title' => "We have successfully implemented AI mini-program functionality, integrating measurement metrics and global filtering capabilities into the large-screen display. Additionally, we have added feedback functionality to the OR interface. Furthermore, we have enabled the inclusion of keywords in the Requirement Management Hub, allowing for the redistribution of requirements in the Requirement Management Hub once a user's requirement has been withdrawn.", 'desc' => ''); $lang->misc->feature->all['18.10.1'][] = array('title' => 'The Requirement Management Hub (RM Hub) now includes notification functionality, supports product line features, and allows for distributing a single requirement to multiple products.', 'desc' => ''); $lang->misc->feature->all['20.0.beta1'][] = array('title' => 'This release mainly involves a large-scale refactoring of the code and a brand new upgrade to the user interface (UI), bringing better product performance, stronger security, and a more user-friendly experience.', 'desc' => ''); diff --git a/module/misc/lang/fr.php b/module/misc/lang/fr.php index 061e76baea..9c570f5c58 100644 --- a/module/misc/lang/fr.php +++ b/module/misc/lang/fr.php @@ -113,6 +113,7 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ +$lang->misc->releaseDate['20.0.stable'] = '2024-02-29'; $lang->misc->releaseDate['18.11'] = '2024-02-28'; $lang->misc->releaseDate['18.10.1'] = '2024-01-17'; $lang->misc->releaseDate['20.0.beta1'] = '2024-01-26'; @@ -223,6 +224,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ +$lang->misc->feature->all['20.0.stable'][] = array('title' => '', 'desc' => ''); $lang->misc->feature->all['18.11'][] = array('title' => "We have successfully implemented AI mini-program functionality, integrating measurement metrics and global filtering capabilities into the large-screen display. Additionally, we have added feedback functionality to the OR interface. Furthermore, we have enabled the inclusion of keywords in the Requirement Management Hub, allowing for the redistribution of requirements in the Requirement Management Hub once a user's requirement has been withdrawn.", 'desc' => ''); $lang->misc->feature->all['18.10.1'][] = array('title' => 'The Requirement Management Hub (RM Hub) now includes notification functionality, supports product line features, and allows for distributing a single requirement to multiple products.', 'desc' => ''); $lang->misc->feature->all['20.0.beta1'][] = array('title' => 'This release mainly involves a large-scale refactoring of the code and a brand new upgrade to the user interface (UI), bringing better product performance, stronger security, and a more user-friendly experience.', 'desc' => ''); diff --git a/module/misc/lang/zh-cn.php b/module/misc/lang/zh-cn.php index b23a46bbdd..072ecd9692 100644 --- a/module/misc/lang/zh-cn.php +++ b/module/misc/lang/zh-cn.php @@ -113,6 +113,7 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ +$lang->misc->releaseDate['20.0.stable'] = '2024-02-29'; $lang->misc->releaseDate['18.11'] = '2024-02-28'; $lang->misc->releaseDate['18.10.1'] = '2024-01-17'; $lang->misc->releaseDate['20.0.beta1'] = '2024-01-26'; @@ -223,6 +224,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ +$lang->misc->feature->all['20.0.stable'][] = array('title' => '', 'desc' => ''); $lang->misc->feature->all['18.11'][] = array('title' => '实现AI小程序功能,实现大屏引用度量项、全局筛选器功能,OR界面实现反馈功能,需求池需求增加关键词,撤回用户需求后需求池需求可以再次分发。', 'desc' => ''); $lang->misc->feature->all['18.10.1'][] = array('title' => '需求池增加通知功能,支持产品线功能,支持一个需求分发到多个产品。', 'desc' => ''); $lang->misc->feature->all['20.0.beta1'][] = array('title' => '本次发布主要对代码进行了大规模重构,同时对用户界面(UI)进行了全新升级,带来了更好的产品性能、更强的安全性和更友好的用户体验。', 'desc' => ''); diff --git a/module/upgrade/lang/version.php b/module/upgrade/lang/version.php index f26c420eb8..56f5eb043d 100644 --- a/module/upgrade/lang/version.php +++ b/module/upgrade/lang/version.php @@ -187,7 +187,8 @@ $lang->upgrade->fromVersions['18_9'] = '18.9'; $lang->upgrade->fromVersions['18_10'] = '18.10'; $lang->upgrade->fromVersions['18_10_1'] = '18.10.1'; $lang->upgrade->fromVersions['18_11'] = '18.11'; -$lang->upgrade->fromVersions['20_0_alpha1'] = '20.0.alpha1'; // pms insert position. +$lang->upgrade->fromVersions['20_0_alpha1'] = '20.0.alpha1'; +$lang->upgrade->fromVersions['20_0_stable'] = '20.0.stable'; // pms insert position. global $config; /* Lite. */ From 2f839cc3b2910a2049656cd6287e57481a0bdd70 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 29 Feb 2024 14:23:36 +0800 Subject: [PATCH 019/276] * Modify function define. --- module/transfer/ui/exporttemplate.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/transfer/ui/exporttemplate.html.php b/module/transfer/ui/exporttemplate.html.php index 935cceb209..ec8b8ad8cc 100644 --- a/module/transfer/ui/exporttemplate.html.php +++ b/module/transfer/ui/exporttemplate.html.php @@ -39,7 +39,7 @@ form js ( << -1) return true; // Opera don't support, omit it. From e3e747d48c71f3efab3067e2d533d05ea0a36832 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Thu, 29 Feb 2024 14:39:12 +0800 Subject: [PATCH 020/276] * Add required function for old view pages. --- framework/model.class.php | 73 +++++++++++++++++++++++++++++++++++++++ module/common/model.php | 56 +++++++++++++++++++++++++++++- 2 files changed, 128 insertions(+), 1 deletion(-) diff --git a/framework/model.class.php b/framework/model.class.php index 08e1e08069..62d8f1b480 100644 --- a/framework/model.class.php +++ b/framework/model.class.php @@ -126,6 +126,79 @@ class model extends baseModel return false; } + /** + * Build menu of a module. + * + * @param string $moduleName + * @param string $methodName + * @param string $params + * @param object $data + * @param string $type + * @param string $icon + * @param string $target + * @param string $class + * @param bool $onlyBody + * @param string $misc + * @param string $title + * @param bool $returnHtml + * @access public + * @return string + */ + + public function buildMenu($moduleName, $methodName, $params, $data, $type = 'view', $icon = '', $target = '', $class = '', $onlyBody = false, $misc = '' , $title = '', $returnHtml = true) + { + if(strpos($moduleName, '.') !== false) list($appName, $moduleName) = explode('.', $moduleName); + + if(strpos($methodName, '_') !== false && strpos($methodName, '_') > 0) list($module, $method) = explode('_', $methodName); + + if(empty($module)) $module = $moduleName; + if(empty($method)) $method = $methodName; + + static $actions = array(); + if(isset($this->config->bizVersion)) + { + if(empty($actions[$moduleName])) + { + $actions[$moduleName] = $this->dao->select('*')->from(TABLE_WORKFLOWACTION) + ->where('module')->eq($moduleName) + ->andWhere('buildin')->eq('1') + ->andWhere('status')->eq('enable') + ->beginIF(!empty($this->config->vision))->andWhere('vision')->eq($this->config->vision)->fi() + ->fetchAll('action'); + } + } + + $enabled = true; + if(!empty($actions) and isset($actions[$moduleName][$methodName])) + { + $action = $actions[$moduleName][$methodName]; + + if($action->extensionType == 'override') return $this->loadModel('flow')->buildActionMenu($moduleName, $action, $data, $type); + + $conditions = json_decode($action->conditions); + if($conditions and $action->extensionType == 'extend') + { + if($icon != 'copy' and $methodName != 'create') $title = $action->name; + if($conditions) $enabled = $this->loadModel('flow')->checkConditions($conditions, $data); + } + else + { + if(method_exists($this, 'isClickable')) $enabled = $this->isClickable($data, $method, $module); + } + } + else + { + if(method_exists($this, 'isClickable')) $enabled = $this->isClickable($data, $method, $module); + } + + if(!$returnHtml) return $enabled; + + $html = ''; + $type = $type == 'browse' ? 'list' : 'button'; + $html = common::buildIconButton($module, $method, $params, $data, $type, $icon, $target, $class, $onlyBody, $misc, $title, '', $enabled); + return $html; + } + /** * Build menu of actions created by workflow action. * diff --git a/module/common/model.php b/module/common/model.php index 9abce2e6af..609642a4e0 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -2596,7 +2596,7 @@ class commonModel extends model $currentMethod = strtolower($method); if(!commonModel::hasPriv($module, $method, $object, $vars) and !in_array("$currentModule.$currentMethod", $config->openMethods)) return false; - $link = helper::createLink($module, $method, $vars, '', $onlyBody); + $link = helper::createLink($module, $method, $vars, '', $onlyBody ? true : false); /* Set the icon title, try search the $method defination in $module's lang or $common's lang. */ if(empty($title)) @@ -3449,6 +3449,60 @@ class commonModel extends model echo html::a(helper::createLink($module, $method, $vars, '', $onlyBody), $label, $target, $misc, $newline); return true; } + + /** + * Print pre and next link + * + * @param string $preAndNext + * @param string $linkTemplate + * @static + * @access public + * @return void + */ + public static function printPreAndNext($preAndNext = '', $linkTemplate = '') + { + global $lang, $app; + if(isonlybody()) return false; + + $moduleName = ($app->getModuleName() == 'story' and $app->tab == 'project') ? 'projectstory' : $app->getModuleName(); + echo "'; + } } class common extends commonModel From 42316bfb37f2123cfade058699c54498d8cb5497 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Thu, 29 Feb 2024 15:11:46 +0800 Subject: [PATCH 021/276] * Add old buildform page. --- module/file/control.php | 10 ++ module/file/view/buildoldform.html.php | 123 +++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 module/file/view/buildoldform.html.php diff --git a/module/file/control.php b/module/file/control.php index f1a0e943ce..4f449532e5 100755 --- a/module/file/control.php +++ b/module/file/control.php @@ -32,6 +32,16 @@ class file extends control $this->display(); } + public function buildOldForm(int $fileCount = 1, float $percent = 0.9, string $filesName = "files", string $labelsName = "labels") + { + if(!file_exists($this->file->savePath)) return printf($this->lang->file->errorNotExists, $this->file->savePath); + if(!is_writable($this->file->savePath)) return printf($this->lang->file->errorCanNotWrite, $this->file->savePath, $this->file->savePath); + + $this->view->filesName = $filesName; + $this->view->labelsName = $labelsName; + $this->display(); + } + /** * AJAX: get upload request from the web editor. * diff --git a/module/file/view/buildoldform.html.php b/module/file/view/buildoldform.html.php new file mode 100644 index 0000000000..39ba1f3806 --- /dev/null +++ b/module/file/view/buildoldform.html.php @@ -0,0 +1,123 @@ +config->file->dangers . ','); +js::set('maxUploadSize', $maxUploadSize); +?> +
+
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+ + +
+
+ +
+ file->maxUploadSize, $maxUploadSize);?> + +
+ + + + From 19de2fe02c50d1f78a1bdfe0405d50cd2e81a1e8 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 29 Feb 2024 15:33:35 +0800 Subject: [PATCH 022/276] * zin: add the prepend parameter for adding sub items. --- lib/zin/core/node.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/zin/core/node.class.php b/lib/zin/core/node.class.php index 793c198a21..81989a97b3 100644 --- a/lib/zin/core/node.class.php +++ b/lib/zin/core/node.class.php @@ -268,7 +268,7 @@ class node implements \JsonSerializable if(is_array($item)) { - foreach($item as $child) $this->add($child, $blockName); + foreach($item as $child) $this->add($child, $blockName, $prepend); return; } From b5aeb0247e39aa877ebee0e5bb68d580838f0c45 Mon Sep 17 00:00:00 2001 From: liugang Date: Thu, 29 Feb 2024 16:36:53 +0800 Subject: [PATCH 023/276] + upgrade: add method to check database consistency. --- module/upgrade/config/upgradeflow.php | 2 +- module/upgrade/model.php | 40 +++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/module/upgrade/config/upgradeflow.php b/module/upgrade/config/upgradeflow.php index bffe450455..1b136f52a3 100644 --- a/module/upgrade/config/upgradeflow.php +++ b/module/upgrade/config/upgradeflow.php @@ -93,7 +93,7 @@ $config->upgrade->execFlow['18_7'] = array('functions' => 'processHistory $config->upgrade->execFlow['18_8'] = array('functions' => 'upgradeTesttaskMembers,deleteGeneralReportBlock,stopOldCron'); $config->upgrade->execFlow['18_9'] = array('functions' => 'addDefaultTraincoursePriv,renameBIModule,migrateXuanClientSettings'); $config->upgrade->execFlow['18_10_1'] = array('functions' => 'migrateAIModelConfig'); -$config->upgrade->execFlow['20.0.alpha1'] = array('functions' => 'revertStoryCustomFields,hideOA,updateMetricDateType,migrateAIModelConfig'); +$config->upgrade->execFlow['20_0_alpha1'] = array('functions' => 'revertStoryCustomFields,hideOA,updateMetricDateType,migrateAIModelConfig,update1810,update18101'); if(!empty($config->isINT)) { diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 2a37cfc810..76748667c8 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -8571,4 +8571,44 @@ class upgradeModel extends model $this->setting->setItem('system.common.closedFeatures', trim($closedFeatures . ',otherOA', ',')); } + + /** + * 检查是否添加了18.10版本的需求池字段,如果没有就添加。 + * Check if the demand pool field of version 18.10 is added, if not, add it. + * + * @access public + * @return void + */ + public function update1810(): void + { + $fields = $this->dbo->query('DESC ' . TABLE_DEMANDPOOL)->fetchAll(); + foreach($fields as $field) + { + if($field->Field == 'products') return; + } + + /* Execute open edition. */ + $this->saveLogs('Execute 18_10'); + $this->execSQL($this->getUpgradeFile('18.10')); + } + + /** + * 检查是否添加了18.10.1版本的需求反馈字段,如果没有就添加。 + * Check if the demand feedback field of version 18.10.1 is added, if not, add it. + * + * @access public + * @return void + */ + public function update18101(): void + { + $fields = $this->dbo->query('DESC ' . TABLE_DEMAND)->fetchAll(); + foreach($fields as $field) + { + if($field->Field == 'feedback') return; + } + + /* Execute open edition. */ + $this->saveLogs('Execute 18_10_1'); + $this->execSQL($this->getUpgradeFile('18.10.1')); + } } From 40e7c937fe52dd46375a1ea9311d2c8d720afd1d Mon Sep 17 00:00:00 2001 From: liyang Date: Thu, 29 Feb 2024 16:47:33 +0800 Subject: [PATCH 024/276] * Fix bug #46144. --- module/execution/js/linkstory.ui.js | 6 ++++++ module/execution/ui/linkstory.html.php | 2 ++ 2 files changed, 8 insertions(+) diff --git a/module/execution/js/linkstory.ui.js b/module/execution/js/linkstory.ui.js index 0a33932898..be666147df 100644 --- a/module/execution/js/linkstory.ui.js +++ b/module/execution/js/linkstory.ui.js @@ -33,6 +33,12 @@ $(document).off('click','.batch-btn').on('click', '.batch-btn', function(e) */ window.onRenderLinkStoryCell = function(result, {row, col}) { + if(col.name == 'title') + { + if(row.data.parent > 0) html = ""+ childrenAB +" "; + if(html) result.unshift({html}); + } + if(col.name !== 'branch') { return result; diff --git a/module/execution/ui/linkstory.html.php b/module/execution/ui/linkstory.html.php index ec068be9bd..d69e3e6248 100644 --- a/module/execution/ui/linkstory.html.php +++ b/module/execution/ui/linkstory.html.php @@ -58,6 +58,8 @@ if(!isInModal()) } $objectType = $object->type == 'project' ? 'projectstory' : 'execution'; + +jsVar('childrenAB', $lang->story->childrenAB); dtable ( set::groupDivider(true), From 2abda948b79749c9ab5ebcf1d17265a985a7505a Mon Sep 17 00:00:00 2001 From: liugang Date: Thu, 29 Feb 2024 17:04:23 +0800 Subject: [PATCH 025/276] - upgrade: remove duplicate method. --- module/upgrade/model.php | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 76748667c8..4ee3932ae0 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -8530,21 +8530,6 @@ class upgradeModel extends model if(!dao::isError()) $this->setting->deleteItems('owner=system&module=ai'); } - /** - * Update metric datetype. - * - * @access public - * @return void - */ - public function updateMetricDateType() - { - $this->loadModel('metric'); - foreach($this->config->metric->dateType as $code => $dateType) - { - $this->dao->update(TABLE_METRIC)->set('dateType')->eq($dateType)->where('code')->eq($code)->exec(); - } - } - /** * 检查办公应用是否有数据,没有就隐藏。 * Check if the office app has data, if not, hide it. From 35fc728cd34b576831eb8cb020e5d47eb2481194 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 17:04:50 +0800 Subject: [PATCH 026/276] + Add notify user. --- misc/ci/Jenkinsfile.downgrade | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/misc/ci/Jenkinsfile.downgrade b/misc/ci/Jenkinsfile.downgrade index 841813d29c..f0629f4bea 100755 --- a/misc/ci/Jenkinsfile.downgrade +++ b/misc/ci/Jenkinsfile.downgrade @@ -44,7 +44,7 @@ pipeline { env.GIT_URL = sh(returnStdout: true, script: 'git config --get remote.origin.url').trim() env.GIT_COMMIT = sh(returnStdout: true, script: 'git rev-parse HEAD').trim() - + def j = job.newJob() env.GIT_HOST = "git.zcorp.cc" @@ -54,10 +54,10 @@ pipeline { zentaopms.setupEnvAfterCheckout() // def ximUsers = sh(returnStdout: true,script: 'jq -r .notice.users < ci.json').trim() - env.XIM_USERS = "qishiyao" + env.XIM_USERS = "qishiyao,caoyanyi" // env.XIM_GROUPS = "31a0008b-6e3e-4b7f-9b7b-396a46b1f8f4" } - + } } From 7824f336be9dd19530aee07b886962f3b119b8d2 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 17:05:11 +0800 Subject: [PATCH 027/276] * Adjust version info to config file. --- config/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.php b/config/config.php index 5e262f8143..594c0ce8d8 100644 --- a/config/config.php +++ b/config/config.php @@ -16,7 +16,7 @@ if(!class_exists('config')){class config{}} if(!function_exists('getWebRoot')){function getWebRoot(){}} /* 基本设置。Basic settings. */ -$config->version = '20.0.stable'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. +$config->version = '20.0'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. $config->liteVersion = '1.2'; // 迅捷版版本。 The version of Lite. $config->charset = 'UTF-8'; // ZenTaoPHP的编码。 The encoding of ZenTaoPHP. $config->cookieLife = time() + 2592000; // Cookie的生存时间。The cookie life time. From 606648e6c7c620dc6ca8892ad4a717cada92e14a Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 21:54:47 +0800 Subject: [PATCH 028/276] + Add standard sql. --- db/standard/zentao20.0.sql | 4297 ++++++++++++++++++++++++++++++++++++ 1 file changed, 4297 insertions(+) create mode 100644 db/standard/zentao20.0.sql diff --git a/db/standard/zentao20.0.sql b/db/standard/zentao20.0.sql new file mode 100644 index 0000000000..75db27d26b --- /dev/null +++ b/db/standard/zentao20.0.sql @@ -0,0 +1,4297 @@ +CREATE TABLE `zt_account` ( + `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `provider` varchar(255) NOT NULL DEFAULT '', + `adminURI` varchar(255) NOT NULL DEFAULT '', + `account` varchar(255) NOT NULL DEFAULT '', + `password` varchar(255) NOT NULL DEFAULT '', + `email` varchar(255) NOT NULL DEFAULT '', + `mobile` varchar(255) NOT NULL DEFAULT '', + `extra` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `name` (`name`), + KEY `provider` (`provider`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_acl` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `type` char(40) NOT NULL DEFAULT 'whitelist', + `source` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_action` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `actor` varchar(100) NOT NULL DEFAULT '', + `action` varchar(80) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `comment` text DEFAULT NULL, + `extra` text DEFAULT NULL, + `read` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `efforted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `date` (`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `action` (`action`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_actionrecent` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `actor` varchar(100) NOT NULL DEFAULT '', + `action` varchar(80) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `comment` text DEFAULT NULL, + `extra` text DEFAULT NULL, + `read` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `efforted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `date` (`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `action` (`action`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_activity` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `process` mediumint(9) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `optional` varchar(255) NOT NULL DEFAULT '', + `tailorNorm` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `order` mediumint(8) DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_ai_message` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `user` mediumint(8) unsigned NOT NULL, + `type` enum('req','res','ntf') NOT NULL, + `content` text NOT NULL, + `createdDate` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_ai_miniprogram` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL, + `category` varchar(30) NOT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `icon` varchar(30) NOT NULL DEFAULT 'writinghand-7', + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `published` enum('0','1') NOT NULL DEFAULT '0', + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `prompt` text NOT NULL, + `builtIn` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_ai_miniprogramfield` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `name` varchar(30) NOT NULL, + `type` enum('radio','checkbox','text','textarea') DEFAULT 'text', + `placeholder` text DEFAULT NULL, + `options` text DEFAULT NULL, + `required` enum('0','1') DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_ai_miniprogramstar` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `appID` mediumint(8) unsigned NOT NULL, + `userID` mediumint(8) unsigned NOT NULL, + `createdDate` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `appID` (`appID`,`userID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_ai_model` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(20) NOT NULL, + `vendor` varchar(20) NOT NULL, + `credentials` text NOT NULL, + `proxy` text DEFAULT NULL, + `name` varchar(20) DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + `enabled` enum('0','1') NOT NULL DEFAULT '1', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_ai_prompt` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(20) NOT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `module` varchar(30) DEFAULT NULL, + `source` text DEFAULT NULL, + `targetForm` varchar(30) DEFAULT NULL, + `purpose` text DEFAULT NULL, + `elaboration` text DEFAULT NULL, + `role` text DEFAULT NULL, + `characterization` text DEFAULT NULL, + `status` enum('draft','active') NOT NULL DEFAULT 'draft', + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_ai_promptrole` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) DEFAULT NULL, + `desc` text DEFAULT NULL, + `model` mediumint(8) unsigned DEFAULT NULL, + `role` text DEFAULT NULL, + `characterization` text DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_api` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `product` varchar(255) NOT NULL DEFAULT '', + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `module` int(11) unsigned NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `protocol` varchar(10) NOT NULL DEFAULT '', + `method` varchar(10) NOT NULL DEFAULT '', + `requestType` varchar(100) NOT NULL DEFAULT '', + `responseType` varchar(100) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '0', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `paramsExample` text DEFAULT NULL, + `responseExample` text DEFAULT NULL, + `response` text DEFAULT NULL, + `commonParams` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_api_lib_release` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `desc` varchar(255) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `snap` mediumtext DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_apispec` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `doc` int(11) unsigned NOT NULL DEFAULT 0, + `module` int(11) unsigned NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `protocol` varchar(10) NOT NULL DEFAULT '', + `method` varchar(10) NOT NULL DEFAULT '', + `requestType` varchar(100) NOT NULL DEFAULT '', + `responseType` varchar(100) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `owner` varchar(255) NOT NULL DEFAULT '0', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `paramsExample` text DEFAULT NULL, + `responseExample` text DEFAULT NULL, + `response` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_apistruct` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `lib` int(11) unsigned NOT NULL DEFAULT 0, + `name` varchar(30) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `attribute` text DEFAULT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_apistruct_spec` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `desc` varchar(255) NOT NULL DEFAULT '', + `attribute` text DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '0', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_approval` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `flow` mediumint(8) NOT NULL DEFAULT 0, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `nodes` mediumtext DEFAULT NULL, + `version` mediumint(9) NOT NULL DEFAULT 0, + `status` varchar(20) NOT NULL DEFAULT 'doing', + `result` varchar(20) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_approvalflow` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `code` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` mediumint(8) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `type` varchar(30) NOT NULL DEFAULT '', + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_approvalflowobject` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `root` int(8) NOT NULL DEFAULT 0, + `flow` int(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_approvalflowspec` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `flow` mediumint(8) NOT NULL DEFAULT 0, + `version` mediumint(8) NOT NULL DEFAULT 0, + `nodes` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_approvalnode` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `approval` mediumint(8) NOT NULL DEFAULT 0, + `type` enum('review','cc') NOT NULL DEFAULT 'review', + `title` varchar(255) NOT NULL DEFAULT '', + `account` char(30) NOT NULL DEFAULT '', + `node` varchar(100) NOT NULL DEFAULT '', + `reviewType` varchar(100) NOT NULL DEFAULT 'manual', + `multipleType` enum('and','or') NOT NULL DEFAULT 'and', + `prev` mediumtext DEFAULT NULL, + `next` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT 'wait', + `result` varchar(10) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `opinion` mediumtext DEFAULT NULL, + `extra` mediumtext DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_reviewed_date` (`reviewedDate`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_approvalobject` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `approval` int(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `extra` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_approvalrole` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `code` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `users` longtext DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_artifactrepo` ( + `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(45) NOT NULL DEFAULT '', + `products` varchar(255) NOT NULL DEFAULT '', + `serverID` smallint(8) NOT NULL DEFAULT 0, + `repoName` varchar(45) NOT NULL DEFAULT '', + `format` varchar(10) NOT NULL DEFAULT '', + `type` char(7) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_assetlib` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_attend` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `signIn` time DEFAULT NULL, + `signOut` time DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `ip` varchar(15) NOT NULL DEFAULT '', + `device` varchar(30) NOT NULL DEFAULT '', + `client` varchar(20) NOT NULL DEFAULT '', + `manualIn` time DEFAULT NULL, + `manualOut` time DEFAULT NULL, + `reason` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `reviewStatus` varchar(30) DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `attend` (`date`,`account`), + KEY `account` (`account`), + KEY `date` (`date`), + KEY `status` (`status`), + KEY `reason` (`reason`), + KEY `reviewStatus` (`reviewStatus`), + KEY `reviewedBy` (`reviewedBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_attendstat` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `month` char(10) NOT NULL DEFAULT '', + `normal` decimal(12,2) NOT NULL DEFAULT 0.00, + `late` decimal(12,2) NOT NULL DEFAULT 0.00, + `early` decimal(12,2) NOT NULL DEFAULT 0.00, + `absent` decimal(12,2) NOT NULL DEFAULT 0.00, + `trip` decimal(12,2) NOT NULL DEFAULT 0.00, + `egress` decimal(12,2) NOT NULL DEFAULT 0.00, + `lieu` decimal(12,2) NOT NULL DEFAULT 0.00, + `paidLeave` decimal(12,2) NOT NULL DEFAULT 0.00, + `unpaidLeave` decimal(12,2) NOT NULL DEFAULT 0.00, + `timeOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `restOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `holidayOvertime` decimal(12,2) NOT NULL DEFAULT 0.00, + `deserve` decimal(12,2) NOT NULL DEFAULT 0.00, + `actual` decimal(12,2) NOT NULL DEFAULT 0.00, + `status` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `attend` (`month`,`account`), + KEY `account` (`account`), + KEY `month` (`month`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_auditcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT 'waterfall', + `practiceArea` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` int(11) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_auditplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dateType` char(30) NOT NULL DEFAULT '', + `config` text DEFAULT NULL, + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `process` mediumint(9) NOT NULL DEFAULT 0, + `processType` char(30) NOT NULL DEFAULT '', + `checkDate` date DEFAULT NULL, + `checkedBy` varchar(30) NOT NULL DEFAULT '', + `realCheckDate` date DEFAULT NULL, + `result` char(30) NOT NULL DEFAULT '', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `checkBy` varchar(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_auditresult` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `auditplan` mediumint(8) NOT NULL DEFAULT 0, + `listID` mediumint(8) NOT NULL DEFAULT 0, + `result` char(30) NOT NULL DEFAULT '', + `checkedBy` varchar(30) NOT NULL DEFAULT '', + `checkedDate` date DEFAULT NULL, + `comment` text DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_automation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `node` int(11) unsigned NOT NULL DEFAULT 0, + `product` int(11) unsigned NOT NULL DEFAULT 0, + `scriptPath` varchar(255) NOT NULL DEFAULT '', + `shell` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_basicmeas` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `purpose` varchar(50) NOT NULL DEFAULT '', + `scope` char(30) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `name` varchar(90) NOT NULL DEFAULT '', + `code` char(30) NOT NULL DEFAULT '', + `unit` varchar(10) NOT NULL DEFAULT '', + `configure` text DEFAULT NULL, + `params` text DEFAULT NULL, + `definition` text DEFAULT NULL, + `source` varchar(255) NOT NULL DEFAULT '', + `collectType` varchar(30) NOT NULL DEFAULT '', + `collectConf` text DEFAULT NULL, + `execTime` varchar(30) NOT NULL DEFAULT '', + `collectedBy` varchar(10) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_block` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `dashboard` varchar(20) NOT NULL DEFAULT '', + `module` varchar(20) NOT NULL DEFAULT '', + `title` varchar(100) NOT NULL DEFAULT '', + `block` varchar(30) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `width` enum('1','2','3') NOT NULL DEFAULT '1', + `height` smallint(6) unsigned NOT NULL DEFAULT 3, + `left` enum('0','1','2') NOT NULL DEFAULT '0', + `top` smallint(5) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `hidden` tinyint(1) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_branch` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `default` enum('0','1') NOT NULL DEFAULT '0', + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `desc` varchar(255) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `closedDate` date DEFAULT NULL, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_budget` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` char(30) NOT NULL DEFAULT '', + `subject` mediumint(8) NOT NULL DEFAULT 0, + `amount` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_bug` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `injection` mediumint(8) unsigned NOT NULL DEFAULT 0, + `identify` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `toTask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `toStory` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `severity` tinyint(4) NOT NULL DEFAULT 0, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT '', + `os` varchar(255) NOT NULL DEFAULT '', + `browser` varchar(255) NOT NULL DEFAULT '', + `hardware` varchar(30) NOT NULL DEFAULT '', + `found` varchar(30) NOT NULL DEFAULT '', + `steps` mediumtext DEFAULT NULL, + `status` enum('active','resolved','closed') NOT NULL DEFAULT 'active', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `confirmed` tinyint(1) NOT NULL DEFAULT 0, + `activatedCount` smallint(6) NOT NULL DEFAULT 0, + `activatedDate` datetime DEFAULT NULL, + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `openedBuild` varchar(255) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deadline` date DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolution` varchar(30) NOT NULL DEFAULT '', + `resolvedBuild` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `duplicateBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `relatedBug` varchar(255) NOT NULL DEFAULT '', + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `caseVersion` smallint(6) NOT NULL DEFAULT 1, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `result` mediumint(8) unsigned NOT NULL DEFAULT 0, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `mr` mediumint(8) unsigned NOT NULL DEFAULT 0, + `entry` text DEFAULT NULL, + `lines` varchar(10) NOT NULL DEFAULT '', + `v1` varchar(40) NOT NULL DEFAULT '', + `v2` varchar(40) NOT NULL DEFAULT '', + `repoType` varchar(30) NOT NULL DEFAULT '', + `issueKey` varchar(50) NOT NULL DEFAULT '', + `testtask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `status` (`status`), + KEY `plan` (`plan`), + KEY `story` (`story`), + KEY `case` (`case`), + KEY `toStory` (`toStory`), + KEY `result` (`result`), + KEY `assignedTo` (`assignedTo`), + KEY `deleted` (`deleted`), + KEY `project` (`project`), + KEY `product_status_deleted` (`product`,`status`,`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_build` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `builds` varchar(255) NOT NULL DEFAULT '', + `name` char(150) NOT NULL DEFAULT '', + `scmPath` char(255) NOT NULL DEFAULT '', + `filePath` char(255) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `artifactRepoID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `builder` char(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_burn` ( + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` date NOT NULL, + `estimate` float NOT NULL DEFAULT 0, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `storyPoint` float NOT NULL DEFAULT 0, + PRIMARY KEY (`execution`,`date`,`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_case` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(30) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `title` varchar(255) NOT NULL DEFAULT '', + `precondition` text DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 3, + `type` char(30) NOT NULL DEFAULT '1', + `auto` varchar(10) NOT NULL DEFAULT 'no', + `frame` varchar(10) NOT NULL DEFAULT '', + `stage` varchar(255) NOT NULL DEFAULT '', + `howRun` varchar(30) NOT NULL DEFAULT '', + `script` longtext DEFAULT NULL, + `scriptedBy` varchar(30) NOT NULL DEFAULT '', + `scriptedDate` date DEFAULT NULL, + `scriptStatus` varchar(30) NOT NULL DEFAULT '', + `scriptLocation` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '1', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `frequency` enum('1','2','3') NOT NULL DEFAULT '1', + `order` tinyint(30) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` date DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `version` tinyint(3) unsigned NOT NULL DEFAULT 0, + `linkCase` varchar(255) NOT NULL DEFAULT '', + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromCaseID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromCaseVersion` mediumint(8) unsigned NOT NULL DEFAULT 1, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `lastRunDate` datetime DEFAULT NULL, + `lastRunResult` char(30) NOT NULL DEFAULT '', + `scene` int(11) NOT NULL DEFAULT 0, + `sort` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `story` (`story`), + KEY `fromBug` (`fromBug`), + KEY `module` (`module`), + KEY `scene` (`scene`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_casestep` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + `type` varchar(10) NOT NULL DEFAULT 'step', + `desc` text DEFAULT NULL, + `expect` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `case` (`case`), + KEY `version` (`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_cfd` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `execution` int(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `name` char(30) NOT NULL DEFAULT '', + `count` smallint(6) NOT NULL DEFAULT 0, + `date` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `execution_type_name_date` (`execution`,`type`,`name`,`date`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_chart` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT '', + `group` varchar(255) NOT NULL DEFAULT '', + `dataset` varchar(30) NOT NULL DEFAULT '0', + `desc` text DEFAULT NULL, + `settings` mediumtext DEFAULT NULL, + `filters` mediumtext DEFAULT NULL, + `step` tinyint(3) unsigned NOT NULL DEFAULT 0, + `fields` mediumtext DEFAULT NULL, + `langs` text DEFAULT NULL, + `sql` mediumtext DEFAULT NULL, + `stage` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `objects` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_charter` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `level` int(8) NOT NULL DEFAULT 0, + `category` char(30) NOT NULL DEFAULT '', + `market` varchar(30) NOT NULL DEFAULT '', + `check` enum('0','1') NOT NULL DEFAULT '0', + `appliedBy` char(30) NOT NULL DEFAULT '', + `appliedDate` datetime DEFAULT NULL, + `budget` char(30) NOT NULL DEFAULT '', + `budgetUnit` char(30) NOT NULL DEFAULT '', + `product` mediumint(8) NOT NULL DEFAULT 0, + `roadmap` mediumint(8) NOT NULL DEFAULT 0, + `spec` mediumtext DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `charterFiles` text DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(255) NOT NULL DEFAULT '', + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedResult` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `meetingDate` date DEFAULT NULL, + `meetingLocation` varchar(255) NOT NULL DEFAULT '', + `meetingMinutes` mediumtext DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_cmcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL DEFAULT '', + `projectType` varchar(255) NOT NULL DEFAULT '', + `title` int(11) NOT NULL DEFAULT 0, + `contents` text DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `order` int(11) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_company` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(120) DEFAULT NULL, + `phone` char(20) DEFAULT NULL, + `fax` char(20) DEFAULT NULL, + `address` char(120) DEFAULT NULL, + `zipcode` char(10) DEFAULT NULL, + `website` char(120) DEFAULT NULL, + `backyard` char(120) DEFAULT NULL, + `guest` enum('1','0') NOT NULL DEFAULT '0', + `admins` char(255) DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_compile` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `queue` mediumint(8) NOT NULL DEFAULT 0, + `status` varchar(255) NOT NULL DEFAULT '', + `logs` text DEFAULT NULL, + `atTime` varchar(10) NOT NULL DEFAULT '', + `testtask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `tag` varchar(255) NOT NULL DEFAULT '', + `times` tinyint(3) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `updateDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_config` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT '', + `owner` char(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `section` char(30) NOT NULL DEFAULT '', + `key` char(30) NOT NULL DEFAULT '', + `value` longtext DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`vision`,`owner`,`module`,`section`,`key`), + KEY `vision` (`vision`), + KEY `owner` (`owner`), + KEY `module` (`module`), + KEY `key` (`key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_cron` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `m` varchar(20) NOT NULL DEFAULT '', + `h` varchar(20) NOT NULL DEFAULT '', + `dom` varchar(20) NOT NULL DEFAULT '', + `mon` varchar(20) NOT NULL DEFAULT '', + `dow` varchar(20) NOT NULL DEFAULT '', + `command` text DEFAULT NULL, + `remark` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `buildin` tinyint(1) NOT NULL DEFAULT 0, + `status` varchar(20) NOT NULL DEFAULT '', + `lastTime` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `lastTime` (`lastTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_dashboard` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `dimension` int(8) NOT NULL DEFAULT 0, + `module` mediumint(8) NOT NULL DEFAULT 0, + `desc` mediumtext DEFAULT NULL, + `layout` mediumtext DEFAULT NULL, + `filters` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_dataset` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(155) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `fields` mediumtext DEFAULT NULL, + `objects` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_dataview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(155) NOT NULL DEFAULT '', + `code` varchar(50) NOT NULL DEFAULT '', + `view` varchar(57) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `fields` mediumtext DEFAULT NULL, + `langs` text DEFAULT NULL, + `objects` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_demand` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `pool` int(8) NOT NULL DEFAULT 0, + `module` int(8) NOT NULL DEFAULT 0, + `product` varchar(255) NOT NULL DEFAULT '', + `parent` mediumint(8) NOT NULL DEFAULT 0, + `pri` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `sourceNote` varchar(255) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `feedbackedBy` varchar(255) NOT NULL DEFAULT '', + `email` varchar(255) NOT NULL DEFAULT '', + `assignedTo` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `reviewedBy` text DEFAULT NULL, + `reviewedDate` datetime DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `duration` char(30) NOT NULL DEFAULT '', + `BSA` char(30) NOT NULL DEFAULT '', + `story` mediumint(8) NOT NULL DEFAULT 0, + `roadmap` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `mailto` text DEFAULT NULL, + `duplicateDemand` mediumint(8) DEFAULT NULL, + `childDemands` varchar(255) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `vision` varchar(255) NOT NULL DEFAULT 'or', + `color` varchar(255) NOT NULL DEFAULT '', + `changedBy` char(30) NOT NULL DEFAULT '', + `changedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `submitedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `activatedDate` datetime DEFAULT NULL, + `distributedBy` varchar(30) NOT NULL DEFAULT '', + `distributedDate` datetime DEFAULT NULL, + `feedback` mediumint(9) NOT NULL DEFAULT 0, + `keywords` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_demandpool` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `products` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `owner` text DEFAULT NULL, + `reviewer` text DEFAULT NULL, + `acl` char(30) DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_demandreview` ( + `demand` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `reviewer` varchar(30) NOT NULL DEFAULT '', + `result` varchar(30) NOT NULL DEFAULT '', + `reviewDate` datetime NOT NULL, + UNIQUE KEY `demand` (`demand`,`version`,`reviewer`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_demandspec` ( + `demand` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `spec` mediumtext DEFAULT NULL, + `verify` mediumtext DEFAULT NULL, + `files` text DEFAULT NULL, + UNIQUE KEY `demand` (`demand`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_deploy` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + `owner` char(30) NOT NULL DEFAULT '', + `members` text DEFAULT NULL, + `notify` text DEFAULT NULL, + `cases` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `result` varchar(20) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_deployproduct` ( + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `release` mediumint(8) unsigned NOT NULL DEFAULT 0, + `package` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `deploy_product_release` (`deploy`,`product`,`release`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_deployscope` ( + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + `service` mediumint(8) unsigned NOT NULL DEFAULT 0, + `hosts` text DEFAULT NULL, + `remove` text DEFAULT NULL, + `add` text DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_deploystep` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `stage` varchar(30) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `assignedTo` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `finishedBy` char(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_dept` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(60) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `position` char(30) NOT NULL DEFAULT '', + `function` char(255) NOT NULL DEFAULT '', + `manager` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_design` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '', + `product` varchar(255) NOT NULL DEFAULT '', + `commit` text DEFAULT NULL, + `commitedBy` varchar(30) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `story` char(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_designspec` ( + `design` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `files` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `design` (`design`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_dimension` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_doc` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lib` varchar(30) NOT NULL DEFAULT '', + `template` varchar(30) NOT NULL DEFAULT '', + `templateType` varchar(30) NOT NULL DEFAULT '', + `chapterType` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'normal', + `parent` smallint(6) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + `views` smallint(6) unsigned NOT NULL DEFAULT 0, + `assetLib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assetLibType` varchar(30) NOT NULL DEFAULT '', + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) NOT NULL DEFAULT 1, + `draft` longtext DEFAULT NULL, + `collects` smallint(6) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `editingDate` text DEFAULT NULL, + `editedList` text DEFAULT NULL, + `mailto` text DEFAULT NULL, + `acl` varchar(10) NOT NULL DEFAULT 'open', + `groups` varchar(255) NOT NULL DEFAULT '', + `users` text DEFAULT NULL, + `version` smallint(6) unsigned NOT NULL DEFAULT 1, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `lib` (`lib`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_docaction` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` varchar(80) NOT NULL DEFAULT '', + `actor` char(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `doc` (`doc`), + KEY `actor` (`actor`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_doccontent` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `digest` varchar(255) NOT NULL DEFAULT '', + `content` longtext DEFAULT NULL, + `files` text DEFAULT NULL, + `type` varchar(10) NOT NULL DEFAULT '', + `version` smallint(6) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `doc_version` (`doc`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_doclib` ( + `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(60) NOT NULL DEFAULT '', + `baseUrl` varchar(255) NOT NULL DEFAULT '', + `acl` varchar(10) NOT NULL DEFAULT 'open', + `groups` varchar(255) NOT NULL DEFAULT '', + `users` text DEFAULT NULL, + `main` enum('0','1') NOT NULL DEFAULT '0', + `collector` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `order` tinyint(5) unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_domain` ( + `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, + `domain` varchar(255) NOT NULL DEFAULT '', + `adminURI` varchar(255) NOT NULL DEFAULT '', + `resolverURI` varchar(255) NOT NULL DEFAULT '', + `register` varchar(255) NOT NULL DEFAULT '', + `expiredDate` datetime DEFAULT NULL, + `renew` varchar(255) NOT NULL DEFAULT '', + `account` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `domain` (`domain`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_durationestimation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` mediumint(9) NOT NULL DEFAULT 0, + `workload` varchar(255) NOT NULL DEFAULT '', + `worktimeRate` varchar(255) NOT NULL DEFAULT '', + `people` varchar(255) NOT NULL DEFAULT '', + `startDate` date DEFAULT NULL, + `endDate` date DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_effort` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` text DEFAULT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `work` text DEFAULT NULL, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `date` date DEFAULT NULL, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `begin` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `end` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `extra` text DEFAULT NULL, + `order` tinyint(3) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `execution` (`execution`), + KEY `objectID` (`objectID`), + KEY `date` (`date`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_entry` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `account` varchar(30) NOT NULL DEFAULT '', + `code` varchar(20) NOT NULL DEFAULT '', + `key` varchar(32) NOT NULL DEFAULT '', + `freePasswd` enum('0','1') NOT NULL DEFAULT '0', + `ip` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `calledTime` int(11) unsigned NOT NULL DEFAULT 0, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_expect` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `userID` mediumint(8) NOT NULL DEFAULT 0, + `project` mediumint(8) NOT NULL DEFAULT 0, + `expect` text DEFAULT NULL, + `progress` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_extension` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(150) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `version` varchar(50) NOT NULL DEFAULT '', + `author` varchar(100) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `license` text DEFAULT NULL, + `type` varchar(20) NOT NULL DEFAULT 'extension', + `site` varchar(150) NOT NULL DEFAULT '', + `zentaoCompatible` varchar(100) NOT NULL DEFAULT '', + `installedTime` datetime DEFAULT NULL, + `depends` varchar(100) NOT NULL DEFAULT '', + `dirs` mediumtext DEFAULT NULL, + `files` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`), + KEY `name` (`name`), + KEY `installedTime` (`installedTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_faq` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `module` mediumint(9) NOT NULL DEFAULT 0, + `product` mediumint(9) NOT NULL DEFAULT 0, + `question` varchar(255) NOT NULL DEFAULT '', + `answer` text DEFAULT NULL, + `addedtime` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_feedback` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `solution` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 2, + `status` varchar(30) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `public` enum('0','1') NOT NULL DEFAULT '0', + `notify` enum('0','1') NOT NULL DEFAULT '0', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `source` varchar(255) NOT NULL DEFAULT '', + `likes` text DEFAULT NULL, + `result` mediumint(8) unsigned NOT NULL DEFAULT 0, + `faq` mediumint(8) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `processedBy` char(30) NOT NULL DEFAULT '', + `processedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(255) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `repeatFeedback` mediumint(8) NOT NULL DEFAULT 0, + `mailto` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_feedbackview` ( + `account` char(30) NOT NULL DEFAULT '', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `account_product` (`account`,`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_file` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `pathname` char(100) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `extension` char(30) NOT NULL DEFAULT '', + `size` int(11) unsigned NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `downloads` mediumint(8) unsigned NOT NULL DEFAULT 0, + `extra` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_gapanalysis` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `role` varchar(20) NOT NULL DEFAULT '', + `analysis` mediumtext DEFAULT NULL, + `needTrain` enum('no','yes') NOT NULL DEFAULT 'no', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `project_account` (`project`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_group` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `name` char(30) NOT NULL DEFAULT '', + `role` char(30) NOT NULL DEFAULT '', + `desc` char(255) NOT NULL DEFAULT '', + `acl` text DEFAULT NULL, + `developer` enum('0','1') NOT NULL DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_grouppriv` ( + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` char(30) NOT NULL DEFAULT '', + `method` char(30) NOT NULL DEFAULT '', + UNIQUE KEY `group` (`group`,`module`,`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_history` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `action` mediumint(8) unsigned NOT NULL DEFAULT 0, + `field` varchar(30) NOT NULL DEFAULT '', + `old` text DEFAULT NULL, + `new` text DEFAULT NULL, + `diff` mediumtext DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_holiday` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL DEFAULT '', + `type` enum('holiday','working') NOT NULL DEFAULT 'holiday', + `desc` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_host` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT 'normal', + `hostType` varchar(30) NOT NULL DEFAULT '', + `mac` varchar(128) NOT NULL DEFAULT '', + `memory` varchar(30) NOT NULL DEFAULT '', + `diskSize` varchar(30) NOT NULL DEFAULT '', + `status` varchar(50) NOT NULL DEFAULT '', + `secret` varchar(50) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `tokenSN` varchar(50) NOT NULL DEFAULT '', + `tokenTime` datetime DEFAULT NULL, + `oldTokenSN` varchar(50) NOT NULL DEFAULT '', + `vsoft` varchar(30) NOT NULL DEFAULT '', + `heartbeat` datetime DEFAULT NULL, + `zap` varchar(10) NOT NULL DEFAULT '', + `provider` varchar(255) NOT NULL DEFAULT '', + `vnc` int(11) NOT NULL DEFAULT 0, + `ztf` int(11) NOT NULL DEFAULT 0, + `zd` int(11) NOT NULL DEFAULT 0, + `ssh` int(11) NOT NULL DEFAULT 0, + `parent` int(11) unsigned NOT NULL DEFAULT 0, + `image` int(11) unsigned NOT NULL DEFAULT 0, + `admin` smallint(5) unsigned NOT NULL DEFAULT 0, + `serverRoom` mediumint(8) unsigned NOT NULL DEFAULT 0, + `serverModel` varchar(256) NOT NULL DEFAULT '', + `hardwareType` varchar(64) NOT NULL DEFAULT '', + `cpuBrand` varchar(128) NOT NULL DEFAULT '', + `cpuModel` varchar(128) NOT NULL DEFAULT '', + `cpuNumber` varchar(16) NOT NULL DEFAULT '', + `cpuCores` varchar(30) NOT NULL DEFAULT '', + `intranet` varchar(128) NOT NULL DEFAULT '', + `extranet` varchar(128) NOT NULL DEFAULT '', + `osName` varchar(64) NOT NULL DEFAULT '', + `osVersion` varchar(64) NOT NULL DEFAULT '', + `group` varchar(128) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_chat` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `gid` char(40) NOT NULL DEFAULT '', + `name` varchar(60) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT 'group', + `admins` varchar(255) NOT NULL DEFAULT '', + `committers` varchar(255) NOT NULL DEFAULT '', + `subject` mediumint(8) unsigned NOT NULL DEFAULT 0, + `public` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `ownedBy` varchar(30) NOT NULL DEFAULT '', + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `mergedDate` datetime DEFAULT NULL, + `lastActiveTime` datetime DEFAULT NULL, + `lastMessage` int(11) unsigned NOT NULL DEFAULT 0, + `lastMessageIndex` int(11) unsigned NOT NULL DEFAULT 0, + `dismissDate` datetime DEFAULT NULL, + `pinnedMessages` text DEFAULT NULL, + `mergedChats` text DEFAULT NULL, + `adminInvite` enum('0','1') NOT NULL DEFAULT '0', + `avatar` text DEFAULT NULL, + `archiveDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `gid` (`gid`), + KEY `name` (`name`), + KEY `type` (`type`), + KEY `public` (`public`), + KEY `createdBy` (`createdBy`), + KEY `editedBy` (`editedBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_chat_message_index` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `gid` char(40) NOT NULL DEFAULT '', + `tableName` char(64) NOT NULL DEFAULT '', + `start` int(11) unsigned NOT NULL DEFAULT 0, + `end` int(11) unsigned NOT NULL DEFAULT 0, + `startIndex` int(11) unsigned NOT NULL DEFAULT 0, + `endIndex` int(11) unsigned NOT NULL DEFAULT 0, + `startDate` datetime DEFAULT NULL, + `endDate` datetime DEFAULT NULL, + `count` mediumint(8) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `chattable` (`gid`,`tableName`), + KEY `start` (`start`), + KEY `end` (`end`), + KEY `startDate` (`startDate`), + KEY `endDate` (`endDate`), + KEY `chatstartindex` (`gid`,`startIndex`), + KEY `chatendindex` (`gid`,`endIndex`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_chatuser` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `cgid` char(40) NOT NULL DEFAULT '', + `user` mediumint(8) NOT NULL DEFAULT 0, + `order` smallint(5) NOT NULL DEFAULT 0, + `star` enum('0','1') NOT NULL DEFAULT '0', + `hide` enum('0','1') NOT NULL DEFAULT '0', + `mute` enum('0','1') NOT NULL DEFAULT '0', + `freeze` enum('0','1') NOT NULL DEFAULT '0', + `join` datetime DEFAULT NULL, + `quit` datetime DEFAULT NULL, + `category` varchar(40) NOT NULL DEFAULT '', + `lastReadMessage` int(11) unsigned NOT NULL DEFAULT 0, + `lastReadMessageIndex` int(11) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `chatuser` (`cgid`,`user`), + KEY `cgid` (`cgid`), + KEY `user` (`user`), + KEY `order` (`order`), + KEY `star` (`star`), + KEY `hide` (`hide`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_client` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `version` char(30) NOT NULL DEFAULT '', + `desc` varchar(100) NOT NULL DEFAULT '', + `changeLog` text DEFAULT NULL, + `strategy` varchar(10) NOT NULL DEFAULT '', + `downloads` text DEFAULT NULL, + `createdDate` datetime DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `status` enum('released','wait') NOT NULL DEFAULT 'wait', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_conference` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `rid` char(40) NOT NULL DEFAULT '', + `cgid` char(40) NOT NULL DEFAULT '', + `status` enum('closed','open','notStarted') NOT NULL DEFAULT 'closed', + `participants` text DEFAULT NULL, + `subscribers` text DEFAULT NULL, + `invitee` text DEFAULT NULL, + `openedBy` mediumint(8) NOT NULL DEFAULT 0, + `openedDate` datetime DEFAULT NULL, + `topic` text DEFAULT NULL, + `startTime` datetime DEFAULT NULL, + `endTime` datetime DEFAULT NULL, + `password` char(20) NOT NULL DEFAULT '', + `type` enum('default','periodic','scheduled') NOT NULL DEFAULT 'default', + `number` char(20) NOT NULL DEFAULT '', + `note` text DEFAULT NULL, + `sentNotify` tinyint(1) NOT NULL DEFAULT 0, + `reminderTime` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_conferenceaction` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `rid` char(40) NOT NULL DEFAULT '', + `type` enum('create','invite','join','leave','close','publish') NOT NULL DEFAULT 'create', + `data` text DEFAULT NULL, + `user` mediumint(8) NOT NULL DEFAULT 0, + `date` datetime DEFAULT NULL, + `device` char(40) NOT NULL DEFAULT 'default', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_conferenceuser` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `conference` mediumint(8) NOT NULL DEFAULT 0, + `user` mediumint(8) NOT NULL DEFAULT 0, + `hide` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `conferenceuser` (`conference`,`user`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_message` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `gid` char(40) NOT NULL DEFAULT '', + `cgid` char(40) NOT NULL DEFAULT '', + `user` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `index` int(11) unsigned NOT NULL DEFAULT 0, + `type` enum('normal','broadcast','notify','bulletin','botcommand') NOT NULL DEFAULT 'normal', + `content` text DEFAULT NULL, + `contentType` enum('text','plain','emotion','image','file','object','code') NOT NULL DEFAULT 'text', + `data` text DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `mgid` (`gid`), + KEY `mcgid` (`cgid`), + KEY `muser` (`user`), + KEY `mtype` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_message_backup` ( + `id` int(11) unsigned NOT NULL DEFAULT 0, + `gid` char(40) NOT NULL DEFAULT '', + `cgid` char(40) NOT NULL DEFAULT '', + `user` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `index` int(11) unsigned NOT NULL DEFAULT 0, + `type` enum('normal','broadcast','notify') NOT NULL DEFAULT 'normal', + `content` text DEFAULT NULL, + `contentType` enum('text','plain','emotion','image','file','object','code') NOT NULL DEFAULT 'text', + `data` text DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0' +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_message_index` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `tableName` char(64) NOT NULL DEFAULT '', + `start` int(11) unsigned NOT NULL DEFAULT 0, + `end` int(11) unsigned NOT NULL DEFAULT 0, + `startDate` datetime DEFAULT NULL, + `endDate` datetime DEFAULT NULL, + `chats` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `tableName` (`tableName`), + KEY `start` (`start`), + KEY `end` (`end`), + KEY `startDate` (`startDate`), + KEY `endDate` (`endDate`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_messagestatus` ( + `user` mediumint(8) NOT NULL DEFAULT 0, + `message` int(11) unsigned NOT NULL DEFAULT 0, + `status` enum('waiting','sent','readed','deleted') NOT NULL DEFAULT 'waiting', + UNIQUE KEY `user` (`user`,`message`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_queue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `addDate` datetime DEFAULT NULL, + `processDate` datetime DEFAULT NULL, + `result` text DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_im_userdevice` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `user` mediumint(8) NOT NULL DEFAULT 0, + `device` char(40) NOT NULL DEFAULT 'default', + `deviceID` char(40) NOT NULL DEFAULT '', + `token` char(64) NOT NULL DEFAULT '', + `validUntil` datetime DEFAULT NULL, + `lastLogin` datetime DEFAULT NULL, + `lastLogout` datetime DEFAULT NULL, + `online` tinyint(1) NOT NULL DEFAULT 0, + `version` char(10) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `userdevice` (`user`,`device`), + KEY `user` (`user`), + KEY `lastLogin` (`lastLogin`), + KEY `lastLogout` (`lastLogout`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_image` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `host` int(11) unsigned NOT NULL DEFAULT 0, + `name` varchar(64) NOT NULL DEFAULT '', + `localName` varchar(64) NOT NULL DEFAULT '', + `address` varchar(64) NOT NULL DEFAULT '', + `path` varchar(64) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `osName` varchar(32) NOT NULL DEFAULT '', + `from` varchar(10) NOT NULL DEFAULT 'zentao', + `memory` float unsigned NOT NULL DEFAULT 0, + `disk` float unsigned NOT NULL DEFAULT 0, + `fileSize` float unsigned NOT NULL DEFAULT 0, + `md5` varchar(64) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `restoreDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_instance` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `solution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(50) NOT NULL DEFAULT '', + `appID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `appName` char(50) NOT NULL DEFAULT '', + `appVersion` char(20) NOT NULL DEFAULT '', + `chart` char(50) NOT NULL DEFAULT '', + `logo` varchar(255) NOT NULL DEFAULT '', + `version` char(50) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `introduction` text DEFAULT NULL, + `source` char(20) NOT NULL DEFAULT '', + `channel` char(20) NOT NULL DEFAULT '', + `k8name` char(64) NOT NULL DEFAULT '', + `status` char(20) NOT NULL DEFAULT '', + `pinned` enum('0','1') NOT NULL DEFAULT '0', + `domain` char(255) NOT NULL DEFAULT '', + `smtpSnippetName` char(30) NOT NULL DEFAULT '', + `ldapSnippetName` char(30) NOT NULL DEFAULT '', + `ldapSettings` text DEFAULT NULL, + `dbSettings` text DEFAULT NULL, + `autoBackup` tinyint(1) NOT NULL DEFAULT 0, + `backupKeepDays` int(10) unsigned NOT NULL DEFAULT 1, + `autoRestore` tinyint(1) NOT NULL DEFAULT 0, + `env` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdAt` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `space` (`space`), + KEY `k8name` (`k8name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_intervention` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `status` char(30) NOT NULL DEFAULT '', + `partake` text DEFAULT NULL, + `begin` date DEFAULT NULL, + `realBegin` date DEFAULT NULL, + `situation` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `project` (`project`,`activity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_issue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `project` varchar(255) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `pri` char(30) NOT NULL DEFAULT '', + `severity` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `activity` varchar(255) NOT NULL DEFAULT '', + `deadline` date DEFAULT NULL, + `resolution` char(30) NOT NULL DEFAULT '', + `resolutionComment` text DEFAULT NULL, + `objectID` varchar(255) NOT NULL DEFAULT '', + `resolvedDate` date DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `owner` varchar(255) NOT NULL DEFAULT '', + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `activateBy` varchar(30) NOT NULL DEFAULT '', + `activateDate` date DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_job` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `frame` varchar(20) NOT NULL DEFAULT '', + `engine` varchar(20) NOT NULL DEFAULT '', + `server` mediumint(8) unsigned NOT NULL DEFAULT 0, + `pipeline` varchar(500) NOT NULL DEFAULT '', + `triggerType` varchar(255) NOT NULL DEFAULT '', + `sonarqubeServer` mediumint(8) unsigned NOT NULL DEFAULT 0, + `projectKey` varchar(255) NOT NULL DEFAULT '', + `svnDir` varchar(255) NOT NULL DEFAULT '', + `atDay` varchar(255) NOT NULL DEFAULT '', + `atTime` varchar(10) NOT NULL DEFAULT '', + `customParam` text DEFAULT NULL, + `comment` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `lastExec` datetime DEFAULT NULL, + `lastStatus` varchar(255) NOT NULL DEFAULT '', + `lastTag` varchar(255) NOT NULL DEFAULT '', + `lastSyncDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanban` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `team` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `archived` enum('0','1') NOT NULL DEFAULT '1', + `performable` enum('0','1') NOT NULL DEFAULT '0', + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `order` mediumint(8) NOT NULL DEFAULT 0, + `displayCards` smallint(6) NOT NULL DEFAULT 0, + `showWIP` enum('0','1') NOT NULL DEFAULT '1', + `fluidBoard` enum('0','1') NOT NULL DEFAULT '0', + `colWidth` smallint(4) NOT NULL DEFAULT 264, + `minColWidth` smallint(4) NOT NULL DEFAULT 200, + `maxColWidth` smallint(4) NOT NULL DEFAULT 384, + `object` varchar(255) NOT NULL DEFAULT '', + `alignment` varchar(10) NOT NULL DEFAULT 'center', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbancard` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromType` varchar(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'doing', + `pri` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `estimate` float unsigned NOT NULL DEFAULT 0, + `progress` float unsigned NOT NULL DEFAULT 0, + `color` char(7) NOT NULL DEFAULT '', + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `order` mediumint(8) NOT NULL DEFAULT 0, + `archived` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `archivedBy` char(30) NOT NULL DEFAULT '', + `archivedDate` datetime DEFAULT NULL, + `assignedBy` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbancell` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) NOT NULL DEFAULT 0, + `lane` mediumint(8) NOT NULL DEFAULT 0, + `column` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `cards` text DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `card_group` (`kanban`,`type`,`lane`,`column`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbancolumn` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `color` char(30) NOT NULL DEFAULT '', + `limit` smallint(6) NOT NULL DEFAULT -1, + `order` mediumint(8) NOT NULL DEFAULT 0, + `archived` enum('0','1') NOT NULL DEFAULT '0', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbangroup` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` smallint(6) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbanlane` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `region` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `groupby` char(30) NOT NULL DEFAULT '', + `extra` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `color` char(30) NOT NULL DEFAULT '', + `order` smallint(6) NOT NULL DEFAULT 0, + `lastEditedTime` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbanregion` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL DEFAULT 0, + `kanban` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbanspace` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `team` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `status` enum('active','closed') NOT NULL DEFAULT 'active', + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_lang` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `lang` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `section` varchar(50) NOT NULL DEFAULT '', + `key` varchar(60) NOT NULL DEFAULT '', + `value` text DEFAULT NULL, + `system` enum('0','1') NOT NULL DEFAULT '1', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + UNIQUE KEY `lang` (`lang`,`module`,`section`,`key`,`vision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_leave` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `backDate` datetime DEFAULT NULL, + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + `backReviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `type` (`type`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_lieu` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `overtime` char(255) NOT NULL DEFAULT '', + `trip` char(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_log` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` datetime DEFAULT NULL, + `url` varchar(255) NOT NULL DEFAULT '', + `contentType` varchar(30) NOT NULL DEFAULT '', + `data` text DEFAULT NULL, + `result` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `obejctID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_market` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `industry` char(255) NOT NULL DEFAULT '', + `scale` decimal(10,2) NOT NULL DEFAULT 0.00, + `maturity` char(255) NOT NULL DEFAULT '', + `speed` varchar(255) NOT NULL DEFAULT '', + `competition` char(255) NOT NULL DEFAULT '', + `strategy` varchar(255) NOT NULL DEFAULT '', + `ppm` varchar(20) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_marketreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `market` mediumint(8) NOT NULL DEFAULT 0, + `research` mediumint(8) NOT NULL DEFAULT 0, + `maturity` varchar(30) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `participants` char(255) NOT NULL DEFAULT '', + `source` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT '', + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `publishedBy` varchar(30) NOT NULL DEFAULT '', + `publishedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_measqueue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `mid` mediumint(8) unsigned NOT NULL DEFAULT 0, + `status` varchar(255) NOT NULL DEFAULT '', + `logs` text DEFAULT NULL, + `execTime` varchar(10) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `updateDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_measrecords` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL DEFAULT '', + `mid` mediumint(8) NOT NULL DEFAULT 0, + `measCode` char(50) NOT NULL DEFAULT '', + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `params` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `month` char(6) NOT NULL DEFAULT '', + `week` char(8) NOT NULL DEFAULT '', + `day` char(8) NOT NULL DEFAULT '', + `value` varchar(255) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `time` (`year`,`month`,`day`,`week`), + KEY `product` (`product`), + KEY `project` (`project`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_meastemplate` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_meeting` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `begin` time DEFAULT NULL, + `end` time DEFAULT NULL, + `dept` mediumint(8) NOT NULL DEFAULT 0, + `mode` varchar(255) NOT NULL DEFAULT '', + `host` varchar(30) NOT NULL DEFAULT '', + `participant` text DEFAULT NULL, + `date` date DEFAULT NULL, + `room` int(11) NOT NULL DEFAULT 0, + `minutes` text DEFAULT NULL, + `minutedBy` varchar(30) NOT NULL DEFAULT '', + `minutedDate` datetime DEFAULT NULL, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_meetingroom` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `seats` int(11) NOT NULL DEFAULT 0, + `equipment` varchar(255) NOT NULL DEFAULT '', + `openTime` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_metric` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `purpose` varchar(50) NOT NULL DEFAULT '', + `scope` char(30) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `stage` enum('wait','released') DEFAULT 'wait', + `type` enum('php','sql') DEFAULT 'php', + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(90) NOT NULL DEFAULT '', + `unit` varchar(10) NOT NULL DEFAULT '', + `dateType` varchar(50) NOT NULL DEFAULT '', + `collector` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `definition` text DEFAULT NULL, + `when` varchar(30) NOT NULL DEFAULT '', + `event` varchar(30) NOT NULL DEFAULT '', + `cronCFG` varchar(30) NOT NULL DEFAULT '', + `time` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `implementedBy` varchar(30) NOT NULL DEFAULT '', + `implementedDate` datetime DEFAULT NULL, + `delistedBy` varchar(30) NOT NULL DEFAULT '', + `delistedDate` datetime DEFAULT NULL, + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `fromID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lastCalcRows` int(11) NOT NULL DEFAULT 0, + `lastCalcTime` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_metriclib` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `metricID` mediumint(8) NOT NULL DEFAULT 0, + `metricCode` varchar(100) NOT NULL DEFAULT '', + `system` char(30) NOT NULL DEFAULT '0', + `program` char(30) NOT NULL DEFAULT '', + `project` char(30) NOT NULL DEFAULT '', + `product` char(30) NOT NULL DEFAULT '', + `execution` char(30) NOT NULL DEFAULT '', + `code` char(30) NOT NULL DEFAULT '', + `pipeline` char(30) NOT NULL DEFAULT '', + `user` text DEFAULT NULL, + `dept` char(30) NOT NULL DEFAULT '', + `year` char(4) NOT NULL DEFAULT '0', + `month` char(2) NOT NULL DEFAULT '0', + `week` char(2) NOT NULL DEFAULT '0', + `day` char(2) NOT NULL DEFAULT '0', + `value` varchar(100) NOT NULL DEFAULT '0', + `date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `metricID` (`metricID`), + KEY `metricCode` (`metricCode`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_module` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `root` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(60) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT '', + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `owner` varchar(30) NOT NULL DEFAULT '', + `collector` text DEFAULT NULL, + `short` varchar(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `root` (`root`), + KEY `type` (`type`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_mr` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `hostID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `sourceProject` varchar(50) NOT NULL DEFAULT '', + `sourceBranch` varchar(100) NOT NULL DEFAULT '', + `targetProject` varchar(50) NOT NULL DEFAULT '', + `targetBranch` varchar(100) NOT NULL DEFAULT '', + `mriid` int(10) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `description` text DEFAULT NULL, + `assignee` varchar(255) NOT NULL DEFAULT '', + `reviewer` varchar(255) NOT NULL DEFAULT '', + `approver` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `status` char(30) NOT NULL DEFAULT '', + `mergeStatus` char(30) NOT NULL DEFAULT '', + `approvalStatus` char(30) NOT NULL DEFAULT '', + `needApproved` enum('0','1') NOT NULL DEFAULT '0', + `needCI` enum('0','1') NOT NULL DEFAULT '0', + `repoID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `jobID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `executionID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compileID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compileStatus` char(30) NOT NULL DEFAULT '', + `removeSourceBranch` enum('0','1') NOT NULL DEFAULT '0', + `squash` enum('0','1') NOT NULL DEFAULT '0', + `synced` enum('0','1') NOT NULL DEFAULT '1', + `syncError` varchar(255) NOT NULL DEFAULT '', + `hasNoConflict` enum('0','1') NOT NULL DEFAULT '0', + `diffs` longtext DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_mrapproval` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `mrID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(255) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `action` char(30) NOT NULL DEFAULT '', + `comment` text DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_nc` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `auditplan` mediumint(8) NOT NULL DEFAULT 0, + `listID` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `type` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `severity` char(30) NOT NULL DEFAULT '', + `deadline` date DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolution` char(30) NOT NULL DEFAULT '', + `resolvedDate` date DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` date DEFAULT NULL, + `activateDate` date DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_notify` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(50) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `action` mediumint(8) NOT NULL DEFAULT 0, + `toList` text DEFAULT NULL, + `ccList` text DEFAULT NULL, + `subject` text DEFAULT NULL, + `data` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `sendTime` datetime DEFAULT NULL, + `status` varchar(10) NOT NULL DEFAULT 'wait', + `failReason` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_oauth` ( + `account` varchar(30) NOT NULL DEFAULT '', + `openID` varchar(255) NOT NULL DEFAULT '', + `providerType` varchar(30) NOT NULL DEFAULT '', + `providerID` mediumint(8) unsigned NOT NULL DEFAULT 0, + KEY `account` (`account`), + KEY `providerType` (`providerType`), + KEY `providerID` (`providerID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_object` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) NOT NULL DEFAULT 0, + `from` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `type` enum('reviewed','taged') NOT NULL DEFAULT 'reviewed', + `range` text DEFAULT NULL, + `data` text DEFAULT NULL, + `storyEst` char(30) NOT NULL DEFAULT '', + `taskEst` char(30) NOT NULL DEFAULT '', + `requestEst` char(30) NOT NULL DEFAULT '', + `testEst` char(30) NOT NULL DEFAULT '', + `devEst` char(30) NOT NULL DEFAULT '', + `designEst` char(30) NOT NULL DEFAULT '', + `end` date DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_opportunity` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `strategy` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `impact` mediumint(8) NOT NULL DEFAULT 0, + `chance` mediumint(8) NOT NULL DEFAULT 0, + `ratio` mediumint(8) NOT NULL DEFAULT 0, + `pri` char(30) NOT NULL DEFAULT '', + `identifiedDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` date DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `prevention` mediumtext DEFAULT NULL, + `plannedClosedDate` date DEFAULT NULL, + `actualClosedDate` date DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `cancelReason` char(30) NOT NULL DEFAULT '', + `hangupedBy` varchar(30) NOT NULL DEFAULT '', + `hangupedDate` datetime DEFAULT NULL, + `resolution` mediumtext DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `lastCheckedBy` varchar(30) NOT NULL DEFAULT '', + `lastCheckedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_overtime` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `hours` float(4,1) unsigned NOT NULL DEFAULT 0.0, + `leave` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `status` varchar(30) NOT NULL DEFAULT '', + `rejectReason` varchar(100) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `level` tinyint(3) NOT NULL DEFAULT 0, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `type` (`type`), + KEY `status` (`status`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_pipeline` ( + `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `url` varchar(255) DEFAULT NULL, + `account` varchar(30) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + `token` varchar(255) DEFAULT NULL, + `private` char(32) DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_pivot` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `group` varchar(255) NOT NULL DEFAULT '', + `name` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `sql` mediumtext DEFAULT NULL, + `fields` mediumtext DEFAULT NULL, + `langs` mediumtext DEFAULT NULL, + `vars` mediumtext DEFAULT NULL, + `objects` mediumtext DEFAULT NULL, + `settings` mediumtext DEFAULT NULL, + `filters` mediumtext DEFAULT NULL, + `step` tinyint(3) unsigned NOT NULL DEFAULT 0, + `stage` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `dimension` (`dimension`), + KEY `group` (`group`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_planstory` ( + `plan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(9) NOT NULL DEFAULT 0, + UNIQUE KEY `plan_story` (`plan`,`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_practice` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `code` char(50) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `labels` varchar(255) NOT NULL DEFAULT '', + `summary` varchar(255) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `contributor` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_priv` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `method` varchar(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `edition` varchar(30) NOT NULL DEFAULT ',open,biz,max,', + `vision` varchar(30) NOT NULL DEFAULT ',rnd,', + `system` enum('0','1') NOT NULL DEFAULT '0', + `order` mediumint(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `priv` (`module`,`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_privlang` ( + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectType` enum('priv','manager') NOT NULL DEFAULT 'priv', + `lang` varchar(30) NOT NULL DEFAULT '', + `key` varchar(100) NOT NULL DEFAULT '', + `value` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + UNIQUE KEY `objectlang` (`objectID`,`objectType`,`lang`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_privmanager` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `code` varchar(100) NOT NULL DEFAULT '', + `type` enum('view','module','package') NOT NULL DEFAULT 'package', + `edition` varchar(30) NOT NULL DEFAULT ',open,biz,max,', + `vision` varchar(30) NOT NULL DEFAULT ',rnd,', + `order` mediumint(8) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_privrelation` ( + `priv` varchar(100) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `relationPriv` varchar(100) NOT NULL DEFAULT '', + UNIQUE KEY `privrelation` (`priv`,`type`,`relationPriv`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_process` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `model` char(30) NOT NULL DEFAULT 'waterfall', + `name` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `abbr` char(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `order` mediumint(9) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_product` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `program` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(110) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `shadow` tinyint(1) unsigned NOT NULL DEFAULT 0, + `bind` enum('0','1') NOT NULL DEFAULT '0', + `line` mediumint(8) NOT NULL DEFAULT 0, + `type` varchar(30) NOT NULL DEFAULT 'normal', + `status` varchar(30) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `PO` varchar(30) NOT NULL DEFAULT '', + `QD` varchar(30) NOT NULL DEFAULT '', + `RD` varchar(30) NOT NULL DEFAULT '', + `feedback` varchar(30) NOT NULL DEFAULT '', + `ticket` varchar(30) NOT NULL DEFAULT '', + `acl` enum('open','private','custom') NOT NULL DEFAULT 'open', + `groups` text DEFAULT NULL, + `whitelist` text DEFAULT NULL, + `reviewer` text DEFAULT NULL, + `PMT` text DEFAULT NULL, + `draftStories` mediumint(8) NOT NULL DEFAULT 0, + `activeStories` mediumint(8) NOT NULL DEFAULT 0, + `changingStories` mediumint(8) NOT NULL DEFAULT 0, + `reviewingStories` mediumint(8) NOT NULL DEFAULT 0, + `finishedStories` mediumint(8) NOT NULL DEFAULT 0, + `closedStories` mediumint(8) NOT NULL DEFAULT 0, + `totalStories` mediumint(8) NOT NULL DEFAULT 0, + `unresolvedBugs` mediumint(8) NOT NULL DEFAULT 0, + `closedBugs` mediumint(8) NOT NULL DEFAULT 0, + `fixedBugs` mediumint(8) NOT NULL DEFAULT 0, + `totalBugs` mediumint(8) NOT NULL DEFAULT 0, + `plans` mediumint(8) NOT NULL DEFAULT 0, + `releases` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `createdVersion` varchar(20) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `acl` (`acl`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_productplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `parent` mediumint(9) NOT NULL DEFAULT 0, + `title` varchar(90) NOT NULL DEFAULT '', + `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait', + `desc` mediumtext DEFAULT NULL, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `finishedDate` datetime DEFAULT NULL, + `closedDate` datetime DEFAULT NULL, + `order` text DEFAULT NULL, + `closedReason` varchar(20) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `end` (`end`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_programactivity` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `reason` varchar(255) NOT NULL DEFAULT '', + `result` char(30) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_programoutput` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `output` mediumint(8) NOT NULL DEFAULT 0, + `content` text DEFAULT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `reason` varchar(255) NOT NULL DEFAULT '', + `result` char(30) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_programprocess` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `process` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `abbr` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `reason` varchar(255) NOT NULL DEFAULT '', + `linkedBy` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_programreport` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `template` mediumint(8) NOT NULL DEFAULT 0, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `content` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_project` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `charter` mediumint(8) NOT NULL DEFAULT 0, + `model` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT 'sprint', + `category` char(30) NOT NULL DEFAULT '', + `lifetime` char(30) NOT NULL DEFAULT '', + `budget` varchar(30) NOT NULL DEFAULT '0', + `budgetUnit` char(30) NOT NULL DEFAULT 'CNY', + `attribute` varchar(30) NOT NULL DEFAULT '', + `percent` float unsigned NOT NULL DEFAULT 0, + `milestone` enum('0','1') NOT NULL DEFAULT '0', + `output` text DEFAULT NULL, + `auth` char(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` varchar(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `hasProduct` tinyint(1) unsigned NOT NULL DEFAULT 1, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `firstEnd` date DEFAULT NULL, + `realBegan` date DEFAULT NULL, + `realEnd` date DEFAULT NULL, + `days` smallint(6) unsigned NOT NULL DEFAULT 0, + `status` varchar(10) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `pri` enum('1','2','3','4') NOT NULL DEFAULT '1', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `planDuration` int(11) NOT NULL DEFAULT 0, + `realDuration` int(11) NOT NULL DEFAULT 0, + `progress` decimal(5,2) NOT NULL DEFAULT 0.00, + `estimate` float NOT NULL DEFAULT 0, + `left` float NOT NULL DEFAULT 0, + `consumed` float NOT NULL DEFAULT 0, + `teamCount` int(11) NOT NULL DEFAULT 0, + `market` mediumint(8) NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `openedVersion` varchar(20) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(20) NOT NULL DEFAULT '', + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `suspendedDate` date DEFAULT NULL, + `PO` varchar(30) NOT NULL DEFAULT '', + `PM` varchar(30) NOT NULL DEFAULT '', + `QD` varchar(30) NOT NULL DEFAULT '', + `RD` varchar(30) NOT NULL DEFAULT '', + `team` varchar(90) NOT NULL DEFAULT '', + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `stageBy` enum('project','product') NOT NULL DEFAULT 'product', + `displayCards` smallint(6) NOT NULL DEFAULT 0, + `fluidBoard` enum('0','1') NOT NULL DEFAULT '0', + `multiple` enum('0','1') NOT NULL DEFAULT '1', + `parallel` mediumint(9) NOT NULL DEFAULT 0, + `colWidth` smallint(6) NOT NULL DEFAULT 264, + `minColWidth` smallint(6) NOT NULL DEFAULT 200, + `maxColWidth` smallint(6) NOT NULL DEFAULT 384, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `begin` (`begin`), + KEY `end` (`end`), + KEY `status` (`status`), + KEY `acl` (`acl`), + KEY `order` (`order`), + KEY `project` (`project`), + KEY `type_order` (`type`,`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_projectadmin` ( + `group` smallint(6) NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `programs` text DEFAULT NULL, + `projects` text DEFAULT NULL, + `products` text DEFAULT NULL, + `executions` text DEFAULT NULL, + UNIQUE KEY `group_account` (`group`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_projectcase` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `count` mediumint(8) unsigned NOT NULL DEFAULT 1, + `version` smallint(6) NOT NULL DEFAULT 1, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `project` (`project`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_projectproduct` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`project`,`product`,`branch`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_projectspec` ( + `project` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `milestone` enum('0','1') NOT NULL DEFAULT '0', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + UNIQUE KEY `project` (`project`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_projectstory` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `order` smallint(6) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `project` (`project`,`story`), + KEY `story` (`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_queue` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `cron` mediumint(9) NOT NULL, + `type` varchar(255) NOT NULL, + `command` text NOT NULL, + `status` enum('wait','doing','done') NOT NULL DEFAULT 'wait', + `execId` int(11) DEFAULT NULL, + `createdDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_relation` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `product` mediumint(8) NOT NULL DEFAULT 0, + `execution` mediumint(8) NOT NULL DEFAULT 0, + `AType` char(30) NOT NULL DEFAULT '', + `AID` mediumint(8) NOT NULL DEFAULT 0, + `AVersion` char(30) NOT NULL DEFAULT '', + `relation` char(30) NOT NULL DEFAULT '', + `BType` char(30) NOT NULL DEFAULT '', + `BID` mediumint(8) NOT NULL DEFAULT 0, + `BVersion` char(30) NOT NULL DEFAULT '', + `extra` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `relation` (`product`,`relation`,`AType`,`BType`,`AID`,`BID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_relationoftasks` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `execution` mediumint(8) unsigned NOT NULL, + `pretask` mediumint(8) unsigned NOT NULL, + `condition` enum('begin','end') NOT NULL, + `task` mediumint(8) unsigned NOT NULL, + `action` enum('begin','end') NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `relationoftasks` (`execution`,`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_release` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '0', + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '0', + `shadow` mediumint(8) unsigned NOT NULL DEFAULT 0, + `build` varchar(255) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `marker` enum('0','1') NOT NULL DEFAULT '0', + `date` date DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `leftBugs` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `mailto` text DEFAULT NULL, + `notify` varchar(255) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT 'normal', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `build` (`build`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_repo` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `product` varchar(255) NOT NULL DEFAULT '', + `projects` varchar(255) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `prefix` varchar(100) NOT NULL DEFAULT '', + `encoding` varchar(20) NOT NULL DEFAULT '', + `SCM` varchar(10) NOT NULL DEFAULT '', + `client` varchar(100) NOT NULL DEFAULT '', + `serviceHost` varchar(50) NOT NULL DEFAULT '', + `serviceProject` varchar(100) NOT NULL DEFAULT '', + `commits` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` varchar(30) NOT NULL DEFAULT '', + `password` varchar(30) NOT NULL DEFAULT '', + `encrypt` varchar(30) NOT NULL DEFAULT 'plain', + `acl` text DEFAULT NULL, + `synced` tinyint(1) NOT NULL DEFAULT 0, + `lastSync` datetime DEFAULT NULL, + `lastCommit` datetime DEFAULT NULL, + `desc` text DEFAULT NULL, + `extra` char(30) NOT NULL DEFAULT '', + `preMerge` enum('0','1') NOT NULL DEFAULT '0', + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fileServerUrl` text DEFAULT NULL, + `fileServerAccount` varchar(40) NOT NULL DEFAULT '', + `fileServerPassword` varchar(100) NOT NULL DEFAULT '', + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_repobranch` ( + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `revision` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY `repo_revision_branch` (`repo`,`revision`,`branch`), + KEY `branch` (`branch`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_repofiles` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `revision` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` varchar(255) NOT NULL DEFAULT '', + `oldPath` varchar(255) NOT NULL DEFAULT '', + `parent` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `action` char(1) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `path` (`path`), + KEY `parent` (`parent`), + KEY `repo` (`repo`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_repohistory` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `repo` mediumint(9) NOT NULL DEFAULT 0, + `revision` varchar(40) NOT NULL DEFAULT '', + `commit` mediumint(8) unsigned NOT NULL DEFAULT 0, + `comment` text DEFAULT NULL, + `committer` varchar(100) NOT NULL DEFAULT '', + `time` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `repo` (`repo`), + KEY `revision` (`revision`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_report` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `code` varchar(100) NOT NULL DEFAULT '', + `name` text DEFAULT NULL, + `dimension` int(8) NOT NULL DEFAULT 0, + `module` varchar(100) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `langs` text DEFAULT NULL, + `params` text DEFAULT NULL, + `step` tinyint(1) NOT NULL DEFAULT 2, + `desc` text DEFAULT NULL, + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_researchplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `customer` varchar(255) NOT NULL DEFAULT '', + `stakeholder` varchar(255) NOT NULL DEFAULT '', + `objective` varchar(255) NOT NULL DEFAULT '', + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `location` varchar(255) NOT NULL DEFAULT '', + `team` varchar(255) NOT NULL DEFAULT '', + `method` enum('','videoConference','interview','questionnaire','telephoneInterview') NOT NULL DEFAULT '', + `outline` mediumtext DEFAULT NULL, + `schedule` mediumtext DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_researchreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `relatedPlan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `author` varchar(30) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `customer` varchar(255) NOT NULL DEFAULT '', + `researchObjects` varchar(255) NOT NULL DEFAULT '', + `begin` datetime DEFAULT NULL, + `end` datetime DEFAULT NULL, + `location` varchar(255) NOT NULL DEFAULT '', + `method` enum('','videoConference','interview','questionnaire','telephoneInterview') NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_review` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `object` mediumint(8) NOT NULL DEFAULT 0, + `template` mediumint(8) NOT NULL DEFAULT 0, + `doc` varchar(255) NOT NULL DEFAULT '', + `docVersion` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `auditedBy` varchar(255) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `begin` date DEFAULT NULL, + `deadline` date DEFAULT NULL, + `lastReviewedBy` varchar(255) NOT NULL DEFAULT '', + `lastReviewedDate` date DEFAULT NULL, + `lastAuditedBy` varchar(255) NOT NULL DEFAULT '', + `lastAuditedDate` date DEFAULT NULL, + `lastEditedBy` varchar(255) NOT NULL DEFAULT '', + `lastEditedDate` date DEFAULT NULL, + `result` char(30) NOT NULL DEFAULT '', + `auditResult` char(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_reviewcl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `order` mediumint(8) DEFAULT 0, + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_reviewissue` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `review` mediumint(8) NOT NULL DEFAULT 0, + `approval` mediumint(8) NOT NULL DEFAULT 0, + `injection` mediumint(8) NOT NULL DEFAULT 0, + `identify` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'review', + `listID` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `opinion` mediumtext DEFAULT NULL, + `opinionDate` date DEFAULT NULL, + `status` char(30) NOT NULL DEFAULT '', + `resolution` char(30) NOT NULL DEFAULT '', + `resolutionBy` char(30) NOT NULL DEFAULT '', + `resolutionDate` date DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_reviewlist` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL DEFAULT '', + `object` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_reviewresult` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `review` mediumint(8) NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'review', + `result` char(30) NOT NULL DEFAULT '', + `opinion` text DEFAULT NULL, + `reviewer` char(30) NOT NULL DEFAULT '', + `remainIssue` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `consumed` float NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `reviewer` (`review`,`reviewer`,`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_risk` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `source` char(30) NOT NULL DEFAULT '', + `category` char(30) NOT NULL DEFAULT '', + `strategy` char(30) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT 'active', + `impact` char(30) NOT NULL DEFAULT '', + `probability` char(30) NOT NULL DEFAULT '', + `rate` char(30) NOT NULL DEFAULT '', + `pri` char(30) NOT NULL DEFAULT '', + `identifiedDate` date DEFAULT NULL, + `prevention` mediumtext DEFAULT NULL, + `remedy` mediumtext DEFAULT NULL, + `plannedClosedDate` date DEFAULT NULL, + `actualClosedDate` date DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `from` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `resolution` mediumtext DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `activateBy` varchar(30) NOT NULL DEFAULT '', + `activateDate` date DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date DEFAULT NULL, + `cancelBy` varchar(30) NOT NULL DEFAULT '', + `cancelDate` date DEFAULT NULL, + `cancelReason` char(30) NOT NULL DEFAULT '', + `hangupBy` varchar(30) NOT NULL DEFAULT '', + `hangupDate` date DEFAULT NULL, + `trackedBy` varchar(30) NOT NULL DEFAULT '', + `trackedDate` date DEFAULT NULL, + `assignedDate` date DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_riskissue` ( + `risk` mediumint(8) unsigned NOT NULL DEFAULT 0, + `issue` mediumint(8) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `risk_issue` (`risk`,`issue`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_roadmap` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `product` mediumint(8) NOT NULL DEFAULT 0, + `branch` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `desc` longtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` enum('done','canceled') DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_roadmapstory` ( + `roadmap` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `order` mediumint(8) unsigned NOT NULL, + UNIQUE KEY `roadmap_story` (`roadmap`,`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_scene` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `sort` int(11) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `parent` int(11) NOT NULL DEFAULT 0, + `grade` tinyint(3) NOT NULL DEFAULT 0, + `path` varchar(1000) NOT NULL DEFAULT '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_score` ( + `id` bigint(12) unsigned NOT NULL AUTO_INCREMENT, + `account` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `method` varchar(30) NOT NULL DEFAULT '', + `desc` varchar(250) NOT NULL DEFAULT '', + `before` int(11) NOT NULL DEFAULT 0, + `score` int(11) NOT NULL DEFAULT 0, + `after` int(11) NOT NULL DEFAULT 0, + `time` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `module` (`module`), + KEY `method` (`method`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_screen` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `dimension` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `cover` mediumtext DEFAULT NULL, + `scheme` mediumtext DEFAULT NULL, + `status` enum('draft','published') NOT NULL DEFAULT 'draft', + `builtin` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_searchdict` ( + `key` smallint(6) unsigned NOT NULL DEFAULT 0, + `value` char(3) NOT NULL DEFAULT '', + PRIMARY KEY (`key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_searchindex` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `objectType` char(20) NOT NULL DEFAULT '', + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `title` text DEFAULT NULL, + `content` text DEFAULT NULL, + `addedDate` datetime DEFAULT NULL, + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `object` (`objectType`,`objectID`), + KEY `addedDate` (`addedDate`), + FULLTEXT KEY `title_content` (`title`,`content`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_serverroom` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(128) NOT NULL DEFAULT '', + `city` varchar(128) NOT NULL DEFAULT '', + `line` varchar(20) NOT NULL DEFAULT '', + `bandwidth` varchar(128) NOT NULL DEFAULT '', + `provider` varchar(128) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_service` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `external` enum('0','1') NOT NULL DEFAULT '0', + `port` smallint(5) unsigned NOT NULL DEFAULT 0, + `entry` varchar(255) NOT NULL DEFAULT '', + `deploy` varchar(255) NOT NULL DEFAULT '', + `version` varchar(64) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `dept` varchar(128) NOT NULL DEFAULT '', + `devel` varchar(30) NOT NULL DEFAULT '', + `qa` varchar(30) NOT NULL DEFAULT '', + `ops` varchar(30) NOT NULL DEFAULT '', + `hosts` text DEFAULT NULL, + `softName` varchar(128) NOT NULL DEFAULT '', + `softVersion` varchar(128) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_session` ( + `id` varchar(32) NOT NULL, + `data` mediumtext DEFAULT NULL, + `timestamp` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `timestamp` (`timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_solution` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(50) NOT NULL DEFAULT '', + `appID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `appName` char(50) NOT NULL DEFAULT '', + `appVersion` char(20) NOT NULL DEFAULT '', + `version` char(50) NOT NULL DEFAULT '', + `chart` char(50) NOT NULL DEFAULT '', + `cover` varchar(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `introduction` varchar(255) NOT NULL DEFAULT '', + `source` char(20) NOT NULL DEFAULT '', + `channel` char(20) NOT NULL DEFAULT '', + `components` text DEFAULT NULL, + `status` char(20) NOT NULL DEFAULT '', + `deleted` tinyint(1) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdAt` datetime DEFAULT NULL, + `updatedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_solutions` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `contents` text NOT NULL, + `support` text NOT NULL, + `measures` text NOT NULL, + `type` char(30) NOT NULL DEFAULT '', + `addedBy` varchar(30) NOT NULL DEFAULT '', + `addedDate` date DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_space` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL, + `k8space` char(64) NOT NULL, + `owner` char(30) NOT NULL, + `default` tinyint(1) NOT NULL DEFAULT 0, + `createdAt` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_sqlview` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(90) NOT NULL DEFAULT '', + `code` varchar(45) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_stage` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `percent` varchar(255) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `projectType` varchar(255) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_stakeholder` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `objectID` mediumint(8) NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL DEFAULT '', + `user` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `key` enum('0','1') NOT NULL DEFAULT '0', + `from` char(30) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `objectID` (`objectID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_story` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `parent` mediumint(9) NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` text DEFAULT NULL, + `source` varchar(20) NOT NULL DEFAULT '', + `sourceNote` varchar(255) NOT NULL DEFAULT '', + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `keywords` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT 'story', + `category` varchar(30) NOT NULL DEFAULT 'feature', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 3, + `estimate` float unsigned NOT NULL DEFAULT 0, + `status` enum('','changing','active','draft','closed','reviewing','launched','developing') NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `stage` enum('','wait','planned','projected','developing','developed','testing','tested','verified','released','closed') NOT NULL DEFAULT 'wait', + `stagedBy` char(30) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromStory` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromVersion` smallint(6) NOT NULL DEFAULT 1, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `approvedDate` date DEFAULT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `changedBy` varchar(30) NOT NULL DEFAULT '', + `changedDate` datetime DEFAULT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` datetime DEFAULT NULL, + `releasedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `toBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `childStories` varchar(255) NOT NULL DEFAULT '', + `linkStories` varchar(255) NOT NULL DEFAULT '', + `linkRequirements` varchar(255) NOT NULL DEFAULT '', + `twins` varchar(255) NOT NULL DEFAULT '', + `duplicateStory` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 1, + `storyChanged` enum('0','1') NOT NULL DEFAULT '0', + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `BSA` char(30) NOT NULL DEFAULT '', + `duration` char(30) NOT NULL DEFAULT '', + `demand` mediumint(8) NOT NULL DEFAULT 0, + `submitedBy` varchar(30) NOT NULL DEFAULT '', + `roadmap` varchar(255) NOT NULL DEFAULT '', + `URChanged` enum('0','1') NOT NULL DEFAULT '0', + `retractedReason` enum('','omit','other') NOT NULL DEFAULT '', + `retractedBy` varchar(30) NOT NULL DEFAULT '', + `retractedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `status` (`status`), + KEY `assignedTo` (`assignedTo`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_storyestimate` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `round` smallint(6) NOT NULL DEFAULT 0, + `estimate` text DEFAULT NULL, + `average` float NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + UNIQUE KEY `story` (`story`,`round`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_storyreview` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `reviewer` varchar(30) NOT NULL DEFAULT '', + `result` varchar(30) NOT NULL DEFAULT '', + `reviewDate` datetime DEFAULT NULL, + UNIQUE KEY `story` (`story`,`version`,`reviewer`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_storyspec` ( + `story` mediumint(9) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `spec` mediumtext DEFAULT NULL, + `verify` mediumtext DEFAULT NULL, + `files` text DEFAULT NULL, + UNIQUE KEY `story` (`story`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_storystage` ( + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `stage` varchar(50) NOT NULL DEFAULT '', + `stagedBy` char(30) NOT NULL DEFAULT '', + UNIQUE KEY `story_branch` (`story`,`branch`), + KEY `story` (`story`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_suitecase` ( + `suite` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(5) unsigned NOT NULL DEFAULT 0, + UNIQUE KEY `suitecase` (`suite`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_task` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `parent` mediumint(8) NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `design` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `designVersion` smallint(6) unsigned NOT NULL DEFAULT 1, + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `fromIssue` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT '', + `mode` varchar(10) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `estimate` float unsigned NOT NULL DEFAULT 0, + `consumed` float unsigned NOT NULL DEFAULT 0, + `left` float unsigned NOT NULL DEFAULT 0, + `deadline` date DEFAULT NULL, + `status` enum('wait','doing','done','pause','cancel','closed') NOT NULL DEFAULT 'wait', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL DEFAULT '', + `mailto` text DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `version` smallint(6) NOT NULL DEFAULT 0, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `estStarted` date DEFAULT NULL, + `realStarted` datetime DEFAULT NULL, + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `finishedList` text DEFAULT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `planDuration` int(11) NOT NULL DEFAULT 0, + `realDuration` int(11) NOT NULL DEFAULT 0, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `activatedDate` datetime DEFAULT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, + `repo` mediumint(8) unsigned NOT NULL DEFAULT 0, + `mr` mediumint(8) unsigned NOT NULL DEFAULT 0, + `entry` varchar(255) NOT NULL DEFAULT '', + `lines` varchar(10) NOT NULL DEFAULT '', + `v1` varchar(40) NOT NULL DEFAULT '', + `v2` varchar(40) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `execution` (`execution`), + KEY `story` (`story`), + KEY `parent` (`parent`), + KEY `assignedTo` (`assignedTo`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_taskestimate` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` date DEFAULT NULL, + `left` float unsigned NOT NULL DEFAULT 0, + `consumed` float unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `work` text DEFAULT NULL, + `order` tinyint(3) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `task` (`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_taskspec` ( + `task` mediumint(8) NOT NULL DEFAULT 0, + `version` smallint(6) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `estStarted` date DEFAULT NULL, + `deadline` date DEFAULT NULL, + UNIQUE KEY `task` (`task`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_taskteam` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `estimate` decimal(12,2) NOT NULL DEFAULT 0.00, + `consumed` decimal(12,2) NOT NULL DEFAULT 0.00, + `left` decimal(12,2) NOT NULL DEFAULT 0.00, + `transfer` char(30) NOT NULL DEFAULT '', + `status` enum('wait','doing','done') NOT NULL DEFAULT 'wait', + `order` tinyint(3) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `task` (`task`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_team` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `root` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` enum('project','task','execution') NOT NULL DEFAULT 'project', + `account` char(30) NOT NULL DEFAULT '', + `role` char(30) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `limited` char(8) NOT NULL DEFAULT 'no', + `join` date DEFAULT NULL, + `days` smallint(5) unsigned NOT NULL DEFAULT 0, + `hours` float(3,1) unsigned NOT NULL DEFAULT 0.0, + `estimate` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `consumed` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `left` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `order` tinyint(3) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `team` (`root`,`type`,`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_testreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `tasks` varchar(255) NOT NULL DEFAULT '', + `builds` varchar(255) NOT NULL DEFAULT '', + `title` varchar(255) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `owner` char(30) NOT NULL DEFAULT '', + `members` text DEFAULT NULL, + `stories` text DEFAULT NULL, + `bugs` text DEFAULT NULL, + `cases` text DEFAULT NULL, + `report` text DEFAULT NULL, + `objectType` varchar(20) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_testresult` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `run` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(5) unsigned NOT NULL DEFAULT 0, + `job` mediumint(8) unsigned NOT NULL DEFAULT 0, + `compile` mediumint(8) unsigned NOT NULL DEFAULT 0, + `caseResult` char(30) NOT NULL DEFAULT '', + `stepResults` text DEFAULT NULL, + `ZTFResult` text DEFAULT NULL, + `node` int(8) unsigned NOT NULL DEFAULT 0, + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `date` datetime DEFAULT NULL, + `duration` float NOT NULL DEFAULT 0, + `xml` text DEFAULT NULL, + `deploy` mediumint(8) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `case` (`case`), + KEY `version` (`version`), + KEY `run` (`run`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_testrun` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` tinyint(3) unsigned NOT NULL DEFAULT 0, + `assignedTo` char(30) NOT NULL DEFAULT '', + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `lastRunDate` datetime DEFAULT NULL, + `lastRunResult` char(30) NOT NULL DEFAULT '', + `status` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `task` (`task`,`case`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_testsuite` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `type` varchar(20) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime DEFAULT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_testtask` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(90) NOT NULL DEFAULT '', + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `build` char(30) NOT NULL DEFAULT '', + `type` varchar(255) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL DEFAULT '', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `realBegan` date DEFAULT NULL, + `realFinishedDate` datetime DEFAULT NULL, + `mailto` text DEFAULT NULL, + `desc` mediumtext DEFAULT NULL, + `report` text DEFAULT NULL, + `status` enum('blocked','doing','wait','done') NOT NULL DEFAULT 'wait', + `testreport` mediumint(8) unsigned NOT NULL DEFAULT 0, + `auto` varchar(10) NOT NULL DEFAULT 'no', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `members` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `build` (`build`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_ticket` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `openedBuild` varchar(255) NOT NULL DEFAULT '', + `feedback` mediumint(8) NOT NULL DEFAULT 0, + `assignedTo` varchar(255) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `realStarted` datetime DEFAULT NULL, + `startedBy` varchar(255) NOT NULL DEFAULT '', + `startedDate` datetime DEFAULT NULL, + `deadline` date DEFAULT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `estimate` float unsigned NOT NULL DEFAULT 0, + `left` float unsigned NOT NULL DEFAULT 0, + `status` varchar(30) NOT NULL DEFAULT '', + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime DEFAULT NULL, + `activatedCount` int(11) NOT NULL DEFAULT 0, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime DEFAULT NULL, + `resolution` text DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `keywords` varchar(255) NOT NULL DEFAULT '', + `repeatTicket` mediumint(8) NOT NULL DEFAULT 0, + `mailto` varchar(255) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `subStatus` varchar(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_ticketrelation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `ticketId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectId` mediumint(8) NOT NULL DEFAULT 0, + `objectType` varchar(100) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `ticketId` (`ticketId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_ticketsource` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `ticketId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `customer` varchar(100) NOT NULL DEFAULT '', + `contact` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `ticketId` (`ticketId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_todo` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `date` date DEFAULT NULL, + `begin` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `end` smallint(4) unsigned zerofill NOT NULL DEFAULT 0000, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` char(15) NOT NULL DEFAULT '', + `cycle` tinyint(3) unsigned NOT NULL DEFAULT 0, + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `name` char(150) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait', + `private` tinyint(1) NOT NULL DEFAULT 0, + `config` varchar(1000) NOT NULL DEFAULT '', + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime DEFAULT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `assignedTo` (`assignedTo`), + KEY `finishedBy` (`finishedBy`), + KEY `date` (`date`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_traincategory` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) NOT NULL DEFAULT 0, + `order` mediumint(8) NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `path` (`path`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_traincontents` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(50) NOT NULL DEFAULT '', + `course` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(30) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `order` mediumint(8) NOT NULL DEFAULT 0, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_traincourse` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `code` varchar(255) NOT NULL DEFAULT '', + `category` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + `teacher` varchar(30) NOT NULL DEFAULT '', + `desc` mediumtext DEFAULT NULL, + `importedStatus` enum('','wait','doing','done') NOT NULL DEFAULT '', + `lastUpdatedTime` int(10) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(255) NOT NULL DEFAULT '', + `createdDate` date DEFAULT NULL, + `editedBy` varchar(255) NOT NULL DEFAULT '', + `editedDate` date DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_trainplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `place` varchar(255) NOT NULL DEFAULT '', + `trainee` text DEFAULT NULL, + `lecturer` varchar(20) NOT NULL DEFAULT '', + `type` enum('inside','outside') NOT NULL DEFAULT 'inside', + `status` varchar(20) NOT NULL DEFAULT '', + `summary` mediumtext DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_trainrecords` ( + `user` char(30) NOT NULL DEFAULT '', + `objectId` mediumint(8) unsigned NOT NULL DEFAULT 0, + `objectType` varchar(10) NOT NULL DEFAULT '', + `status` varchar(10) NOT NULL DEFAULT '', + PRIMARY KEY (`user`,`objectId`,`objectType`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_trip` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('trip','egress') NOT NULL DEFAULT 'trip', + `customers` varchar(20) NOT NULL DEFAULT '', + `name` char(30) NOT NULL DEFAULT '', + `desc` text DEFAULT NULL, + `year` char(4) NOT NULL DEFAULT '', + `begin` date DEFAULT NULL, + `end` date DEFAULT NULL, + `start` time DEFAULT NULL, + `finish` time DEFAULT NULL, + `from` char(50) NOT NULL DEFAULT '', + `to` char(50) NOT NULL DEFAULT '', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `createdBy` (`createdBy`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_user` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `company` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` char(30) NOT NULL DEFAULT 'inside', + `dept` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `password` char(32) NOT NULL DEFAULT '', + `role` char(10) NOT NULL DEFAULT '', + `realname` varchar(100) NOT NULL DEFAULT '', + `pinyin` varchar(255) NOT NULL DEFAULT '', + `nickname` char(60) NOT NULL DEFAULT '', + `commiter` varchar(100) NOT NULL DEFAULT '', + `avatar` text DEFAULT NULL, + `birthday` date DEFAULT NULL, + `gender` enum('f','m') NOT NULL DEFAULT 'f', + `email` char(90) NOT NULL DEFAULT '', + `skype` char(90) NOT NULL DEFAULT '', + `qq` char(20) NOT NULL DEFAULT '', + `mobile` char(11) NOT NULL DEFAULT '', + `phone` char(20) NOT NULL DEFAULT '', + `weixin` varchar(90) NOT NULL DEFAULT '', + `dingding` varchar(90) NOT NULL DEFAULT '', + `slack` varchar(90) NOT NULL DEFAULT '', + `whatsapp` varchar(90) NOT NULL DEFAULT '', + `address` char(120) NOT NULL DEFAULT '', + `zipcode` char(10) NOT NULL DEFAULT '', + `nature` text DEFAULT NULL, + `analysis` text DEFAULT NULL, + `strategy` text DEFAULT NULL, + `join` date DEFAULT NULL, + `visits` mediumint(8) unsigned NOT NULL DEFAULT 0, + `visions` varchar(20) NOT NULL DEFAULT 'rnd,lite', + `ip` char(15) NOT NULL DEFAULT '', + `last` int(11) unsigned NOT NULL DEFAULT 0, + `fails` tinyint(5) NOT NULL DEFAULT 0, + `locked` datetime DEFAULT NULL, + `feedback` enum('0','1') NOT NULL DEFAULT '0', + `ranzhi` char(30) NOT NULL DEFAULT '', + `ldap` char(30) NOT NULL DEFAULT '', + `score` int(11) NOT NULL DEFAULT 0, + `scoreLevel` int(11) NOT NULL DEFAULT 0, + `resetToken` varchar(50) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `clientStatus` enum('online','away','busy','offline','meeting') NOT NULL DEFAULT 'offline', + `clientLang` varchar(10) NOT NULL DEFAULT 'zh-cn', + PRIMARY KEY (`id`), + UNIQUE KEY `account` (`account`), + KEY `dept` (`dept`), + KEY `email` (`email`), + KEY `commiter` (`commiter`), + KEY `deleted` (`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_usercontact` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `listName` varchar(60) NOT NULL DEFAULT '', + `userList` text DEFAULT NULL, + `public` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_usergroup` ( + `account` char(30) NOT NULL DEFAULT '', + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `project` text DEFAULT NULL, + UNIQUE KEY `account` (`account`,`group`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_userquery` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `title` varchar(90) NOT NULL DEFAULT '', + `form` text DEFAULT NULL, + `sql` text DEFAULT NULL, + `shortcut` enum('0','1') NOT NULL DEFAULT '0', + `common` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `module` (`module`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_usertpl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL DEFAULT '', + `type` char(30) NOT NULL DEFAULT '', + `title` varchar(150) NOT NULL DEFAULT '', + `content` text DEFAULT NULL, + `public` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_userview` ( + `account` char(30) NOT NULL DEFAULT '', + `programs` mediumtext DEFAULT NULL, + `products` mediumtext DEFAULT NULL, + `projects` mediumtext DEFAULT NULL, + `sprints` mediumtext DEFAULT NULL, + UNIQUE KEY `account` (`account`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_webhook` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(15) NOT NULL DEFAULT 'default', + `name` varchar(50) NOT NULL DEFAULT '', + `url` varchar(255) NOT NULL DEFAULT '', + `domain` varchar(255) NOT NULL DEFAULT '', + `secret` varchar(255) NOT NULL DEFAULT '', + `contentType` varchar(30) NOT NULL DEFAULT 'application/json', + `sendType` enum('sync','async') NOT NULL DEFAULT 'sync', + `products` text DEFAULT NULL, + `executions` text DEFAULT NULL, + `params` varchar(100) NOT NULL DEFAULT '', + `actions` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_weeklyreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `weekStart` date DEFAULT NULL, + `pv` float(9,2) NOT NULL DEFAULT 0.00, + `ev` float(9,2) NOT NULL DEFAULT 0.00, + `ac` float(9,2) NOT NULL DEFAULT 0.00, + `sv` float(9,2) NOT NULL DEFAULT 0.00, + `cv` float(9,2) NOT NULL DEFAULT 0.00, + `staff` smallint(5) unsigned NOT NULL DEFAULT 0, + `progress` varchar(255) NOT NULL DEFAULT '', + `workload` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `week` (`project`,`weekStart`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workestimation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `scale` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `productivity` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `duration` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `unitLaborCost` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `totalLaborCost` decimal(10,2) unsigned NOT NULL DEFAULT 0.00, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `dayHour` decimal(10,2) NOT NULL DEFAULT 0.00, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflow` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` varchar(30) NOT NULL DEFAULT '', + `child` varchar(30) NOT NULL DEFAULT '', + `type` varchar(10) NOT NULL DEFAULT 'flow', + `navigator` varchar(10) NOT NULL DEFAULT '', + `app` varchar(20) NOT NULL DEFAULT '', + `position` varchar(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL DEFAULT '', + `table` varchar(50) NOT NULL DEFAULT '', + `name` varchar(30) NOT NULL DEFAULT '', + `titleField` varchar(30) NOT NULL DEFAULT '', + `contentField` text DEFAULT NULL, + `flowchart` text DEFAULT NULL, + `js` text DEFAULT NULL, + `css` text DEFAULT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `administrator` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `version` varchar(10) NOT NULL DEFAULT '1.0', + `status` varchar(10) NOT NULL DEFAULT 'wait', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `approval` enum('enabled','disabled') NOT NULL DEFAULT 'disabled', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`app`,`module`,`vision`), + KEY `type` (`type`), + KEY `app` (`app`), + KEY `module` (`module`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowaction` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `method` varchar(50) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `type` enum('single','batch') NOT NULL DEFAULT 'single', + `batchMode` enum('same','different') NOT NULL DEFAULT 'different', + `extensionType` varchar(10) NOT NULL DEFAULT 'override', + `open` varchar(20) NOT NULL DEFAULT '', + `position` enum('menu','browseandview','browse','view') NOT NULL DEFAULT 'browseandview', + `layout` char(20) NOT NULL DEFAULT '', + `show` enum('dropdownlist','direct') NOT NULL DEFAULT 'dropdownlist', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `virtual` tinyint(1) unsigned NOT NULL DEFAULT 0, + `conditions` text DEFAULT NULL, + `verifications` text DEFAULT NULL, + `hooks` text DEFAULT NULL, + `linkages` text DEFAULT NULL, + `js` text DEFAULT NULL, + `css` text DEFAULT NULL, + `toList` char(255) NOT NULL DEFAULT '', + `blocks` text DEFAULT NULL, + `desc` text DEFAULT NULL, + `status` varchar(10) NOT NULL DEFAULT 'enable', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`module`,`action`,`vision`), + KEY `module` (`module`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowdatasource` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('system','sql','func','option','lang','category') NOT NULL DEFAULT 'option', + `name` varchar(30) NOT NULL DEFAULT '', + `code` varchar(30) NOT NULL DEFAULT '', + `datasource` text DEFAULT NULL, + `view` varchar(20) NOT NULL DEFAULT '', + `keyField` varchar(50) NOT NULL DEFAULT '', + `valueField` varchar(50) NOT NULL DEFAULT '', + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowfield` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `type` varchar(20) NOT NULL DEFAULT 'varchar', + `length` varchar(10) NOT NULL DEFAULT '', + `name` varchar(50) NOT NULL DEFAULT '', + `control` varchar(20) NOT NULL DEFAULT '', + `expression` text DEFAULT NULL, + `options` text DEFAULT NULL, + `default` varchar(100) NOT NULL DEFAULT '', + `rules` varchar(255) NOT NULL DEFAULT '', + `placeholder` varchar(100) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `searchOrder` smallint(5) unsigned NOT NULL DEFAULT 0, + `exportOrder` smallint(5) unsigned NOT NULL DEFAULT 0, + `canExport` enum('0','1') NOT NULL DEFAULT '0', + `canSearch` enum('0','1') NOT NULL DEFAULT '0', + `isValue` enum('0','1') NOT NULL DEFAULT '0', + `readonly` enum('0','1') NOT NULL DEFAULT '0', + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `desc` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`module`,`field`), + KEY `module` (`module`), + KEY `field` (`field`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowlabel` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(30) NOT NULL DEFAULT 'browse', + `code` varchar(30) NOT NULL DEFAULT '', + `label` varchar(255) NOT NULL DEFAULT '', + `params` text DEFAULT NULL, + `orderBy` text DEFAULT NULL, + `order` tinyint(3) NOT NULL DEFAULT 0, + `buildin` tinyint(1) unsigned NOT NULL DEFAULT 0, + `role` varchar(10) NOT NULL DEFAULT 'custom', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowlayout` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `width` varchar(50) NOT NULL DEFAULT '0', + `position` text DEFAULT NULL, + `readonly` enum('0','1') NOT NULL DEFAULT '0', + `mobileShow` enum('0','1') NOT NULL DEFAULT '1', + `summary` varchar(20) NOT NULL DEFAULT '', + `defaultValue` text DEFAULT NULL, + `layoutRules` varchar(255) NOT NULL DEFAULT '', + `vision` varchar(10) NOT NULL DEFAULT 'rnd', + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`module`,`action`,`field`,`vision`), + KEY `module` (`module`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowlinkdata` ( + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `linkedType` varchar(30) NOT NULL DEFAULT '', + `linkedID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + UNIQUE KEY `unique` (`objectType`,`objectID`,`linkedType`,`linkedID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowrelation` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `prev` varchar(30) NOT NULL DEFAULT '', + `next` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `actions` varchar(20) NOT NULL DEFAULT '', + `actionCodes` text DEFAULT NULL, + `buildin` enum('0','1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowrelationlayout` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `prev` varchar(30) NOT NULL DEFAULT '', + `next` varchar(30) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`prev`,`next`,`action`,`field`), + KEY `prev` (`prev`), + KEY `next` (`next`), + KEY `action` (`action`), + KEY `order` (`order`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL, + `name` varchar(100) NOT NULL, + `type` enum('pie','line','bar') NOT NULL DEFAULT 'pie', + `countType` enum('sum','count') NOT NULL DEFAULT 'sum', + `displayType` enum('value','percent') NOT NULL DEFAULT 'value', + `dimension` varchar(130) NOT NULL, + `fields` text NOT NULL, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowrule` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` enum('system','regex','func') NOT NULL DEFAULT 'regex', + `name` varchar(30) NOT NULL DEFAULT '', + `rule` text DEFAULT NULL, + `createdBy` char(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowsql` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `field` varchar(50) NOT NULL DEFAULT '', + `action` varchar(50) NOT NULL DEFAULT '', + `sql` text DEFAULT NULL, + `vars` text DEFAULT NULL, + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `module` (`module`), + KEY `field` (`field`), + KEY `action` (`action`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_workflowversion` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `module` varchar(30) NOT NULL DEFAULT '', + `version` varchar(10) NOT NULL DEFAULT '', + `fields` text DEFAULT NULL, + `actions` text DEFAULT NULL, + `layouts` text DEFAULT NULL, + `sqls` text DEFAULT NULL, + `labels` text DEFAULT NULL, + `table` text DEFAULT NULL, + `datas` text DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `moduleversion` (`module`,`version`), + KEY `module` (`module`), + KEY `version` (`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `zt_zoutput` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `activity` mediumint(8) NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL DEFAULT '', + `content` mediumtext DEFAULT NULL, + `optional` char(20) NOT NULL DEFAULT '', + `tailorNorm` varchar(255) NOT NULL DEFAULT '', + `status` varchar(30) NOT NULL DEFAULT '', + `createdBy` varchar(30) NOT NULL DEFAULT '', + `createdDate` datetime DEFAULT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime DEFAULT NULL, + `order` mediumint(8) DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; \ No newline at end of file From 57d86daa0016b03321c9517dac96e51b9a6e46e0 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 21:55:07 +0800 Subject: [PATCH 029/276] * Adjust version name. --- VERSION | 2 +- module/misc/lang/de.php | 4 ++-- module/misc/lang/en.php | 4 ++-- module/misc/lang/fr.php | 4 ++-- module/misc/lang/zh-cn.php | 4 ++-- module/upgrade/lang/version.php | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/VERSION b/VERSION index bf79c7af7e..9a7c1e503f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -20.0.stable +20.0 diff --git a/module/misc/lang/de.php b/module/misc/lang/de.php index 8d7c284f4a..e0947229cc 100644 --- a/module/misc/lang/de.php +++ b/module/misc/lang/de.php @@ -113,7 +113,7 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ -$lang->misc->releaseDate['20.0.stable'] = '2024-02-29'; +$lang->misc->releaseDate['20.0'] = '2024-02-29'; $lang->misc->releaseDate['18.11'] = '2024-02-28'; $lang->misc->releaseDate['18.10.1'] = '2024-01-17'; $lang->misc->releaseDate['20.0.beta1'] = '2024-01-26'; @@ -224,7 +224,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ -$lang->misc->feature->all['20.0.stable'][] = array('title' => '', 'desc' => ''); +$lang->misc->feature->all['20.0'][] = array('title' => '', 'desc' => ''); $lang->misc->feature->all['18.11'][] = array('title' => "We have successfully implemented AI mini-program functionality, integrating measurement metrics and global filtering capabilities into the large-screen display. Additionally, we have added feedback functionality to the OR interface. Furthermore, we have enabled the inclusion of keywords in the Requirement Management Hub, allowing for the redistribution of requirements in the Requirement Management Hub once a user's requirement has been withdrawn.", 'desc' => ''); $lang->misc->feature->all['18.10.1'][] = array('title' => 'The Requirement Management Hub (RM Hub) now includes notification functionality, supports product line features, and allows for distributing a single requirement to multiple products.', 'desc' => ''); $lang->misc->feature->all['20.0.beta1'][] = array('title' => 'This release mainly involves a large-scale refactoring of the code and a brand new upgrade to the user interface (UI), bringing better product performance, stronger security, and a more user-friendly experience.', 'desc' => ''); diff --git a/module/misc/lang/en.php b/module/misc/lang/en.php index 6b32bdf3b4..6df78b9a6c 100644 --- a/module/misc/lang/en.php +++ b/module/misc/lang/en.php @@ -113,7 +113,7 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ -$lang->misc->releaseDate['20.0.stable'] = '2024-02-29'; +$lang->misc->releaseDate['20.0'] = '2024-02-29'; $lang->misc->releaseDate['18.11'] = '2024-02-28'; $lang->misc->releaseDate['18.10.1'] = '2024-01-17'; $lang->misc->releaseDate['20.0.beta1'] = '2024-01-26'; @@ -224,7 +224,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ -$lang->misc->feature->all['20.0.stable'][] = array('title' => '', 'desc' => ''); +$lang->misc->feature->all['20.0'][] = array('title' => '', 'desc' => ''); $lang->misc->feature->all['18.11'][] = array('title' => "We have successfully implemented AI mini-program functionality, integrating measurement metrics and global filtering capabilities into the large-screen display. Additionally, we have added feedback functionality to the OR interface. Furthermore, we have enabled the inclusion of keywords in the Requirement Management Hub, allowing for the redistribution of requirements in the Requirement Management Hub once a user's requirement has been withdrawn.", 'desc' => ''); $lang->misc->feature->all['18.10.1'][] = array('title' => 'The Requirement Management Hub (RM Hub) now includes notification functionality, supports product line features, and allows for distributing a single requirement to multiple products.', 'desc' => ''); $lang->misc->feature->all['20.0.beta1'][] = array('title' => 'This release mainly involves a large-scale refactoring of the code and a brand new upgrade to the user interface (UI), bringing better product performance, stronger security, and a more user-friendly experience.', 'desc' => ''); diff --git a/module/misc/lang/fr.php b/module/misc/lang/fr.php index 9c570f5c58..a945f3d277 100644 --- a/module/misc/lang/fr.php +++ b/module/misc/lang/fr.php @@ -113,7 +113,7 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ -$lang->misc->releaseDate['20.0.stable'] = '2024-02-29'; +$lang->misc->releaseDate['20.0'] = '2024-02-29'; $lang->misc->releaseDate['18.11'] = '2024-02-28'; $lang->misc->releaseDate['18.10.1'] = '2024-01-17'; $lang->misc->releaseDate['20.0.beta1'] = '2024-01-26'; @@ -224,7 +224,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ -$lang->misc->feature->all['20.0.stable'][] = array('title' => '', 'desc' => ''); +$lang->misc->feature->all['20.0'][] = array('title' => '', 'desc' => ''); $lang->misc->feature->all['18.11'][] = array('title' => "We have successfully implemented AI mini-program functionality, integrating measurement metrics and global filtering capabilities into the large-screen display. Additionally, we have added feedback functionality to the OR interface. Furthermore, we have enabled the inclusion of keywords in the Requirement Management Hub, allowing for the redistribution of requirements in the Requirement Management Hub once a user's requirement has been withdrawn.", 'desc' => ''); $lang->misc->feature->all['18.10.1'][] = array('title' => 'The Requirement Management Hub (RM Hub) now includes notification functionality, supports product line features, and allows for distributing a single requirement to multiple products.', 'desc' => ''); $lang->misc->feature->all['20.0.beta1'][] = array('title' => 'This release mainly involves a large-scale refactoring of the code and a brand new upgrade to the user interface (UI), bringing better product performance, stronger security, and a more user-friendly experience.', 'desc' => ''); diff --git a/module/misc/lang/zh-cn.php b/module/misc/lang/zh-cn.php index 072ecd9692..98190cc1fd 100644 --- a/module/misc/lang/zh-cn.php +++ b/module/misc/lang/zh-cn.php @@ -113,7 +113,7 @@ $lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec $lang->misc->feature->promptLearnMore = 'https://www.zentao.net/book/zentaopms/1097.html'; /* Release Date. */ -$lang->misc->releaseDate['20.0.stable'] = '2024-02-29'; +$lang->misc->releaseDate['20.0'] = '2024-02-29'; $lang->misc->releaseDate['18.11'] = '2024-02-28'; $lang->misc->releaseDate['18.10.1'] = '2024-01-17'; $lang->misc->releaseDate['20.0.beta1'] = '2024-01-26'; @@ -224,7 +224,7 @@ $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; /* Release Detail. */ -$lang->misc->feature->all['20.0.stable'][] = array('title' => '', 'desc' => ''); +$lang->misc->feature->all['20.0'][] = array('title' => '', 'desc' => ''); $lang->misc->feature->all['18.11'][] = array('title' => '实现AI小程序功能,实现大屏引用度量项、全局筛选器功能,OR界面实现反馈功能,需求池需求增加关键词,撤回用户需求后需求池需求可以再次分发。', 'desc' => ''); $lang->misc->feature->all['18.10.1'][] = array('title' => '需求池增加通知功能,支持产品线功能,支持一个需求分发到多个产品。', 'desc' => ''); $lang->misc->feature->all['20.0.beta1'][] = array('title' => '本次发布主要对代码进行了大规模重构,同时对用户界面(UI)进行了全新升级,带来了更好的产品性能、更强的安全性和更友好的用户体验。', 'desc' => ''); diff --git a/module/upgrade/lang/version.php b/module/upgrade/lang/version.php index 56f5eb043d..ab90261681 100644 --- a/module/upgrade/lang/version.php +++ b/module/upgrade/lang/version.php @@ -188,7 +188,7 @@ $lang->upgrade->fromVersions['18_10'] = '18.10'; $lang->upgrade->fromVersions['18_10_1'] = '18.10.1'; $lang->upgrade->fromVersions['18_11'] = '18.11'; $lang->upgrade->fromVersions['20_0_alpha1'] = '20.0.alpha1'; -$lang->upgrade->fromVersions['20_0_stable'] = '20.0.stable'; // pms insert position. +$lang->upgrade->fromVersions['20_0'] = '20.0'; // pms insert position. global $config; /* Lite. */ From c8289646b8dc9fa49719c1630df708dfe328414c Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 21:56:22 +0800 Subject: [PATCH 030/276] * Adjust version name. --- doc/CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 750f2ccb5f..866286c2ac 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,4 +1,4 @@ -2024-02-29 20.0.stable +2024-02-29 20.0 2024-02-20 18.11 完成的需求 From c7d9dd2142c0f1ac46d7f0ee0ad1fe90ee32247f Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 29 Feb 2024 22:06:37 +0800 Subject: [PATCH 031/276] * Adjust from version for update. --- module/upgrade/lang/version.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/upgrade/lang/version.php b/module/upgrade/lang/version.php index ab90261681..afede75f57 100644 --- a/module/upgrade/lang/version.php +++ b/module/upgrade/lang/version.php @@ -188,6 +188,7 @@ $lang->upgrade->fromVersions['18_10'] = '18.10'; $lang->upgrade->fromVersions['18_10_1'] = '18.10.1'; $lang->upgrade->fromVersions['18_11'] = '18.11'; $lang->upgrade->fromVersions['20_0_alpha1'] = '20.0.alpha1'; +$lang->upgrade->fromVersions['20_0_beta1'] = '20.0.beta1'; $lang->upgrade->fromVersions['20_0'] = '20.0'; // pms insert position. global $config; From de20833068636a6836df57172d37da6b62463766 Mon Sep 17 00:00:00 2001 From: sunhao Date: Fri, 1 Mar 2024 10:12:17 +0800 Subject: [PATCH 032/276] * zui: update zui3 lib. --- www/js/zui3/zui.zentao.css | 2 +- www/js/zui3/zui.zentao.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/www/js/zui3/zui.zentao.css b/www/js/zui3/zui.zentao.css index 08ff2f9a16..3ef3fc5295 100644 --- a/www/js/zui3/zui.zentao.css +++ b/www/js/zui3/zui.zentao.css @@ -1 +1 @@ -/*! tailwindcss v3.3.6 | MIT License | https://tailwindcss.com*/*,:after,:before{border-color:rgb(var(--color-gray-200-rgb));border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:-apple-system,Noto Sans,Helvetica Neue,Helvetica,Nimbus Sans L,Arial,Liberation Sans,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,Source Han Sans CN,Microsoft YaHei,Wenquanyi Micro Hei,WenQuanYi Zen Hei,ST Heiti,SimHei,WenQuanYi Zen Hei Sharp,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:rgb(var(--color-gray-400-rgb));opacity:1}input::placeholder,textarea::placeholder{color:rgb(var(--color-gray-400-rgb));opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}:root{--screen-2xl:1720px;--color-gray-50:#fcfdfe;--color-gray-100:#eff1f3;--color-gray-200:#ebedf3;--color-gray-300:#d2d6e5;--color-gray-400:#b2b9c5;--color-gray-500:#64758b;--color-gray-600:#4a577f;--color-gray-700:#3d4667;--color-gray-800:#353d57;--color-gray-900:#30394a;--color-gray-950:#0b0f18;--color-gray-50-rgb:252,253,254;--color-gray-100-rgb:239,241,243;--color-gray-200-rgb:235,237,243;--color-gray-300-rgb:210,214,229;--color-gray-400-rgb:178,185,197;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:74,87,127;--color-gray-700-rgb:61,70,103;--color-gray-800-rgb:53,61,87;--color-gray-900-rgb:48,57,74;--color-gray-950-rgb:11,15,24;--color-primary-50:#eef6ff;--color-primary-100:#d9eaff;--color-primary-200:#bcdcff;--color-primary-300:#8ec6ff;--color-primary-400:#59a5ff;--color-primary-500:#3883fa;--color-primary-600:#2b67e5;--color-primary-700:#144ce1;--color-primary-800:#173db6;--color-primary-900:#19388f;--color-primary-950:#142457;--color-primary-50-rgb:238,246,255;--color-primary-100-rgb:217,234,255;--color-primary-200-rgb:188,220,255;--color-primary-300-rgb:142,198,255;--color-primary-400-rgb:89,165,255;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:43,103,229;--color-primary-700-rgb:20,76,225;--color-primary-800-rgb:23,61,182;--color-primary-900-rgb:25,56,143;--color-primary-950-rgb:20,36,87;--color-secondary-50:#e7f6ff;--color-secondary-100:#cdecff;--color-secondary-200:#9bd9ff;--color-secondary-300:#77cbff;--color-secondary-400:#60c2ff;--color-secondary-500:#37b2fe;--color-secondary-600:#18a6fd;--color-secondary-700:#1099ed;--color-secondary-800:#078ada;--color-secondary-900:#046bab;--color-secondary-950:#062a4b;--color-secondary-50-rgb:231,246,255;--color-secondary-100-rgb:205,236,255;--color-secondary-200-rgb:155,217,255;--color-secondary-300-rgb:119,203,255;--color-secondary-400-rgb:96,194,255;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:24,166,253;--color-secondary-700-rgb:16,153,237;--color-secondary-800-rgb:7,138,218;--color-secondary-900-rgb:4,107,171;--color-secondary-950-rgb:6,42,75;--color-success-50:#ecfff8;--color-success-100:#d0f6e8;--color-success-200:#b1ecd6;--color-success-300:#7adfba;--color-success-400:#48d1a0;--color-success-500:#22c98d;--color-success-600:#0dbb7d;--color-success-700:#0ca76f;--color-success-800:#0e8d60;--color-success-900:#186c4e;--color-success-50-rgb:236,255,248;--color-success-100-rgb:208,246,232;--color-success-200-rgb:177,236,214;--color-success-300-rgb:122,223,186;--color-success-400-rgb:72,209,160;--color-success-500-rgb:34,201,141;--color-success-600-rgb:13,187,125;--color-success-700-rgb:12,167,111;--color-success-800-rgb:14,141,96;--color-success-900-rgb:24,108,78;--color-warning-50:#fff4ea;--color-warning-100:#ffecdb;--color-warning-200:#ffd2a9;--color-warning-300:#ffbc7e;--color-warning-400:#ffaf65;--color-warning-500:#ff9f46;--color-warning-600:#f38f19;--color-warning-700:#ed8307;--color-warning-800:#d17100;--color-warning-900:#af5f01;--color-warning-50-rgb:255,244,234;--color-warning-100-rgb:255,236,219;--color-warning-200-rgb:255,210,169;--color-warning-300-rgb:255,188,126;--color-warning-400-rgb:255,175,101;--color-warning-500-rgb:255,159,70;--color-warning-600-rgb:243,143,25;--color-warning-700-rgb:237,131,7;--color-warning-800-rgb:209,113,0;--color-warning-900-rgb:175,95,1;--color-danger-50:#ffebeb;--color-danger-100:#ffd5d5;--color-danger-200:#ffb1b1;--color-danger-300:#ff9292;--color-danger-400:#ff7c7c;--color-danger-500:#fc5959;--color-danger-600:#fb2b2b;--color-danger-700:#d91b1b;--color-danger-800:#ba1313;--color-danger-900:#a20606;--color-danger-50-rgb:255,235,235;--color-danger-100-rgb:255,213,213;--color-danger-200-rgb:255,177,177;--color-danger-300-rgb:255,146,146;--color-danger-400-rgb:255,124,124;--color-danger-500-rgb:252,89,89;--color-danger-600-rgb:251,43,43;--color-danger-700-rgb:217,27,27;--color-danger-800-rgb:186,19,19;--color-danger-900-rgb:162,6,6;--color-important-50:#fff8f5;--color-important-100:#ffe2d9;--color-important-200:#ffcebf;--color-important-300:#ffb29b;--color-important-400:#ff8c68;--color-important-500:#ff8058;--color-important-600:#ff6f42;--color-important-700:#ff4912;--color-important-800:#c83509;--color-important-900:#611700;--color-important-50-rgb:255,248,245;--color-important-100-rgb:255,226,217;--color-important-200-rgb:255,206,191;--color-important-300-rgb:255,178,155;--color-important-400-rgb:255,140,104;--color-important-500-rgb:255,128,88;--color-important-600-rgb:255,111,66;--color-important-700-rgb:255,73,18;--color-important-800-rgb:200,53,9;--color-important-900-rgb:97,23,0;--color-special-50:#efecfa;--color-special-100:#e4dff7;--color-special-200:#c4b6ff;--color-special-300:#a38cff;--color-special-400:#8a6ff5;--color-special-500:#8166ee;--color-special-600:#7055df;--color-special-700:#513baa;--color-special-800:#452da5;--color-special-900:#30216e;--color-special-50-rgb:239,236,250;--color-special-100-rgb:228,223,247;--color-special-200-rgb:196,182,255;--color-special-300-rgb:163,140,255;--color-special-400-rgb:138,111,245;--color-special-500-rgb:129,102,238;--color-special-600-rgb:112,85,223;--color-special-700-rgb:81,59,170;--color-special-800-rgb:69,45,165;--color-special-900-rgb:48,33,110;--color-inherit:inherit;--color-transparent:transparent;--color-current:currentColor;--color-black:#000;--color-white:#fff;--color-canvas:#fff;--color-canvas-light:#fff;--color-canvas-dark:#fcfdfe;--color-inverse:#000;--color-surface:#eff1f3;--color-surface-light:#fcfdfe;--color-surface-strong:#ebedf3;--color-fore:#30394a;--color-fore-in-light:#30394a;--color-fore-in-dark:#fff;--color-focus:#bcdcff;--color-link:#2b47a2;--color-link-hover:#144ce1;--color-link-visited:#6328a4;--color-link-active:#144ce1;--color-placeholder:#b2b9c5;--color-border:#ebedf3;--color-border-strong:#d2d6e5;--color-border-light:#eff1f3;--color-black-rgb:0,0,0;--color-white-rgb:255,255,255;--color-canvas-rgb:255,255,255;--color-canvas-light-rgb:255,255,255;--color-canvas-dark-rgb:252,253,254;--color-inverse-rgb:0,0,0;--color-surface-rgb:239,241,243;--color-surface-light-rgb:252,253,254;--color-surface-strong-rgb:235,237,243;--color-fore-rgb:48,57,74;--color-fore-in-light-rgb:48,57,74;--color-fore-in-dark-rgb:255,255,255;--color-focus-rgb:188,220,255;--color-link-rgb:43,71,162;--color-link-hover-rgb:20,76,225;--color-link-visited-rgb:99,40,164;--color-link-active-rgb:20,76,225;--color-placeholder-rgb:178,185,197;--color-border-rgb:235,237,243;--color-border-strong-rgb:210,214,229;--color-border-light-rgb:239,241,243;--radius-none:0px;--radius-sm:0.0625rem;--radius:0.125rem;--radius-md:0.25rem;--radius-lg:0.375rem;--radius-xl:0.5rem;--radius-2xl:0.75rem;--radius-3xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--shadow-md:0 2px 6px -1px rgba(0,0,0,.2),0 1px 4px -2px rgba(0,0,0,.15);--shadow-lg:0 5px 15px -3px rgba(0,0,0,.2),0 2px 6px -4px rgba(0,0,0,.15);--shadow-xl:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--shadow-2xl:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--shadow-inner:inset 0 2px 4px 0 rgba(0,0,0,.05);--shadow-none:none;--space:0.25rem;--font-size-root:16px;--font-size-page-lineHeight:1.5384615385}.dark{--color-gray-50:#0b0f18;--color-gray-100:#30394a;--color-gray-200:#353d57;--color-gray-300:#3d4667;--color-gray-400:#4a577f;--color-gray-500:#64758b;--color-gray-600:#b2b9c5;--color-gray-700:#d2d6e5;--color-gray-800:#ebedf3;--color-gray-900:#eff1f3;--color-gray-950:#fcfdfe;--color-gray-50-rgb:11,15,24;--color-gray-100-rgb:48,57,74;--color-gray-200-rgb:53,61,87;--color-gray-300-rgb:61,70,103;--color-gray-400-rgb:74,87,127;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:178,185,197;--color-gray-700-rgb:210,214,229;--color-gray-800-rgb:235,237,243;--color-gray-900-rgb:239,241,243;--color-gray-950-rgb:252,253,254;--color-primary-50:#142457;--color-primary-100:#19388f;--color-primary-200:#173db6;--color-primary-300:#144ce1;--color-primary-400:#2b67e5;--color-primary-500:#3883fa;--color-primary-600:#59a5ff;--color-primary-700:#8ec6ff;--color-primary-800:#bcdcff;--color-primary-900:#d9eaff;--color-primary-950:#eef6ff;--color-primary-50-rgb:20,36,87;--color-primary-100-rgb:25,56,143;--color-primary-200-rgb:23,61,182;--color-primary-300-rgb:20,76,225;--color-primary-400-rgb:43,103,229;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:89,165,255;--color-primary-700-rgb:142,198,255;--color-primary-800-rgb:188,220,255;--color-primary-900-rgb:217,234,255;--color-primary-950-rgb:238,246,255;--color-secondary-50:#062a4b;--color-secondary-100:#046bab;--color-secondary-200:#078ada;--color-secondary-300:#1099ed;--color-secondary-400:#18a6fd;--color-secondary-500:#37b2fe;--color-secondary-600:#60c2ff;--color-secondary-700:#77cbff;--color-secondary-800:#9bd9ff;--color-secondary-900:#cdecff;--color-secondary-950:#e7f6ff;--color-secondary-50-rgb:6,42,75;--color-secondary-100-rgb:4,107,171;--color-secondary-200-rgb:7,138,218;--color-secondary-300-rgb:16,153,237;--color-secondary-400-rgb:24,166,253;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:96,194,255;--color-secondary-700-rgb:119,203,255;--color-secondary-800-rgb:155,217,255;--color-secondary-900-rgb:205,236,255;--color-secondary-950-rgb:231,246,255;--color-success-50:#186c4e;--color-success-100:#0e8d60;--color-success-200:#0ca76f;--color-success-300:#0dbb7d;--color-success-400:#22c98d;--color-success-500:#48d1a0;--color-success-600:#7adfba;--color-success-700:#b1ecd6;--color-success-800:#d0f6e8;--color-success-900:#ecfff8;--color-success-50-rgb:24,108,78;--color-success-100-rgb:14,141,96;--color-success-200-rgb:12,167,111;--color-success-300-rgb:13,187,125;--color-success-400-rgb:34,201,141;--color-success-500-rgb:72,209,160;--color-success-600-rgb:122,223,186;--color-success-700-rgb:177,236,214;--color-success-800-rgb:208,246,232;--color-success-900-rgb:236,255,248;--color-warning-50:#af5f01;--color-warning-100:#d17100;--color-warning-200:#ed8307;--color-warning-300:#f38f19;--color-warning-400:#ff9f46;--color-warning-500:#ffaf65;--color-warning-600:#ffbc7e;--color-warning-700:#ffd2a9;--color-warning-800:#ffecdb;--color-warning-900:#fff4ea;--color-warning-50-rgb:175,95,1;--color-warning-100-rgb:209,113,0;--color-warning-200-rgb:237,131,7;--color-warning-300-rgb:243,143,25;--color-warning-400-rgb:255,159,70;--color-warning-500-rgb:255,175,101;--color-warning-600-rgb:255,188,126;--color-warning-700-rgb:255,210,169;--color-warning-800-rgb:255,236,219;--color-warning-900-rgb:255,244,234;--color-danger-50:#a20606;--color-danger-100:#ba1313;--color-danger-200:#d91b1b;--color-danger-300:#fb2b2b;--color-danger-400:#fc5959;--color-danger-500:#ff7c7c;--color-danger-600:#ff9292;--color-danger-700:#ffb1b1;--color-danger-800:#ffd5d5;--color-danger-900:#ffebeb;--color-danger-50-rgb:162,6,6;--color-danger-100-rgb:186,19,19;--color-danger-200-rgb:217,27,27;--color-danger-300-rgb:251,43,43;--color-danger-400-rgb:252,89,89;--color-danger-500-rgb:255,124,124;--color-danger-600-rgb:255,146,146;--color-danger-700-rgb:255,177,177;--color-danger-800-rgb:255,213,213;--color-danger-900-rgb:255,235,235;--color-important-50:#611700;--color-important-100:#c83509;--color-important-200:#ff4912;--color-important-300:#ff6f42;--color-important-400:#ff8058;--color-important-500:#ff8c68;--color-important-600:#ffb29b;--color-important-700:#ffcebf;--color-important-800:#ffe2d9;--color-important-900:#fff8f5;--color-important-50-rgb:97,23,0;--color-important-100-rgb:200,53,9;--color-important-200-rgb:255,73,18;--color-important-300-rgb:255,111,66;--color-important-400-rgb:255,128,88;--color-important-500-rgb:255,140,104;--color-important-600-rgb:255,178,155;--color-important-700-rgb:255,206,191;--color-important-800-rgb:255,226,217;--color-important-900-rgb:255,248,245;--color-special-50:#30216e;--color-special-100:#452da5;--color-special-200:#513baa;--color-special-300:#7055df;--color-special-400:#8166ee;--color-special-500:#8a6ff5;--color-special-600:#a38cff;--color-special-700:#c4b6ff;--color-special-800:#e4dff7;--color-special-900:#efecfa;--color-special-50-rgb:48,33,110;--color-special-100-rgb:69,45,165;--color-special-200-rgb:81,59,170;--color-special-300-rgb:112,85,223;--color-special-400-rgb:129,102,238;--color-special-500-rgb:138,111,245;--color-special-600-rgb:163,140,255;--color-special-700-rgb:196,182,255;--color-special-800-rgb:228,223,247;--color-special-900-rgb:239,236,250;--color-canvas:#0b0f18;--color-inverse:#fff;--color-surface:#353d57;--color-surface-light:#30394a;--color-surface-strong:#3d4667;--color-fore:#ebedf3;--color-focus:#173db6;--color-link:#59a5ff;--color-link-hover:#3883fa;--color-link-visited:#bcdcff;--color-link-active:#bcdcff;--color-placeholder:#4a577f;--color-border:#353d57;--color-border-strong:#3d4667;--color-border-light:#30394a;--color-canvas-rgb:11,15,24;--color-inverse-rgb:255,255,255;--color-surface-rgb:53,61,87;--color-surface-light-rgb:48,57,74;--color-surface-strong-rgb:61,70,103;--color-fore-rgb:235,237,243;--color-focus-rgb:23,61,182;--color-link-rgb:89,165,255;--color-link-hover-rgb:56,131,250;--color-link-visited-rgb:188,220,255;--color-link-active-rgb:188,220,255;--color-placeholder-rgb:74,87,127;--color-border-rgb:53,61,87;--color-border-strong-rgb:61,70,103;--color-border-light-rgb:48,57,74}.light-in-dark{--color-gray-50:#fcfdfe;--color-gray-100:#eff1f3;--color-gray-200:#ebedf3;--color-gray-300:#d2d6e5;--color-gray-400:#b2b9c5;--color-gray-500:#64758b;--color-gray-600:#4a577f;--color-gray-700:#3d4667;--color-gray-800:#353d57;--color-gray-900:#30394a;--color-gray-950:#0b0f18;--color-gray-50-rgb:252,253,254;--color-gray-100-rgb:239,241,243;--color-gray-200-rgb:235,237,243;--color-gray-300-rgb:210,214,229;--color-gray-400-rgb:178,185,197;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:74,87,127;--color-gray-700-rgb:61,70,103;--color-gray-800-rgb:53,61,87;--color-gray-900-rgb:48,57,74;--color-gray-950-rgb:11,15,24;--color-primary-50:#eef6ff;--color-primary-100:#d9eaff;--color-primary-200:#bcdcff;--color-primary-300:#8ec6ff;--color-primary-400:#59a5ff;--color-primary-500:#3883fa;--color-primary-600:#2b67e5;--color-primary-700:#144ce1;--color-primary-800:#173db6;--color-primary-900:#19388f;--color-primary-950:#142457;--color-primary-50-rgb:238,246,255;--color-primary-100-rgb:217,234,255;--color-primary-200-rgb:188,220,255;--color-primary-300-rgb:142,198,255;--color-primary-400-rgb:89,165,255;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:43,103,229;--color-primary-700-rgb:20,76,225;--color-primary-800-rgb:23,61,182;--color-primary-900-rgb:25,56,143;--color-primary-950-rgb:20,36,87;--color-secondary-50:#e7f6ff;--color-secondary-100:#cdecff;--color-secondary-200:#9bd9ff;--color-secondary-300:#77cbff;--color-secondary-400:#60c2ff;--color-secondary-500:#37b2fe;--color-secondary-600:#18a6fd;--color-secondary-700:#1099ed;--color-secondary-800:#078ada;--color-secondary-900:#046bab;--color-secondary-950:#062a4b;--color-secondary-50-rgb:231,246,255;--color-secondary-100-rgb:205,236,255;--color-secondary-200-rgb:155,217,255;--color-secondary-300-rgb:119,203,255;--color-secondary-400-rgb:96,194,255;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:24,166,253;--color-secondary-700-rgb:16,153,237;--color-secondary-800-rgb:7,138,218;--color-secondary-900-rgb:4,107,171;--color-secondary-950-rgb:6,42,75;--color-success-50:#ecfff8;--color-success-100:#d0f6e8;--color-success-200:#b1ecd6;--color-success-300:#7adfba;--color-success-400:#48d1a0;--color-success-500:#22c98d;--color-success-600:#0dbb7d;--color-success-700:#0ca76f;--color-success-800:#0e8d60;--color-success-900:#186c4e;--color-success-50-rgb:236,255,248;--color-success-100-rgb:208,246,232;--color-success-200-rgb:177,236,214;--color-success-300-rgb:122,223,186;--color-success-400-rgb:72,209,160;--color-success-500-rgb:34,201,141;--color-success-600-rgb:13,187,125;--color-success-700-rgb:12,167,111;--color-success-800-rgb:14,141,96;--color-success-900-rgb:24,108,78;--color-warning-50:#fff4ea;--color-warning-100:#ffecdb;--color-warning-200:#ffd2a9;--color-warning-300:#ffbc7e;--color-warning-400:#ffaf65;--color-warning-500:#ff9f46;--color-warning-600:#f38f19;--color-warning-700:#ed8307;--color-warning-800:#d17100;--color-warning-900:#af5f01;--color-warning-50-rgb:255,244,234;--color-warning-100-rgb:255,236,219;--color-warning-200-rgb:255,210,169;--color-warning-300-rgb:255,188,126;--color-warning-400-rgb:255,175,101;--color-warning-500-rgb:255,159,70;--color-warning-600-rgb:243,143,25;--color-warning-700-rgb:237,131,7;--color-warning-800-rgb:209,113,0;--color-warning-900-rgb:175,95,1;--color-danger-50:#ffebeb;--color-danger-100:#ffd5d5;--color-danger-200:#ffb1b1;--color-danger-300:#ff9292;--color-danger-400:#ff7c7c;--color-danger-500:#fc5959;--color-danger-600:#fb2b2b;--color-danger-700:#d91b1b;--color-danger-800:#ba1313;--color-danger-900:#a20606;--color-danger-50-rgb:255,235,235;--color-danger-100-rgb:255,213,213;--color-danger-200-rgb:255,177,177;--color-danger-300-rgb:255,146,146;--color-danger-400-rgb:255,124,124;--color-danger-500-rgb:252,89,89;--color-danger-600-rgb:251,43,43;--color-danger-700-rgb:217,27,27;--color-danger-800-rgb:186,19,19;--color-danger-900-rgb:162,6,6;--color-important-50:#fff8f5;--color-important-100:#ffe2d9;--color-important-200:#ffcebf;--color-important-300:#ffb29b;--color-important-400:#ff8c68;--color-important-500:#ff8058;--color-important-600:#ff6f42;--color-important-700:#ff4912;--color-important-800:#c83509;--color-important-900:#611700;--color-important-50-rgb:255,248,245;--color-important-100-rgb:255,226,217;--color-important-200-rgb:255,206,191;--color-important-300-rgb:255,178,155;--color-important-400-rgb:255,140,104;--color-important-500-rgb:255,128,88;--color-important-600-rgb:255,111,66;--color-important-700-rgb:255,73,18;--color-important-800-rgb:200,53,9;--color-important-900-rgb:97,23,0;--color-special-50:#efecfa;--color-special-100:#e4dff7;--color-special-200:#c4b6ff;--color-special-300:#a38cff;--color-special-400:#8a6ff5;--color-special-500:#8166ee;--color-special-600:#7055df;--color-special-700:#513baa;--color-special-800:#452da5;--color-special-900:#30216e;--color-special-50-rgb:239,236,250;--color-special-100-rgb:228,223,247;--color-special-200-rgb:196,182,255;--color-special-300-rgb:163,140,255;--color-special-400-rgb:138,111,245;--color-special-500-rgb:129,102,238;--color-special-600-rgb:112,85,223;--color-special-700-rgb:81,59,170;--color-special-800-rgb:69,45,165;--color-special-900-rgb:48,33,110;--color-inherit:inherit;--color-transparent:transparent;--color-current:currentColor;--color-black:#000;--color-white:#fff;--color-canvas:#fff;--color-canvas-light:#fff;--color-canvas-dark:#fcfdfe;--color-inverse:#000;--color-surface:#eff1f3;--color-surface-light:#fcfdfe;--color-surface-strong:#ebedf3;--color-fore:#30394a;--color-fore-in-light:#30394a;--color-fore-in-dark:#fff;--color-focus:#bcdcff;--color-link:#2b47a2;--color-link-hover:#144ce1;--color-link-visited:#6328a4;--color-link-active:#144ce1;--color-placeholder:#b2b9c5;--color-border:#ebedf3;--color-border-strong:#d2d6e5;--color-border-light:#eff1f3;--color-black-rgb:0,0,0;--color-white-rgb:255,255,255;--color-canvas-rgb:255,255,255;--color-canvas-light-rgb:255,255,255;--color-canvas-dark-rgb:252,253,254;--color-inverse-rgb:0,0,0;--color-surface-rgb:239,241,243;--color-surface-light-rgb:252,253,254;--color-surface-strong-rgb:235,237,243;--color-fore-rgb:48,57,74;--color-fore-in-light-rgb:48,57,74;--color-fore-in-dark-rgb:255,255,255;--color-focus-rgb:188,220,255;--color-link-rgb:43,71,162;--color-link-hover-rgb:20,76,225;--color-link-visited-rgb:99,40,164;--color-link-active-rgb:20,76,225;--color-placeholder-rgb:178,185,197;--color-border-rgb:235,237,243;--color-border-strong-rgb:210,214,229;--color-border-light-rgb:239,241,243}body{--btn-bg:var(--color-gray-50)}@media (prefers-color-scheme:dark){.dark-auto{--color-gray-50:#0b0f18;--color-gray-100:#30394a;--color-gray-200:#353d57;--color-gray-300:#3d4667;--color-gray-400:#4a577f;--color-gray-500:#64758b;--color-gray-600:#b2b9c5;--color-gray-700:#d2d6e5;--color-gray-800:#ebedf3;--color-gray-900:#eff1f3;--color-gray-950:#fcfdfe;--color-gray-50-rgb:11,15,24;--color-gray-100-rgb:48,57,74;--color-gray-200-rgb:53,61,87;--color-gray-300-rgb:61,70,103;--color-gray-400-rgb:74,87,127;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:178,185,197;--color-gray-700-rgb:210,214,229;--color-gray-800-rgb:235,237,243;--color-gray-900-rgb:239,241,243;--color-gray-950-rgb:252,253,254;--color-primary-50:#142457;--color-primary-100:#19388f;--color-primary-200:#173db6;--color-primary-300:#144ce1;--color-primary-400:#2b67e5;--color-primary-500:#3883fa;--color-primary-600:#59a5ff;--color-primary-700:#8ec6ff;--color-primary-800:#bcdcff;--color-primary-900:#d9eaff;--color-primary-950:#eef6ff;--color-primary-50-rgb:20,36,87;--color-primary-100-rgb:25,56,143;--color-primary-200-rgb:23,61,182;--color-primary-300-rgb:20,76,225;--color-primary-400-rgb:43,103,229;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:89,165,255;--color-primary-700-rgb:142,198,255;--color-primary-800-rgb:188,220,255;--color-primary-900-rgb:217,234,255;--color-primary-950-rgb:238,246,255;--color-secondary-50:#062a4b;--color-secondary-100:#046bab;--color-secondary-200:#078ada;--color-secondary-300:#1099ed;--color-secondary-400:#18a6fd;--color-secondary-500:#37b2fe;--color-secondary-600:#60c2ff;--color-secondary-700:#77cbff;--color-secondary-800:#9bd9ff;--color-secondary-900:#cdecff;--color-secondary-950:#e7f6ff;--color-secondary-50-rgb:6,42,75;--color-secondary-100-rgb:4,107,171;--color-secondary-200-rgb:7,138,218;--color-secondary-300-rgb:16,153,237;--color-secondary-400-rgb:24,166,253;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:96,194,255;--color-secondary-700-rgb:119,203,255;--color-secondary-800-rgb:155,217,255;--color-secondary-900-rgb:205,236,255;--color-secondary-950-rgb:231,246,255;--color-success-50:#186c4e;--color-success-100:#0e8d60;--color-success-200:#0ca76f;--color-success-300:#0dbb7d;--color-success-400:#22c98d;--color-success-500:#48d1a0;--color-success-600:#7adfba;--color-success-700:#b1ecd6;--color-success-800:#d0f6e8;--color-success-900:#ecfff8;--color-success-50-rgb:24,108,78;--color-success-100-rgb:14,141,96;--color-success-200-rgb:12,167,111;--color-success-300-rgb:13,187,125;--color-success-400-rgb:34,201,141;--color-success-500-rgb:72,209,160;--color-success-600-rgb:122,223,186;--color-success-700-rgb:177,236,214;--color-success-800-rgb:208,246,232;--color-success-900-rgb:236,255,248;--color-warning-50:#af5f01;--color-warning-100:#d17100;--color-warning-200:#ed8307;--color-warning-300:#f38f19;--color-warning-400:#ff9f46;--color-warning-500:#ffaf65;--color-warning-600:#ffbc7e;--color-warning-700:#ffd2a9;--color-warning-800:#ffecdb;--color-warning-900:#fff4ea;--color-warning-50-rgb:175,95,1;--color-warning-100-rgb:209,113,0;--color-warning-200-rgb:237,131,7;--color-warning-300-rgb:243,143,25;--color-warning-400-rgb:255,159,70;--color-warning-500-rgb:255,175,101;--color-warning-600-rgb:255,188,126;--color-warning-700-rgb:255,210,169;--color-warning-800-rgb:255,236,219;--color-warning-900-rgb:255,244,234;--color-danger-50:#a20606;--color-danger-100:#ba1313;--color-danger-200:#d91b1b;--color-danger-300:#fb2b2b;--color-danger-400:#fc5959;--color-danger-500:#ff7c7c;--color-danger-600:#ff9292;--color-danger-700:#ffb1b1;--color-danger-800:#ffd5d5;--color-danger-900:#ffebeb;--color-danger-50-rgb:162,6,6;--color-danger-100-rgb:186,19,19;--color-danger-200-rgb:217,27,27;--color-danger-300-rgb:251,43,43;--color-danger-400-rgb:252,89,89;--color-danger-500-rgb:255,124,124;--color-danger-600-rgb:255,146,146;--color-danger-700-rgb:255,177,177;--color-danger-800-rgb:255,213,213;--color-danger-900-rgb:255,235,235;--color-important-50:#611700;--color-important-100:#c83509;--color-important-200:#ff4912;--color-important-300:#ff6f42;--color-important-400:#ff8058;--color-important-500:#ff8c68;--color-important-600:#ffb29b;--color-important-700:#ffcebf;--color-important-800:#ffe2d9;--color-important-900:#fff8f5;--color-important-50-rgb:97,23,0;--color-important-100-rgb:200,53,9;--color-important-200-rgb:255,73,18;--color-important-300-rgb:255,111,66;--color-important-400-rgb:255,128,88;--color-important-500-rgb:255,140,104;--color-important-600-rgb:255,178,155;--color-important-700-rgb:255,206,191;--color-important-800-rgb:255,226,217;--color-important-900-rgb:255,248,245;--color-special-50:#30216e;--color-special-100:#452da5;--color-special-200:#513baa;--color-special-300:#7055df;--color-special-400:#8166ee;--color-special-500:#8a6ff5;--color-special-600:#a38cff;--color-special-700:#c4b6ff;--color-special-800:#e4dff7;--color-special-900:#efecfa;--color-special-50-rgb:48,33,110;--color-special-100-rgb:69,45,165;--color-special-200-rgb:81,59,170;--color-special-300-rgb:112,85,223;--color-special-400-rgb:129,102,238;--color-special-500-rgb:138,111,245;--color-special-600-rgb:163,140,255;--color-special-700-rgb:196,182,255;--color-special-800-rgb:228,223,247;--color-special-900-rgb:239,236,250;--color-canvas:#0b0f18;--color-inverse:#fff;--color-surface:#353d57;--color-surface-light:#30394a;--color-surface-strong:#3d4667;--color-fore:#ebedf3;--color-focus:#173db6;--color-link:#59a5ff;--color-link-hover:#3883fa;--color-link-visited:#bcdcff;--color-link-active:#bcdcff;--color-placeholder:#4a577f;--color-border:#353d57;--color-border-strong:#3d4667;--color-border-light:#30394a;--color-canvas-rgb:11,15,24;--color-inverse-rgb:255,255,255;--color-surface-rgb:53,61,87;--color-surface-light-rgb:48,57,74;--color-surface-strong-rgb:61,70,103;--color-fore-rgb:235,237,243;--color-focus-rgb:23,61,182;--color-link-rgb:89,165,255;--color-link-hover-rgb:56,131,250;--color-link-visited-rgb:188,220,255;--color-link-active-rgb:188,220,255;--color-placeholder-rgb:74,87,127;--color-border-rgb:53,61,87;--color-border-strong-rgb:61,70,103;--color-border-light-rgb:48,57,74}}*,:after,:before{--tw-border-opacity:1;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity))}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }html{font-size:var(--font-size-root)}body{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));font-size:.8125rem;line-height:1.5384615385}.dark,body{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}:root{--font-h1-size:2.25rem}a,a.disabled:hover{--tw-text-opacity:1;color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}a:hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}a:focus-visible{outline-color:rgb(var(--color-focus-rgb));outline-offset:2px;outline-width:2px}.code,code{--tw-text-opacity:1;background-color:rgba(var(--color-important-500-rgb),.1);border-radius:var(--radius);color:rgba(var(--color-important-500-rgb),var(--tw-text-opacity));padding-left:.25rem;padding-right:.25rem}pre{font-size:.75rem;line-height:1rem;overflow:auto;padding:.5rem}pre code{background-color:transparent;color:inherit;padding:0}samp,var{font-weight:700}.blockquote,blockquote{text-wrap:balance;border-left-width:4px;font-size:.875rem;line-height:1.3rem;padding-left:.75rem}.blockquote figcaption,blockquote figcaption{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{text-wrap:balance;font-weight:700;line-height:1.5}.h1,h1{font-size:1.75rem}.h2,h2{font-size:1.5rem}.h3,h3{font-size:1.25rem}.h4,h4{font-size:1rem}.h5,h5{font-size:.875rem}.h6,h6{font-size:.75rem}ul{list-style-type:disc}ol,ul{padding-left:1.5em}ol{list-style-type:decimal}dt{font-weight:700}dd{padding-left:2em}.article{font-size:.875rem;line-height:1.75}.article audio,.article blockquote,.article figure,.article h1,.article h2,.article h3,.article h4,.article img,.article ol,.article p,.article table,.article ul,.article video{margin-bottom:.5em;margin-top:.5em}.article hr{margin-bottom:1.5em;margin-top:1.5em}.article table{border-width:1px}.article td,.article th{border-bottom-width:1px;padding:.25rem .75rem}.article thead{background-color:var(--table-head-bg,var(--color-gray-100))}.article ol *,.article table *,.article ul *{margin-bottom:0;margin-top:0}.article pre{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));border-radius:var(--radius);border-width:1px}:root{--alert-bg:var(--color-surface)}.alert{align-items:center;background-color:var(--alert-bg);border-radius:var(--radius);display:flex;gap:.75rem;padding:.5rem .75rem}.alert-content{display:flex;flex:1 1 auto;flex-direction:column;gap:1rem}.alert-close{margin-bottom:-.375rem;margin-right:-.5rem;margin-top:-.375rem}.alert-link{color:inherit;font-weight:700}.alert-link:hover{color:inherit;text-decoration-line:underline}.alert-heading{font-weight:700;margin:0}.alert-text{flex:1 1 auto;white-space:pre-line}.alert-actions{align-items:center;display:flex;gap:.5rem}:root{--breadcrumb-divider:"/";--breadcrumb-divider-color:var(--color-gray-500);--breadcrumb-color-active:var(--color-gray-500)}.breadcrumb{display:flex;gap:1.25rem;list-style-type:none;padding-left:0}.breadcrumb>li{position:relative}.breadcrumb>li+li:before{color:var(--breadcrumb-divider-color);content:var(--breadcrumb-divider);display:block;left:-1.25rem;position:absolute;text-align:center;width:1.25rem}.breadcrumb>.active{color:var(--breadcrumb-color-active)}:root{--btn-radius:var(--radius);--btn-bg:var(--color-surface);--btn-border-color:var(--color-gray-300)}.btn{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--btn-border-color);--state-active-opacity:1;align-items:center;background-color:var(--btn-bg);border-radius:var(--btn-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:inline-flex;gap:.375rem;height:2rem;justify-content:center;padding-left:.75rem;padding-right:.75rem;white-space:nowrap}.btn,.btn-default:hover{color:inherit}.btn-link{--tw-text-opacity:1;--tw-ring-color:transparent;color:rgba(var(--color-link-rgb),var(--tw-text-opacity));text-decoration-line:underline;text-underline-offset:2px}.btn-link:visited{color:rgba(var(--color-link-visited-rgb),var(--tw-text-opacity))}.btn-link:hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}.btn-link{--btn-bg:transparent}.btn.size-xs,.size-xs>.btn{font-size:.75rem;height:1.25rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}.btn.size-sm,.size-sm>.btn{font-size:.75rem;height:1.5rem;line-height:1rem}.btn.size-md,.btn.size-sm,.size-md>.btn,.size-sm>.btn{padding-left:.5rem;padding-right:.5rem}.btn.size-md,.size-md>.btn{height:1.75rem}.btn.size-lg,.size-lg>.btn{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:1rem;padding-right:1rem}.btn.size-xl,.size-xl>.btn{font-size:1.125rem;height:3rem;line-height:1.75rem;padding-left:1.25rem;padding-right:1.25rem}.btn.square{aspect-ratio:1/1;gap:.125rem;padding-left:0;padding-right:0}.btn.btn-caret{padding-left:.25rem;padding-right:.25rem}.btn.btn-wide{min-width:80px}:root{--checkbox-size:12px;--checkbox-color:var(--color-primary-500)}.checkbox,.radio{align-items:center;cursor:pointer;display:flex;gap:.375rem;min-height:20px}.checkbox>input[type=checkbox],.radio>input[type=radio]{accent-color:rgb(var(--color-primary-500-rgb));border-radius:var(--radius-lg)}.checkbox-primary,.radio-primary{display:flex;gap:.375rem;min-height:20px;position:relative}.checkbox-primary>input[type=checkbox],.radio-primary>input[type=radio]{inset:0;opacity:0;position:absolute}.checkbox-primary>label,.radio-primary>label{cursor:pointer;padding-left:calc(var(--checkbox-size) + 8px);position:relative}.checkbox-primary>label:after,.checkbox-primary>label:before,.radio-primary>label:after,.radio-primary>label:before{--tw-content:"";content:var(--tw-content);display:block;height:var(--checkbox-size);left:0;position:absolute;top:calc((20px - var(--checkbox-size))/2);transition-duration:.15s;transition-property:transform,background-color,color,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--checkbox-size)}.checkbox-primary>label:before{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity));border-radius:var(--radius-sm);border-width:1px}.checkbox-primary>label:after{--tw-scale-x:.9;--tw-scale-y:.9;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTkgMjAuNDItNi4yMS02LjIxIDIuODMtMi44M0w5IDE0Ljc3bDkuODgtOS44OSAyLjgzIDIuODN6Ii8+PC9zdmc+");transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.radio-primary>label:before{--tw-border-opacity:1;border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity));border-radius:var(--radius-full);border-width:1px}.radio-primary>label:after{--checkbox-radio-size:calc(var(--checkbox-size)*2/3);background-color:var(--checkbox-color);border-radius:var(--radius-full);height:var(--checkbox-radio-size);left:calc((var(--checkbox-size) - var(--checkbox-radio-size))/2);opacity:0;top:calc((20px - var(--checkbox-radio-size))/2);width:var(--checkbox-radio-size)}.checkbox-primary>label:hover:before,.radio-primary>label:hover:before{border-color:var(--checkbox-color)}.checkbox-primary.focus>label:before,.checkbox-primary>input[type=checkbox]:focus+label:before,.radio-primary.focus>label:before,.radio-primary>input[type=radio]:focus+label:before{border-color:var(--checkbox-color);outline-color:rgb(var(--color-focus-rgb));outline-style:solid;outline-width:2px}.checkbox-primary.checked>label:before,.checkbox-primary>input[type=checkbox]:checked+label:before{background-color:var(--checkbox-color);border-color:var(--checkbox-color)}.radio-primary.checked>label:before,.radio-primary>input[type=radio]:checked+label:before{border-color:var(--checkbox-color)}.checkbox-primary.checked>label:after,.checkbox-primary>input[type=checkbox]:checked+label:after,.radio-primary.checked>label:after,.radio-primary>input[type=radio]:checked+label:after{opacity:1}.checkbox-primary.disabled>label,.checkbox-primary>input[type=checkbox]:disabled+label,.radio-primary.disabled>label,.radio-primary>input[type=radio]:disabled+label{--tw-grayscale:grayscale(100%);cursor:not-allowed;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:.7;pointer-events:none}.checkbox-primary.indeterminate>label:after,.checkbox-primary>input[type=checkbox]:indeterminate+label:after{--tw-border-opacity:1;background-color:var(--checkbox-color);background-image:none;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));border-width:calc((var(--checkbox-size) - 2px)/2) 2px;opacity:1}.check-list{flex-direction:column;gap:.5rem}.check-list,.check-list-inline{display:flex;padding-bottom:.375rem;padding-top:.375rem}.check-list-inline{align-items:center;-moz-column-gap:1rem;column-gap:1rem;flex-direction:row;flex-wrap:wrap;row-gap:.5rem}.switch{display:flex;gap:.375rem;min-height:20px;padding-left:2.5rem;position:relative}.switch>input{inset:0;opacity:0;position:absolute}.switch>label:after,.switch>label:before{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-border-strong-rgb),var(--tw-border-opacity));border-radius:var(--radius-full);border-width:1px;content:var(--tw-content);height:1rem;left:0;position:absolute;top:.125rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2rem}.switch>label:before{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer}.switch>label:hover:before{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity))}.switch>label:after{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);height:.75rem;left:.125rem;top:.25rem;width:.75rem}.switch>input:checked+label:before{background-color:var(--checkbox-color);border-color:rgba(var(--color-inverse-rgb),.2)}.switch>input:checked+label:after{color:var(--checkbox-color);left:18px}.switch.focus>label:before,.switch>input:focus+label:before{border-color:var(--checkbox-color);outline-color:rgb(var(--color-focus-rgb));outline-style:solid;outline-width:2px}.switch.disabled>label:before,.switch>input:disabled+label:before{--tw-grayscale:grayscale(100%);cursor:not-allowed;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:.7;pointer-events:none}:root{--form-control-radius:var(--radius);--form-control-border:var(--color-border);--form-control-focus:var(--color-primary-500);--form-control-disabled:var(--color-surface);--form-control-readonly:var(--color-surface)}.dark{--form-control-border:var(--color-border-strong)}input::-moz-placeholder,textarea::-moz-placeholder{--tw-placeholder-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-placeholder-opacity))}input::placeholder,textarea::placeholder{--tw-placeholder-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-placeholder-opacity))}.form-control{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--form-control-border);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--form-control-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:block;height:2rem;outline-color:transparent;outline-style:solid;outline-width:1px;padding:.25rem .5rem;transition-duration:.15s;transition-property:outline,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.form-control.focus,.form-control:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-focus-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.3;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline-color:var(--form-control-focus)}.form-control.disabled,.form-control[disabled]{background-color:var(--form-control-disabled);opacity:1}.form-control.readonly,.form-control[readonly]{background-color:var(--form-control-readonly)}select{-webkit-appearance:none;background-image:url("data:image/gif;base64,R0lGODlhBwAEAIAAAMvQ2////yH5BAEAAAEALAAAAAAHAAQAAAIIhA+BGWoNWSgAOw==");background-position:right 8px top 50%;background-repeat:no-repeat;background-size:8px auto;padding-right:1rem}select.form-control[multiple]{background-image:none}textarea.form-control{height:auto;min-height:32px}input[type=file].form-control{padding:.125rem}input[type=file].form-control::-webkit-file-upload-button{-webkit-appearance:none;appearance:none;border-radius:inherit;border-style:none;cursor:pointer;height:1.75rem;padding-left:.5rem;padding-right:.5rem}input[type=file].form-control::-webkit-file-upload-button:hover{background-color:rgba(var(--color-black-rgb),.1)}.has-error .form-control,.has-error.form-control{--tw-ring-color:rgba(var(--color-danger-500-rgb),0.6)}.has-error .form-control.focus,.has-error .form-control:focus,.has-error.form-control.focus,.has-error.form-control:focus{--tw-ring-color:rgba(var(--color-danger-500-rgb),0.1);outline-color:rgb(var(--color-danger-500-rgb))}.has-warning .form-control,.has-warning.form-control{--tw-ring-color:rgba(var(--color-warning-500-rgb),0.6)}.has-warning .form-control.focus,.has-warning .form-control:focus,.has-warning.form-control.focus,.has-warning.form-control:focus{--tw-ring-color:rgba(var(--color-warning-500-rgb),0.2);outline-color:rgb(var(--color-warning-500-rgb))}.has-success .form-control,.has-success.form-control{--tw-ring-color:rgba(var(--color-success-500-rgb),0.6)}.has-success .form-control.focus,.has-success .form-control:focus,.has-success.form-control.focus,.has-success.form-control:focus{--tw-ring-color:rgba(var(--color-success-500-rgb),0.2);outline-color:rgb(var(--color-success-500-rgb))}.form-control.size-sm,.size-sm>.form-control{font-size:.75rem;height:1.5rem;line-height:1rem;padding-left:.5rem;padding-right:.5rem}.form-control.size-md,.size-md>.form-control{height:1.75rem;padding-left:.5rem;padding-right:.5rem}.form-control.size-lg,.size-lg>.form-control{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:.75rem;padding-right:.75rem}:root{--input-group-addon-bg:var(--color-gray-50)}.input-group{align-items:stretch;display:flex}.input-group>.form-control,.input-group>.input-control{flex:1 1 auto;z-index:1}.input-group-addon{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--form-control-border);align-items:center;background-color:var(--input-group-addon-bg);border-radius:var(--form-control-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:flex;flex:none;height:2rem;padding-left:.5rem;padding-right:.5rem;z-index:0}.size-sm>.input-group-addon{font-size:.75rem;height:1.5rem;line-height:1rem;padding-left:.5rem;padding-right:.5rem}.size-lg>.input-group-addon{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:.75rem;padding-right:.75rem}.input-group-control{flex:1 1 auto}.input-group>*+*,.input-group>*+* .form-control{border-bottom-left-radius:var(--radius-none);border-top-left-radius:var(--radius-none)}.input-group>:not(:last-child),.input-group>:not(:last-child) .form-control{border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none)}.input-group .btn:focus-visible,.input-group .form-control:focus{z-index:2}:root{--form-tip-color:var(--color-gray-400);--form-label-color:var(--color-gray-700);--form-horz-label-width:6rem;--form-grid-gap-x:1.25rem;--form-grid-gap-y:.75rem}.form{flex-direction:column;gap:1rem}.form,.form-label{display:flex}.form-label{align-items:center;color:var(--form-label-color);flex-direction:row;gap:.25rem;height:2rem;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.form-label.required:after{--tw-translate-y:0.125rem;--tw-scale-x:1.25;--tw-scale-y:1.25;--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity));content:"*";display:inline-block;margin-left:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.no-required .form-label.required:after{display:none}.form-label-actions{flex:1 1 auto;justify-content:flex-end}.form-label>.checkbox-primary{margin-left:.75rem}.form-tip{color:var(--form-tip-color);display:block;margin-top:.25rem}.has-error .form-tip{--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity))}.has-warning .form-tip{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.has-success .form-tip{--tw-text-opacity:1;color:rgba(var(--color-success-500-rgb),var(--tw-text-opacity))}.form-actions{display:flex;flex-direction:row;gap:1rem;justify-content:center}.form-grid{--form-grid-gap-x-half:calc(var(--form-grid-gap-x)/2);--form-grid-gap-y-half:calc(var(--form-grid-gap-y)/2);align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:0}.form-grid .form-group{padding:var(--form-grid-gap-y-half) var(--form-grid-gap-x-half)}.form-grid .form-label.required:after{margin-left:0;order:-9999}.form-grid .form-label .checkbox{margin-left:.75rem;margin-right:.75rem}.form-grid .has-wrap-after:after{--tw-content:"";content:var(--tw-content);display:block;width:100%}.form-grid-wrap{width:100%}.form-grid-row{display:flex;flex-direction:row;padding-bottom:var(--form-grid-gap-y-half);padding-top:var(--form-grid-gap-y-half);position:relative;width:100%}.form-grid-col{padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half)}.form-grid .form-actions{gap:1.5rem;justify-content:center;padding:var(--form-grid-gap-y) var(--form-grid-gap-x-half);width:100%}.form-grid .form-actions.is-pinned{border-top-width:1px}.form-horz .form-group,.form-horz .form-row{align-items:flex-start;display:flex;flex-direction:row}.form-horz .form-group{flex-grow:1;flex-wrap:wrap;min-height:32px;min-width:0;padding-left:var(--form-horz-label-width);position:relative}.form-horz .form-group[class*=" w-"],.form-horz .form-group[class^=w-]{flex:none}.form-horz .form-group>*{min-width:0}.form-horz .form-group.no-label{padding-left:0}.form-horz .form-group.no-label>.check-list-inline{padding-left:1rem;padding-right:1rem}.form-horz .form-label{justify-content:flex-end;left:0;padding-left:1rem;padding-right:.5rem;position:absolute;top:0;width:var(--form-horz-label-width)}.form-horz .form-label.required:after{margin-left:0;order:-9999}.form-horz .form-tip{width:100%}.form-horz .form-tip,.form-horz .input-control,.form-horz .input-group{flex:1 1 auto}.form .form-group-wrapper,.form-horz .form-group-wrapper{flex:1 1 auto;min-width:0;width:100%;z-index:1}.form .form-group-wrapper.flex-none,.form-horz .form-group-wrapper.flex-none{flex:none}.form fieldset>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.form fieldset{padding-bottom:1rem;padding-left:1rem}.form-grid fieldset>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.form legend{--tw-border-opacity:1;border-bottom-color:rgba(var(--color-primary-100-rgb),var(--tw-border-opacity));border-bottom-width:1px;display:flex;justify-content:flex-start;margin-left:-1rem;width:100%;width:calc(100% + 1rem)}.form-title{align-items:center;background-color:rgba(var(--color-primary-50-rgb),.5);display:flex;font-weight:700;height:1.75rem;padding-left:.75rem;padding-right:.75rem}:root{--input-control-fix-width-sm:2rem;--input-control-fix-width:4.375rem;--input-control-fix-width-lg:6.75rem}.input-control{--input-control-prefix:8px;--input-control-suffix:8px;position:relative}.input-control-prefix,.input-control-suffix{align-items:center;display:flex;height:100%;left:0;opacity:.5;padding-left:.5rem;padding-right:.5rem;position:absolute;top:0;white-space:nowrap;width:var(--input-control-prefix);z-index:1}.input-control-suffix{justify-content:flex-end;left:auto;right:0;width:var(--input-control-suffix)}.form-control:focus+.input-control-prefix,.form-control:focus+.input-control-suffix{opacity:1}.input-control>.form-control{padding-left:var(--input-control-prefix);padding-right:var(--input-control-suffix)}.input-control>select.form-control{background-position-x:calc(100% - var(--input-control-suffix) - 8px);padding-right:calc(var(--input-control-suffix) + 20px)}.has-prefix{--input-control-prefix:var(--input-control-fix-width)}.has-suffix{--input-control-suffix:var(--input-control-fix-width)}.has-prefix-sm{--input-control-prefix:var(--input-control-fix-width-sm)}.has-suffix-sm{--input-control-suffix:var(--input-control-fix-width-sm)}.has-prefix-lg{--input-control-prefix:var(--input-control-fix-width-lg)}.has-suffix-lg{--input-control-suffix:var(--input-control-fix-width-lg)}.has-prefix-icon{--input-control-prefix:32px}.has-suffix-icon{--input-control-suffix:32px}.input-control.has-prefix-icon{--input-control-prefix:32px}.input-control.has-suffix-icon{--input-control-suffix:32px}.input-control.has-prefix-icon>.input-control-prefix,.input-control.has-suffix-icon>.input-control-suffix{justify-content:center;padding:0}.input-control.size-sm>.form-control,.input-control.size-sm>.input-control-prefix,.input-control.size-sm>.input-control-suffix{font-size:.75rem;line-height:1rem}.input-control.size-lg>.form-control,.input-control.size-lg>.input-control-prefix,.input-control.size-lg>.input-control-suffix{font-size:1rem;line-height:1.5rem}:root{--label-bg:var(--color-gray-50);--label-border-color:var(--color-gray-500);--label-color:var(--color-gray-500);--label-radius:var(--radius)}.label{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--label-border-color);align-items:center;background-color:var(--label-bg);border-radius:var(--label-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--label-color);display:inline-flex;font-size:.75rem;height:1.25rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem;white-space:pre-line}.label.size-lg{font-size:.8125rem;height:1.5rem;line-height:1.25rem;padding-left:.5rem;padding-right:.5rem}.label.size-sm{height:1rem}.label-dot{aspect-ratio:1/1;border-radius:var(--radius-full);height:.5rem;padding-left:0;padding-right:0}.caret,.caret-down,.caret-left,.caret-right,.caret-up{border:var(--caret-size,4px) solid transparent;display:inline-block;height:0;opacity:var(--caret-opacity,.5);width:0}:focus>.caret,:hover>.caret{opacity:inherit}.disabled .caret,.readonly .caret{opacity:var(--caret-opacity,.5)}.caret,.caret-down{border-bottom-width:0;border-top-color:currentColor}.caret-up{border-bottom-color:currentColor;border-top-width:0}.caret-right{border-left-color:currentColor;border-right-width:0}.caret-left{border-left-width:0;border-right-color:currentColor}.listitem{align-items:center;border-radius:var(--radius);display:flex;flex-direction:row;flex-wrap:nowrap;gap:.5rem;padding:.25rem}.listitem.selected{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.listitem.active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.item-actions,.item-avatar,.item-icon,.item-trailing,.item-trailing-icon{flex:none}.item-icon.icon-EMPTY{display:none}.item-subtitle{font-size:.75rem;line-height:1rem;opacity:.8}.item-content,.item-text{flex:1 1 auto;min-width:0}.item-leading,.item-trailing{align-items:center;display:flex;flex:none;gap:.5rem}.item-checkbox{margin-right:-.5rem}.item-content{align-items:center;display:flex;gap:.5rem}.multiline>.item-content{align-items:flex-start;flex-direction:column;gap:.25rem}.list{list-style-type:none;padding-left:0}.list-heading-inner .item-title{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-weight:700}.list.is-nested-sub{padding-left:var(--list-indent)}.is-nested-collapsed{display:none}.nested-toggle-icon{align-items:center;border-radius:var(--radius);display:flex;height:1rem;justify-content:center;margin-right:-.25rem;width:1rem}.magnifier{display:inline-block;height:1em;position:relative;width:1em}.magnifier:after,.magnifier:before{border-radius:var(--radius-full);content:"";display:block;position:absolute}.magnifier:before{border:1px solid;height:.75em;width:.75em}.magnifier:after{--tw-rotate:45deg;background-color:currentColor;height:1px;left:.55em;top:.7em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5em}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.search-box.compact.has-prefix-icon{--input-control-prefix:24px}.search-box.compact.has-suffix-icon{--input-control-suffix:24px}:root{--menu-bg:var(--color-canvas);--menu-active-bg:var(--color-primary-500);--menu-active-color:var(--color-canvas);--menu-selected-bg:var(--color-primary-50);--menu-selected-color:var(--color-primary-500);--menu-icon-opacity:.5;--menu-icon-margin:1.75rem;--menu-min-width:3rem;--menu-heading-color:var(--color-gray-500)}.menu{background:var(--menu-bg);max-width:var(--menu-max-width);min-width:var(--menu-min-width);padding:.5rem}.menu-wrapper{display:flex;flex-direction:column;min-height:0}.menu-wrapper>.menu{flex:1 1 auto;min-height:0;overflow:auto}.menu-item>.item-inner,.menu-item>a{align-items:center;border-radius:var(--radius);color:inherit;cursor:pointer;display:flex;gap:.5rem;justify-content:space-between;overflow:hidden;padding:.25rem .5rem;position:relative;text-overflow:ellipsis;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);white-space:nowrap}.menu-item>.selected{background:var(--menu-selected-bg);color:var(--menu-selected-color)}.menu-item>.active,.menu-item>a.hover,.menu-item>a:hover{background:var(--menu-active-bg);color:var(--menu-active-color)}.menu-item.disabled>a:hover,.menu-item>a.disabled:hover{background-color:inherit;color:inherit}.menu-item>a>.item-title{flex:1 1 auto}.menu>.divider{margin:.5rem .25rem}.menu-heading{align-items:center;color:var(--menu-heading-color);display:flex;font-size:.75rem;font-weight:700;height:2rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}.has-icons>.menu-item>a>.item-icon{align-items:center;display:flex;height:1rem;justify-content:center;opacity:var(--menu-icon-opacity);width:1rem}.menu-nested{--menu-indent:10px}.menu-nested .menu{background-color:transparent;margin-bottom:-.5rem;margin-left:var(--menu-indent);margin-top:-.5rem;padding-right:0}.menu-nested .menu-item>.item-inner{padding-left:0}.menu.compact .menu-item>a{padding-bottom:.125rem;padding-top:.125rem}.menu.compact .menu-heading{height:1.75rem}.search-menu-header{padding:.5rem .5rem .125rem}.search-menu-footer{padding:.125rem .5rem .5rem}.search-menu .item.is-not-match{display:none}.search-menu .item.is-not-match.has-match-child{display:list-item}.search-menu .item.is-not-match.has-match-child>.item-inner{opacity:.5;pointer-events:none}.search-menu.no-toggle-on-search .nested-toggle-icon{pointer-events:none}.search-menu .is-match-keys{font-weight:700;text-decoration-line:underline}.search-menu-no-match-hint{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));display:none;font-size:.75rem;line-height:1rem;padding:.5rem}.no-match-child .search-menu-no-match-hint{display:block}.no-match-child>.menu{display:none}:root{--alert-bg:var(--color-surface)}.alert{align-items:center;background-color:var(--alert-bg);border-radius:var(--radius);display:flex;gap:.75rem;padding:.5rem .75rem}.alert-content{display:flex;flex:1 1 auto;flex-direction:column;gap:1rem}.alert-close{margin-bottom:-.375rem;margin-right:-.5rem;margin-top:-.375rem}.alert-link{color:inherit;font-weight:700}.alert-link:hover{color:inherit;text-decoration-line:underline}.alert-heading{font-weight:700;margin:0}.alert-text{flex:1 1 auto;white-space:pre-line}.alert-actions{align-items:center;display:flex;gap:.5rem}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.messagers{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem;inset:0;justify-content:flex-end;padding:1rem;pointer-events:none;position:fixed;z-index:1900}.messagers-top-left,.messagers-top-right{justify-content:flex-start}.messagers-bottom-left,.messagers-top-left{align-items:flex-start}.messagers-bottom,.messagers-center,.messagers-top{align-items:center}.messagers-top,.messagers-top-left,.messagers-top-right{justify-content:flex-start}.messagers-center{justify-content:center}.messager{--tw-text-opacity:1;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-inverse-rgb),.8);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));pointer-events:auto;transition-duration:.3s}:root{--progress-radius:var(--radius);--progress-striped-size:40px;--progress-bg:var(--color-surface);--progress-bar-color:var(--color-primary-500)}.progress{background:var(--progress-bg);border-radius:var(--progress-radius);display:flex;height:1.25rem}.progress-bar{background:var(--progress-bar-color);height:100%}.progress-striped>.progress-bar{background-image:linear-gradient(45deg,rgba(var(--color-canvas-rgb),.15) 25%,transparent 25%,transparent 50%,rgba(var(--color-canvas-rgb),.15) 50%,rgba(var(--color-canvas-rgb),.15) 75%,transparent 75%,transparent);background-size:var(--progress-striped-size) var(--progress-striped-size)}.progress>.progress-bar:first-child{border-bottom-left-radius:inherit;border-top-left-radius:inherit}.progress>.progress-bar:last-child{border-bottom-right-radius:inherit;border-top-right-radius:inherit}.progress.active .progress-bar{animation:progress-bar-stripes 2s linear infinite}@keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}:root{--scrollbar-size:10px;--scrollbar-opacity:.6;--scrollbar-bg:rgba(var(--color-inverse-rgb),.15);--scrollbar-inset:inset 0 0 0 1px rgba(var(--color-inverse-rgb),.05);--scrollbar-bar-bg:rgba(var(--color-inverse-rgb),.3);--scrollbar-hover-bg:rgba(var(--color-inverse-rgb),.4);--scrollbar-drag-bg:rgba(var(--color-inverse-rgb),.5);--scrollbar-radius:var(--radius-sm);--scrollbar-duration:.7s}::-webkit-scrollbar{height:var(--scrollbar-size);width:var(--scrollbar-size)}::-webkit-scrollbar-track{box-shadow:var(--scrollbar-shadow);-webkit-transition:background-color var(--scrollbar-duration);transition:background-color var(--scrollbar-duration)}::-webkit-scrollbar-track:hover,:hover::-webkit-scrollbar-track{background:var(--scrollbar-bg)}::-webkit-scrollbar-thumb{background:var(--scrollbar-bar-bg);border-radius:var(--scrollbar-radius);min-height:var(--scrollbar-size);-webkit-transition:var(--scrollbar-duration);transition:var(--scrollbar-duration);-webkit-transition-property:background-color;transition-property:background-color}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover-bg)}::-webkit-scrollbar-thumb:active{background:var(--scrollbar-drag-bg)}.scrollbar-thin::-webkit-scrollbar{height:calc(var(--scrollbar-size)/2);width:calc(var(--scrollbar-size)/2)}.scrollbar-hover::-webkit-scrollbar,.scrollbar-hover::-webkit-scrollbar-thumb,.scrollbar-hover::-webkit-scrollbar-track{visibility:hidden}.scrollbar-hover:hover::-webkit-scrollbar,.scrollbar-hover:hover::-webkit-scrollbar-thumb,.scrollbar-hover:hover::-webkit-scrollbar-track{visibility:visible}@font-face{font-family:ZentaoIcon;font-style:normal;font-weight:400;src:url(./icons/ZentaoIcon.eot);src:url(./icons/ZentaoIcon.woff) format("woff"),url(./icons/ZentaoIcon.ttf) format("truetype"),url(./icons/ZentaoIcon.svg#regular) format("svg")}.icon,[class*=" icon-"],[class^=icon-]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-display:block;font-family:ZentaoIcon;font-size:14px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.icon:before{display:inline-block;min-width:14px;text-align:center}.icon-xs:before{font-size:.7em}.icon-sm:before{font-size:.8em}.icon-lg:before{font-size:1.25em;vertical-align:-10%}.icon-2x{font-size:28px}.icon-3x{font-size:42px}.icon-4x{font-size:56px}.icon-5x{font-size:70px}.icon-run{position:relative}.icon-run:before{opacity:.5}.icon-run:after{bottom:0;content:"\ea07";display:block;left:0;position:absolute;right:0;text-align:center;top:0}.icon-guihua:before{content:"\ea02"}.icon-memory:before{content:"\e9fd"}.icon-cpu:before{content:"\e9fe"}.icon-pause-pure:before{content:"\e9ff"}.icon-exclamation-pure:before{content:"\ea00"}.icon-zentao:before{content:"\e901"}.icon-zentao-alt:before{content:"\e900"}.icon-safe:before{content:"\ea06"}.icon-ai:before{content:"\e983"}.icon-kanban:before{content:"\e997"}.icon-college:before{content:"\e9c8"}.icon-home:before,.icon-menu-my:before{content:"\e97a"}.icon-program:before{content:"\e9aa"}.icon-lightbulb-alt:before,.icon-product:before{content:"\e98f"}.icon-project:before,.icon-rocket:before{content:"\e99c"}.icon-run:before{content:"\e9a9"}.icon-run-alt:before{content:"\ea07"}.icon-test:before{content:"\e956"}.icon-devops:before,.icon-infinite:before{content:"\e9a3"}.icon-doc:before,.icon-menu-doc:before{content:"\e99b"}.icon-statistic:before{content:"\e999"}.icon-group:before,.icon-menu-users:before,.icon-persons:before,.icon-team:before{content:"\e97e"}.icon-assets:before,.icon-diamond:before{content:"\e9ae"}.icon-flow:before{content:"\e994"}.icon-backend:before,.icon-cog-outline:before{content:"\ea05"}.icon-help:before{content:"\e968"}.icon-download:before,.icon-import:before{content:"\e904"}.icon-export:before{content:"\e905"}.icon-lightbulb:before{content:"\e91c"}.icon-close:before{content:"\e936"}.icon-check:before{content:"\e5ca"}.icon-minus:before{content:"\e926"}.icon-expand-alt:before{content:"\e6f1"}.icon-collapse-alt:before{content:"\e6f2"}.icon-fullscreen:before{content:"\e96b"}.icon-star-empty:before{content:"\e94a"}.icon-star:before{content:"\e94b"}.icon-exclamation-sign:before{content:"\e930"}.icon-info-sign:before{content:"\e9d5"}.icon-flag:before{content:"\e937"}.icon-check-circle:before{content:"\e92f"}.icon-check-sign:before{content:"\e938"}.icon-chart-pie:before{content:"\e95b"}.icon-history:before{content:"\e95f"}.icon-pencil:before{content:"\e254"}.icon-search:before{content:"\e928"}.icon-restart:before{content:"\e95e"}.icon-cog:before{content:"\e93b"}.icon-chart-line:before{content:"\e95c"}.icon-bar-chart:before,.icon-chart-bar:before{content:"\e95d"}.icon-exchange:before{content:"\e927"}.icon-severity:before{content:"\e973"}.icon-book:before{content:"\f02d"}.icon-treemap-alt:before{content:"\e971"}.icon-severity-solid:before{content:"\e902"}.icon-chat-line:before{content:"\e998"}.icon-stack:before{content:"\e943"}.icon-cube:before{content:"\e967"}.icon-minus-sign:before{content:"\e939"}.icon-bars-sign:before{content:"\e93a"}.icon-chat:before,.icon-message:before{content:"\e940"}.icon-more:before{content:"\e744"}.icon-certificate:before{content:"\f0a3"}.icon-bell:before{content:"\e7f5"}.icon-columns:before{content:"\f0db"}.icon-envelope-o:before{content:"\e92a"}.icon-unfold-all:before{content:"\e931"}.icon-fold-all:before{content:"\e932"}.icon-bars:before{content:"\e948"}.icon-cards-view:before{content:"\e949"}.icon-ellipsis-v:before{content:"\e5d4"}.icon-spinner-indicator:before{content:"\e982"}.icon-up-circle:before{content:"\e92b"}.icon-right-circle:before{content:"\e92c"}.icon-down-circle:before{content:"\e92d"}.icon-left-circle:before{content:"\e92e"}.icon-angle-double-right:before{content:"\f101"}.icon-angle-down:before{content:"\e313"}.icon-angle-left:before{content:"\e314"}.icon-angle-right:before{content:"\e315"}.icon-angle-top:before{content:"\e316"}.icon-first-page:before{content:"\e5dc"}.icon-last-page:before{content:"\e5dd"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-arrow-up:before{content:"\e923"}.icon-arrow-down:before{content:"\e924"}.icon-arrow-left:before{content:"\e952"}.icon-arrow-right:before{content:"\e93e"}.icon-chevron-left:before{content:"\e934"}.icon-chevron-right:before{content:"\e935"}.icon-chevron-double-up:before{content:"\e959"}.icon-chevron-double-down:before{content:"\e95a"}.icon-folder-account:before{content:"\e942"}.icon-folder-move:before{content:"\e960"}.icon-folder-plus:before{content:"\e961"}.icon-folder-upload:before{content:"\e962"}.icon-folder-star:before{content:"\e963"}.icon-folder-edit:before{content:"\e964"}.icon-folder-download:before{content:"\e965"}.icon-folder-outline:before{content:"\e966"}.icon-folder:before{content:"\e944"}.icon-folder-o:before{content:"\e945"}.icon-folder-open-o:before{content:"\e946"}.icon-folder-open:before{content:"\e947"}.icon-color:before{content:"\e93c"}.icon-paper-clip:before{content:"\e93d"}.icon-text:before{content:"\e929"}.icon-share:before{content:"\f064"}.icon-format-list-bulleted:before{content:"\e9a8"}.icon-format-bold:before{content:"\e953"}.icon-format-header-pound:before{content:"\e954"}.icon-format-italic:before{content:"\e955"}.icon-format-list-numbers:before{content:"\e969"}.icon-format-quote-close:before{content:"\e96a"}.icon-image:before{content:"\e96c"}.icon-table-large:before{content:"\e96d"}.icon-productplan:before{content:"\e9fc"}.icon-aiux:before{content:"\e99e"}.icon-qc:before{content:"\e986"}.icon-qc-q:before{content:"\e985"}.icon-qc-c:before{content:"\e987"}.icon-sonarqube:before{content:"\e9ba"}.icon-market:before{content:"\ea01"}.icon-ztool:before{content:"\e9c1"}.icon-contacts:before{content:"\e9c3"}.icon-chats:before{content:"\e9c4"}.icon-ops:before{content:"\e903"}.icon-menu-backend:before{content:"\e993"}.icon-feedback:before{content:"\e991"}.icon-oa:before{content:"\e9a1"}.icon-more-circle:before{content:"\e988"}.icon-controls:before{content:"\e995"}.icon-account:before{content:"\e992"}.icon-about:before,.icon-info:before{content:"\e996"}.icon-exclamation:before{content:"\e9fa"}.icon-exit:before{content:"\e99a"}.icon-theme:before{content:"\e9a0"}.icon-globe:before,.icon-lang:before{content:"\f0ac"}.icon-template:before{content:"\e9fb"}.icon-seal:before{content:"\e9f8"}.icon-menu-arrow-left:before{content:"\e9f0"}.icon-menu-arrow-right:before{content:"\e9f1"}.icon-add-directory:before{content:"\e9ef"}.icon-design:before{content:"\e9ec"}.icon-download-alt:before{content:"\e9ea"}.icon-blame:before{content:"\e9e0"}.icon-draft-edit:before{content:"\e9dc"}.icon-sub-review-user:before{content:"\e9db"}.icon-sub-review:before{content:"\e9df"}.icon-ztf:before{content:"\e9dd"}.icon-save:before{content:"\e9d8"}.icon-list-box:before{content:"\e9b4"}.icon-usecase:before{content:"\e99d"}.icon-code:before{content:"\e990"}.icon-summary:before{content:"\e9ad"}.icon-more-alt:before{content:"\e9a7"}.icon-customer:before{content:"\e9d9"}.icon-or:before{content:"\ea0b"}.icon-manager:before{content:"\ea0c"}.icon-target:before{content:"\ea0a"}.icon-ipd:before{content:"\e9f9"}.icon-wiki-lib:before{content:"\e9f5"}.icon-annex-lib:before{content:"\e9f6"}.icon-interface-lib:before{content:"\e9f7"}.icon-has-authority-pack:before{content:"\e9f3"}.icon-without-authority-pack:before{content:"\e9f4"}.icon-data-structure:before{content:"\e9f2"}.icon-waterfallplus:before{content:"\e9ed"}.icon-agileplus:before{content:"\e9ee"}.icon-horn:before{content:"\e9eb"}.icon-resume:before{content:"\e9e9"}.icon-mirror:before{content:"\e9e6"}.icon-remote:before{content:"\e9e7"}.icon-moon:before{content:"\e9e8"}.icon-ticket:before{content:"\e9e1"}.icon-gantt-alt:before{content:"\e9e2"}.icon-tree:before{content:"\e9c9"}.icon-list:before{content:"\e9cb"}.icon-gantt:before{content:"\e9cc"}.icon-group-view:before{content:"\e9cd"}.icon-inherit-space:before{content:"\e9c2"}.icon-card-archive:before{content:"\e9b8"}.icon-col-archive:before{content:"\e9b9"}.icon-col-add-right:before{content:"\e9bb"}.icon-col-add-left:before{content:"\e9bc"}.icon-col-split:before{content:"\e9bd"}.icon-waterfall:before{content:"\e9a4"}.icon-manual:before{content:"\e98d"}.icon-lane:before{content:"\e9b1"}.icon-unpinned:before{content:"\ea08"}.icon-pinned:before{content:"\ea09"}.icon-support-ticket:before{content:"\ea04"}.icon-snap-house:before{content:"\e9e3"}.icon-wrench:before{content:"\e9e4"}.icon-desktop:before{content:"\e9e5"}.icon-back-circle:before{content:"\e9da"}.icon-back:before{content:"\e9d3"}.icon-shield:before{content:"\e9ca"}.icon-meh:before{content:"\e9ce"}.icon-frown:before{content:"\e9cf"}.icon-smile:before{content:"\e9d0"}.icon-unlock-solid:before{content:"\e9d1"}.icon-lock-solid:before{content:"\e9d2"}.icon-ver:before{content:"\e9c6"}.icon-publish:before,.icon-send:before{content:"\e9c7"}.icon-tag:before{content:"\e9be"}.icon-tag-lock:before{content:"\e9bf"}.icon-code-fork:before{content:"\f126"}.icon-branch-lock:before{content:"\e9c0"}.icon-groups:before{content:"\e9af"}.icon-thumbs-up:before{content:"\f087"}.icon-thumbs-down:before{content:"\f088"}.icon-thumbs-up-solid:before{content:"\e9d6"}.icon-thumbs-down-solid:before{content:"\e9d7"}.icon-hash:before,.icon-version:before{content:"\e9ab"}.icon-p-square:before{content:"\e97b"}.icon-video-play:before{content:"\e97f"}.icon-plus-solid-circle:before{content:"\e974"}.icon-minuse-solid-circle:before{content:"\e9b6"}.icon-s:before{content:"\e975"}.icon-c:before{content:"\e976"}.icon-t:before{content:"\e977"}.icon-guide:before{content:"\e978"}.icon-todo:before{content:"\e979"}.icon-plus:before{content:"\e925"}.icon-side-left:before{content:"\e9b3"}.icon-side-right:before{content:"\e9b2"}.icon-fullscreen-exit:before{content:"\e972"}.icon-alert:before{content:"\e99f"}.icon-undo:before{content:"\e93f"}.icon-redo:before{content:"\e9d4"}.icon-swap:before{content:"\e9b0"}.icon-chat-solid:before{content:"\e9b5"}.icon-clock:before{content:"\e97c"}.icon-cost:before{content:"\e97d"}.icon-pencil-alt:before{content:"\e984"}.icon-size-height:before{content:"\e9c5"}.icon-upload-file:before{content:"\ea03"}.icon-file-log:before{content:"\e9de"}.icon-rich-text:before{content:"\e913"}.icon-markdown:before{content:"\e916"}.icon-excel:before{content:"\e933"}.icon-text-link:before{content:"\e94d"}.icon-ppt:before{content:"\e957"}.icon-word:before{content:"\e958"}.icon-doc-lib:before{content:"\e96f"}.icon-file-empty:before,.icon-file:before{content:"\f016"}.icon-file-text:before{content:"\f0f6"}.icon-file-alt:before{content:"\f15b"}.icon-file-text-alt:before{content:"\f15c"}.icon-file-pdf:before{content:"\f1c1"}.icon-file-word:before{content:"\f1c2"}.icon-file-excel:before{content:"\f1c3"}.icon-file-powerpoint:before{content:"\f1c4"}.icon-file-image:before{content:"\f1c5"}.icon-file-archive:before{content:"\f1c6"}.icon-file-audio:before{content:"\f1c7"}.icon-file-video:before{content:"\f1c8"}.icon-file-code:before{content:"\f1c9"}.icon-menu-collapse:before{content:"\e980"}.icon-menu-expand:before{content:"\e981"}.icon-estimate:before{content:"\e9ac"}.icon-sprint:before{content:"\e9a2"}.icon-shield-check:before{content:"\e9a5"}.icon-ok:before{content:"\e9a6"}.icon-printer:before{content:"\e906"}.icon-bullhorn:before{content:"\e910"}.icon-person:before{content:"\e941"}.icon-fields:before{content:"\e989"}.icon-trigger:before{content:"\e98a"}.icon-layout:before{content:"\e98b"}.icon-audit:before{content:"\e98c"}.icon-ban-circle:before,.icon-cancel:before{content:"\e951"}.icon-eye:before{content:"\e94e"}.icon-eye-off:before{content:"\e96e"}.icon-unlock:before{content:"\e94f"}.icon-lock:before,.icon-private:before{content:"\e950"}.icon-move:before{content:"\e94c"}.icon-hand-right:before{content:"\e907"}.icon-checked:before{content:"\e908"}.icon-off:before{content:"\e909"}.icon-play:before,.icon-start:before{content:"\e90a"}.icon-time:before{content:"\e90b"}.icon-edit:before{content:"\e90c"}.icon-trash:before{content:"\e90d"}.icon-link:before{content:"\e90e"}.icon-unlink:before{content:"\e90f"}.icon-bug:before{content:"\e911"}.icon-list-alt:before{content:"\e912"}.icon-alter:before,.icon-change:before{content:"\e970"}.icon-glasses:before,.icon-review:before{content:"\e914"}.icon-sitemap:before,.icon-testcase:before{content:"\e915"}.icon-pluses:before{content:"\e917"}.icon-report-list:before{content:"\e918"}.icon-active:before,.icon-magic:before{content:"\e919"}.icon-treemap:before{content:"\e91a"}.icon-confirm:before{content:"\e91b"}.icon-split:before{content:"\e98e"}.icon-calendar:before,.icon-delay:before{content:"\e91d"}.icon-pause:before{content:"\e91e"}.icon-ban:before{content:"\e91f"}.icon-plus-bold:before{content:"\e920"}.icon-copy:before{content:"\e921"}.icon-refresh:before{content:"\e922"}.icon-diff:before{content:"\e9b7"}.status-active,.status-asked,.status-normal,.status-unconfirmed,.status-wait{color:#313c52}.status-active.status-issue,.status-checking,.status-commenting,.status-confirmed,.status-doing{color:#ff6f42}.status-blocked,.status-hangup,.status-pause,.status-suspended{color:#b89664}.status-clarify,.status-draft{color:#8166ee}.status-noreview,.status-reviewing,.status-wait.status-testcase{color:#18a6fd}.status-active.status-risk,.status-changed,.status-changing,.status-fail{color:#fb2b2b}.status-checked,.status-done,.status-pass,.status-replied,.status-resolved,.status-success{color:#0dbb7d}.status-cancel,.status-canceled,.status-investigate{color:#838a9d}.status-canceled,.status-closed,.status-testtask.status-done{color:#9ea3b0}.pri,[class*=" pri-"],[class^=pri-]{--tw-text-opacity:1;border-color:currentColor;border-radius:var(--radius-full);border-width:1px;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity));display:inline-block;font-size:.75rem;height:1rem;line-height:1rem;line-height:14px;max-width:54px;min-width:16px;overflow:hidden;padding-left:.125rem;padding-right:.125rem;text-align:center;white-space:nowrap}.pri-1{color:rgb(255 73 18/var(--tw-text-opacity))}.pri-1,.pri-2{--tw-text-opacity:1}.pri-2{color:rgba(var(--color-warning-600-rgb),var(--tw-text-opacity))}.pri-3{color:rgb(59 130 246/var(--tw-text-opacity))}.pri-3,.pri-4{--tw-text-opacity:1}.pri-4{color:rgb(149 211 224/var(--tw-text-opacity))}.severity{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity));display:inline-block;font-size:.75rem;height:1rem;line-height:1rem;line-height:14px;max-width:54px;min-width:16px;overflow:hidden;padding-left:.125rem;padding-right:.125rem;position:relative;text-align:center;white-space:nowrap}.severity:before{--tw-content:attr(data-severity);background-color:currentColor;background-repeat:no-repeat;content:var(--tw-content);height:100%;left:0;-webkit-mask:url('data:image/svg+xml;charset=utf-8,');mask:url('data:image/svg+xml;charset=utf-8,');-webkit-mask-size:100% 100%;mask-size:100% 100%;position:absolute;top:0;width:100%;z-index:0}.severity:after,.severity:before{display:inline-block}.severity:after{--tw-scale-x:.75;--tw-scale-y:.75;content:attr(data-severity);line-height:20px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.severity[data-severity="1"]{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.severity[data-severity="2"]{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity))}.severity[data-severity="3"]{--tw-text-opacity:1;color:rgb(250 174 26/var(--tw-text-opacity))}.severity[data-severity="4"]{--tw-text-opacity:1;color:rgb(184 150 100/var(--tw-text-opacity))}.severity[data-severity="5"]{--tw-text-opacity:1;color:rgb(158 163 176/var(--tw-text-opacity))}.severity-label{background-color:transparent}.severity-label:after,.severity-label:before{--tw-content:none;content:var(--tw-content)}.risk-high{color:rgb(220 38 38/var(--tw-text-opacity))}.risk-high,.risk-middle{--tw-text-opacity:1}.risk-middle{color:rgb(234 179 8/var(--tw-text-opacity))}.nav-feature{--nav-active-bg:rgba(var(--color-primary-800-rgb),.07)}.nav-feature .nav-checkbox>.checkbox,.nav-feature .nav-checkbox>.checkbox-primary,.nav-feature .nav-item>a{align-items:center;border-radius:var(--radius);height:2rem;padding-left:.625rem;padding-right:.625rem}.nav-feature .nav-item>a>.icon{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.sortable-list .listitem{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));cursor:move;padding-left:.5rem;padding-right:.5rem}.sortable-list .sortable-ghost>.listitem{--tw-bg-opacity:1;background-color:rgba(var(--color-warning-50-rgb),var(--tw-bg-opacity))}:root{--avatar-radius:12.5%;--avatar-bg:var(--color-surface)}.avatar{align-items:center;aspect-ratio:1/1;background:var(--avatar-bg);border-radius:var(--avatar-radius);display:inline-flex;justify-content:center;overflow:hidden;width:2rem}.avatar>img{height:100%;margin:0;-o-object-fit:cover;object-fit:cover;width:100%}.avatar.size-xs{width:1.25rem}.avatar.size-sm,.avatar.size-xs{font-size:.75rem;line-height:1rem}.avatar.size-sm{width:1.5rem}.avatar.size-lg{font-size:1.5rem;line-height:2rem;width:3rem}.avatar.size-xl{font-size:2.25rem;line-height:2.5rem;width:5rem}.avatar-group{display:flex;gap:.625rem}.avatar-group>.avatar{box-shadow:0 0 0 1px var(--color-canvas)}.avatar-group>*+*{margin-left:-1rem}.avatar-group.size-xs>*+*{margin-left:-.75rem}.avatar-group.size-sm>*+*{margin-left:-.875rem}.avatar-group.size-lg>*+*{margin-left:-1.25rem}.avatar-group.size-xl>*+*{margin-left:-1.5rem}.btn-group{display:flex;gap:1px}.btn-group>.btn.active{z-index:1}.btn-group>.btn:focus-within,.btn-group>.btn:hover{z-index:2}.btn-group>.btn.disabled,.btn-group>.btn:disabled{z-index:-1}.btn-group>.btn:not(:first-child){border-bottom-left-radius:var(--radius-none);border-left-color:rgba(var(--color-canvas-rgb),.2);border-left-width:1px;border-top-left-radius:var(--radius-none)}.btn-group>.btn:not(:first-child):before{left:-1px}.btn-group>.btn:not(:last-child){border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none)}.color-picker-heading{align-items:center;font-weight:700;justify-content:space-between;margin-bottom:-.25rem;padding:.5rem}.color-picker-heading,.color-picker-row{display:flex;flex-direction:row}.color-picker-row{flex-wrap:wrap;gap:.5rem;padding:.75rem}.color-picker-item{--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);align-items:center;border-radius:var(--radius-full);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));display:flex;height:1.25rem;justify-content:center;padding-left:.125rem;padding-right:.125rem;width:1.25rem}.pick-container{left:0;pointer-events:none;position:absolute;top:0;z-index:1600}.pick-pop{display:flex;flex-direction:column;opacity:0;pointer-events:auto;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);z-index:1200}.pick-pop.in{opacity:1}.date-picker-menu{--menu-bg:none}.date-picker-menu .mini-calendar{margin-top:-.75rem}.date-pick-menu-month,.date-pick-menu-years{display:flex;flex-direction:row;flex-wrap:wrap;gap:1px;max-height:237px;padding-bottom:.5rem;padding-left:.5rem;padding-right:.5rem}.date-pick-menu-years>.btn{width:2.5rem}.date-pick-menu-years>.btn.is-current{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.date-pick-menu-month>.btn.active,.date-pick-menu-years>.btn.active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.date-pick-menu-month>.btn{width:3rem}.date-picker-menu-footer{border-top-width:1px;display:flex;flex-direction:row;padding:.25rem}.date-picker-menu-footer>.toolbar{flex:1 1 auto;justify-content:center}.date-picker-menu>.menu{border-right-width:1px}.date-picker-menu .menu-item{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.time-picker-menu{max-height:inherit}.time-picker-menu .menu-item>a{justify-content:center}.datetime-picker-menu{max-height:inherit}.mini-calendar{padding:.5rem}.mini-calendar>.row>.col{align-items:center;justify-content:center;width:14.2857%}.mini-calendar-day{height:2rem}.mini-calendar-day.disabled{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-200-rgb),var(--tw-bg-opacity));opacity:.5;pointer-events:none}.mini-calendar-day>.btn{width:2rem}.mini-calendar-day.is-weekend>.btn{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.mini-calendar-day.active>.btn,.mini-calendar-day.is-today>.btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.mini-calendar-day.selected>.btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.mini-calendar-day.is-out-month{opacity:.5}.i-time{border-color:currentColor;border-radius:50%;border-width:.08em;display:inline-block;height:1em;position:relative;width:1em}.i-time:after{--tw-content:"";border-color:currentColor;border-width:0 0 .08em .08em;content:var(--tw-content);height:.385em;left:.3846em;position:absolute;top:.08em;width:.385em}.chevron-down,.chevron-left,.chevron-right,.chevron-up{align-items:center;display:inline-flex;height:1em;justify-content:center;position:relative;width:1em}.chevron-down:before,.chevron-left:before,.chevron-right:before,.chevron-up:before{--tw-translate-y:-0.125rem;--tw-rotate:45deg;--tw-content:"";border-color:currentColor;border-width:0 1px 1px 0;content:var(--tw-content);display:block;height:.6923077em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform-origin:center;width:.6923077em}.chevron-left:before{--tw-translate-y:0px;--tw-translate-x:0.125rem;--tw-rotate:135deg}.chevron-left:before,.chevron-right:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-right:before{--tw-translate-y:0px;--tw-translate-x:-0.125rem;--tw-rotate:-45deg}.chevron-up:before{--tw-translate-y:0.125rem;--tw-rotate:225deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.i-calendar{border-radius:2px;display:inline-block;height:.79em;margin-top:.16em;position:relative;width:1em}.i-calendar,.i-calendar:after,.i-calendar:before{border-color:currentColor;border-width:.08em}.i-calendar:after,.i-calendar:before{--tw-content:"";content:var(--tw-content);position:absolute}.i-calendar:before{border-bottom-width:0;left:.15em;top:.307em;width:.6em}.i-calendar:after{border-bottom-width:0;border-top-width:0;height:.3077em;left:.17em;top:-.154em;width:.538em}:root{--modal-radius:var(--radius-lg);--modal-bg:rgba(var(--color-inverse-rgb),.4);--modal-sm:37.5rem;--modal-base:50rem;--modal-lg:75rem;--modal-xl:90rem}.modal{align-items:center;background-color:var(--modal-bg);display:none;inset:0;justify-content:center;overflow:hidden;position:fixed;z-index:1500}.modal.load-indicator:before{background-color:transparent;transition-property:none}.modal.loading:after{--tw-text-opacity:1;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.modal.loading .modal-dialog{opacity:0!important}.modal.show{display:flex}.modal-no-backdrop{background-color:transparent;pointer-events:none}.modal-hide{opacity:0!important}.modal-dialog{--tw-bg-opacity:0.9;--tw-shadow:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--tw-shadow-colored:0 10px 50px -10px var(--tw-shadow-color),0 8px 20px -10px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--modal-radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);pointer-events:auto;position:relative;width:var(--modal-base)}.modal-content,.modal-dialog{max-height:100vh}.modal-content{display:flex;flex-direction:column;height:100%}.loading>.modal-dialog>.modal-content{opacity:0;visibility:hidden}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.modal-header{align-items:center;display:flex;flex:none;flex-wrap:nowrap;gap:1rem;padding:1rem 1.25rem;position:relative}.modal-title{flex:1 1 auto;font-size:1rem;font-weight:700;line-height:1.5rem}.modal-actions{position:absolute;right:.75rem;top:.75rem;z-index:10}.modal-body{flex:1 1 auto;overflow:auto;padding:1rem 1.25rem}.modal-footer{align-items:center;display:flex;flex:none;gap:.75rem;padding:1.25rem}.modal-dialog.size-full,.modal-dialog[data-size=full]{height:100vh;width:100vw}.modal-dialog.size-sm,.modal-dialog[data-size=sm]{width:var(--modal-sm)}.modal-dialog.size-lg,.modal-dialog[data-size=lg]{width:var(--modal-lg)}.modal-dialog.size-xl,.modal-dialog[data-size=xl]{width:var(--modal-xl)}.modal-iframe{flex:1 1 auto;width:100%}.modal-trans{opacity:0;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.modal-trans.in{opacity:1}.modal-trans>.modal-dialog{--tw-scale-x:.95;--tw-scale-y:.95;opacity:0;transition-duration:.3s;transition-property:transform,opacity}.modal-trans.in>.modal-dialog,.modal-trans>.modal-dialog{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.modal-trans.in>.modal-dialog{--tw-scale-x:1;--tw-scale-y:1;opacity:1}.modal-alert .modal-footer{justify-content:flex-end}.modal-alert .modal-header{margin-bottom:-1rem}.modal-alert .modal-body{white-space:pre-line}.modal-alert .modal-actions+.modal-body{padding-right:3rem}.modal-alert .modal-header+.modal-actions+.modal-body{padding-right:1.25rem}.file-selector{gap:.5rem;width:100%}.file-selector,.file-selector-box{display:flex;flex-direction:column}.file-selector-box{--tw-border-opacity:1;--tw-ring-color:transparent;--state-color:rgba(var(--color-primary-500-rgb),.05);background-color:rgba(var(--color-primary-50-rgb),.3);border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-style:dashed;border-width:1px;gap:0;height:auto;justify-content:center;padding:.5rem .75rem;position:relative}.file-selector-box .text{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.is-dragging .file-selector-box{border-style:solid}.file-selector-btn{align-items:center;display:flex;gap:.5rem;position:relative}.is-dragging .file-selector-btn{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.file-selector-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;inset:0;opacity:.1;position:absolute}.file-selector-tip{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.file-selector.is-mode-button{flex-direction:column-reverse}.file-selector-list.is-empty{display:none}.file-selector-item .item-avatar{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.file-selector-item .item-subtitle{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.file-selector-item .item-content{flex:none;margin-right:.25rem;max-width:100%}.file-selector-item>.listitem:hover{background-color:rgba(var(--color-gray-500-rgb),.05)}.file-selector-item.is-renaming .item-avatar+.item-content{max-width:calc(100% - 32px)}.file-selector-rename-text{max-width:100%;min-width:100px;position:relative}.file-selector-rename-text>div{overflow:hidden;pointer-events:none;visibility:hidden;white-space:nowrap}.file-selector-rename-input{inset:0;position:absolute}.file-selector-grid{--tw-bg-opacity:1;align-items:flex-start;background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity));border-color:transparent;border-radius:var(--radius);border-width:1px;display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--file-selector-grid-gap);padding:.5rem}.file-selector-grid-item{height:var(--file-selector-grid-height)}.file-selector-grid-btn,.file-selector-grid-item{width:var(--file-selector-grid-width)}.file-selector-grid-btn{--tw-border-opacity:1;--tw-ring-color:transparent;--state-color:rgba(var(--color-primary-500-rgb),.05);aspect-ratio:1/1;background-color:rgba(var(--color-primary-50-rgb),.3);border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-style:dashed;border-width:1px;display:flex;flex-direction:column;gap:0;height:auto;justify-content:center;padding:.5rem}.file-selector-grid-btn .text{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.file-selector-grid-item .listitem{flex-direction:column;height:100%;padding:0;position:relative;width:100%}.file-selector-grid-item .item-avatar{--tw-text-opacity:1;border-radius:var(--radius);border-width:1px;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));width:100%}.file-selector-grid-item .item-avatar.has-icon>.icon{font-size:calc(var(--file-selector-grid-width)/2)}.file-selector-grid-item .item-content,.file-selector-grid-item .toolbar{aspect-ratio:1/1;left:0;position:absolute;right:0;top:0;width:100%}.file-selector-grid-item .item-title{bottom:-1.25rem;font-size:.75rem;left:0;line-height:1rem;overflow:hidden;position:absolute;right:1.5rem;white-space:nowrap}.file-selector-grid-item .item-subtitle{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);bottom:.25rem;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));font-size:.75rem;left:.25rem;line-height:1rem;opacity:0;padding-left:.25rem;padding-right:.25rem;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.file-selector-grid-item:hover .item-subtitle{opacity:1}.file-selector-grid-item .toolbar .btn[data-remove-file]{--tw-text-opacity:1;background-color:rgba(var(--color-inverse-rgb),.5);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));padding:.375rem;position:absolute;right:1px;top:1px}.file-selector-grid-item .toolbar .btn[data-rename-file]{bottom:-1.5rem;padding:0;position:absolute;right:0}.file-selector-grid .file-selector-rename{bottom:0;height:1.5rem;position:absolute;top:auto}.file-selector-grid .file-selector-rename-text{width:100%}.is-dragging .file-selector-grid{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-width:1px}:root{--nav-radius:var(--radius);--nav-active-color:var(--color-primary-500);--nav-active-bg:var(--color-inherit);--nav-heading-color:var(--color-gray-500)}.nav{list-style-type:none;padding-left:0}.nav,.nav-item{align-items:center;display:flex;position:relative}.nav-item{gap:.75rem}.nav-item>a{align-items:center;color:inherit;cursor:pointer;display:flex;gap:.25rem;height:2rem;justify-content:center;padding-left:1rem;padding-right:1rem}.nav-item>.active{background:var(--nav-active-bg);color:var(--nav-active-color);font-weight:700}.nav-item>.disabled{opacity:1}.nav-item>.disabled>*{opacity:var(--disabled-opacity)}.nav-divider,.nav>.divider{margin:.5rem}.nav-heading{align-items:center;color:var(--nav-heading-color);display:flex;font-weight:700;gap:.25rem;height:2rem;justify-content:center;padding-left:1rem;padding-right:1rem}.nav-space{flex:1 1 auto;width:1rem}.nav-primary>.nav-item{position:relative}.nav-primary>.nav-item:hover{z-index:10}.nav-primary>.nav-item+.nav-item{margin-left:-1px}.nav-primary>.nav-item>a{border-radius:var(--radius-none);border-width:1px}.nav-primary>.nav-item:first-child>a,.nav-primary>.nav-item:has(.nav-heading)+.nav-item>a{border-bottom-left-radius:var(--nav-radius);border-top-left-radius:var(--nav-radius)}.nav-primary>.nav-item:last-child>a{border-bottom-right-radius:var(--nav-radius);border-top-right-radius:var(--nav-radius)}.nav-primary>.nav-item>.active{--tw-text-opacity:1;background:var(--nav-active-color);border-color:var(--nav-active-color);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.nav-primary>.nav-divider{display:none}.nav-secondary>.nav-item>a{border-radius:var(--radius-none);position:relative}.nav-secondary>.nav-item>a:after{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:-2px;content:var(--tw-content);display:block;height:2px;left:0;position:absolute;right:0}.nav-secondary>.nav-item>.active:after{background-color:currentColor}.nav-secondary>.nav-divider{margin:0 0 0 -1px}.nav-tabs>.nav-item>a{border-bottom-left-radius:var(--radius-none);border-bottom-right-radius:var(--radius-none);position:relative}.nav-tabs>.nav-item>a:after{--tw-border-opacity:1;--tw-content:"";border-color:transparent;border-bottom-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-top-left-radius:inherit;border-top-right-radius:inherit;border-width:1px;content:var(--tw-content);display:block;inset:-1px;pointer-events:none;position:absolute}.nav-tabs>.nav-item>.active:after{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-bottom-color:transparent}.nav-tabs>.nav-divider{margin:0 0 0 -1px}.nav-pills>.nav-item>a{border-radius:var(--radius-full)}.nav-pills>.nav-item>.active{--tw-text-opacity:1;background:var(--nav-active-color);border-color:var(--nav-active-color);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.nav-stacked{flex-direction:column}.nav-stacked>.nav-item{width:100%}.nav-stacked>.nav-heading,.nav-stacked>.nav-item>a{justify-content:flex-start;width:100%}.nav-stacked>.nav-divider{height:1px;margin:.5rem 0;width:100%}.nav-primary.nav-stacked>.nav-item>a{height:2.5rem}.nav-primary.nav-stacked>.nav-item+.nav-item{margin-left:0;margin-top:-1px}.nav-primary.nav-stacked>.nav-item:first-child>a{border-bottom-left-radius:0;border-top-left-radius:var(--nav-radius);border-top-right-radius:var(--nav-radius)}.nav-primary.nav-stacked>.nav-item:last-child>a{border-bottom-left-radius:var(--nav-radius);border-bottom-right-radius:var(--nav-radius);border-top-right-radius:0}.nav-secondary.nav-stacked>.nav-item>a:after{--tw-bg-opacity:1;background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:0;height:100%;left:auto;right:0;top:0;width:2px}.nav-secondary.nav-stacked>.nav-item>.active:after{background-color:currentColor}.nav-secondary.nav-stacked>.nav-divider{margin:0}.nav-tabs.nav-stacked>.nav-item>a{border-bottom-left-radius:var(--nav-radius);border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none);position:relative}.nav-tabs.nav-stacked>.nav-item>a:after{--tw-border-opacity:1;border-bottom-color:transparent;border-bottom-left-radius:inherit;border-right-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-top-left-radius:inherit}.nav-tabs.nav-stacked>.nav-item>a.active:after{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-right-color:transparent}.nav-tabs.nav-stacked>.nav-divider{margin:0}.nav-pills.nav-stacked>.nav-item+.nav-item{margin-top:.25rem}.nav-justified>.nav-item:not(.flex-none,.nav-divider){flex:1 1 auto}.nav-justified>.nav-item>a{width:100%}.arrow,.arrow:before{background:inherit;height:calc(var(--arrow-size)*1.4142);position:absolute;width:calc(var(--arrow-size)*1.4142)}.arrow{--arrow-size:5px;visibility:hidden}.arrow:before{--tw-rotate:45deg;border:inherit;content:"";transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));visibility:visible}.arrow-top,.arrow-up{border-bottom:inherit;border-right:inherit;border-width:1px 0 0 1px;top:calc(1px - var(--arrow-size))}.white>.arrow-top,.white>.arrow-up{top:calc(0px - var(--arrow-size))}.arrow-bottom,.arrow-down{border-left:inherit;border-top:inherit;border-width:0 1px 1px 0;bottom:calc(1px - var(--arrow-size))}.white>.arrow-bottom,.white>.arrow-down{bottom:calc(0px - var(--arrow-size))}.arrow-left{border-right:inherit;border-top:inherit;border-width:0 0 1px 1px;left:calc(1px - var(--arrow-size))}.white>.arrow-left{left:calc(0px - var(--arrow-size))}.arrow-right{border-bottom:inherit;border-left:inherit;border-width:1px 1px 0 0;right:calc(1px - var(--arrow-size))}.white>.arrow-right{right:calc(0px - var(--arrow-size))}.popover{display:none;position:absolute;width:-moz-max-content;width:max-content}.popover.show{display:block}.popover-heading{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-top-left-radius:inherit;border-top-right-radius:inherit;display:flex;gap:1rem;height:2.5rem;justify-content:space-between;padding-left:.75rem;padding-right:.5rem}.popover-title{flex:1 1 auto;font-weight:700}.popover-content{padding:.75rem}.popover-arrow.arrow-top,.popover-arrow.arrow-up{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.popover>.btn-close{position:absolute;right:.5rem;top:.625rem}.btn-close+.popover-content{padding-right:3rem}.btn.with-popover-show{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.with-popover-show[data-pop-placement=top]>.caret{--tw-rotate:180deg}.with-popover-show[data-pop-placement=left]>.caret,.with-popover-show[data-pop-placement=top]>.caret{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.with-popover-show[data-pop-placement=left]>.caret{--tw-rotate:90deg}.with-popover-show[data-pop-placement=right]>.caret{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pager{align-items:center;display:flex;gap:.25rem;white-space:nowrap}.menu.pager-size-menu{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center}.menu.pager-size-menu>.menu-item>a{margin:.125rem}.pager .pager-goto-group>.form-control{width:3rem}.pager .pager-goto-group>.input-group-addon{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-300-rgb),var(--tw-border-opacity));border-width:1px}.pager>.pager-nav.active{--tw-text-opacity:1;box-shadow:0 0 0 1px var(--color-primary-500);color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.panel{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);overflow:hidden}.panel-heading{background-color:var(--panel-heading-bg);flex-wrap:nowrap;gap:1rem;justify-content:space-between;padding:.5rem 1rem}.panel-heading,.panel-title{align-items:center;display:flex}.panel-title{font-weight:700;gap:.5rem;margin:0}.panel-actions{align-items:center;display:flex;margin-right:-.5rem}.panel-body{padding:.75rem 1rem}.panel-footer{align-items:center;background-color:var(--panel-footer-bg);display:flex;gap:.5rem;padding:.5rem 1rem}.size-sm .panel-body,.size-sm .panel-footer,.size-sm .panel-heading{padding:.375rem .75rem}.size-lg .panel-body,.size-lg .panel-footer,.size-lg .panel-heading{padding:1rem 1.25rem}.picker{position:relative}.picker-select{align-items:center;gap:.25rem;justify-content:space-between}.picker-select,.picker-select.form-control{display:flex}.picker-select-placeholder{--tw-text-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-text-opacity));flex:1 1 auto}.picker-select-multi .picker-select-placeholder{padding-left:.25rem;padding-right:.25rem}.picker-single-selection{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap}.picker-deselect-btn{border-radius:var(--radius-full);padding:.25rem}.picker-deselect-btn:not(:hover){opacity:.7}.picker-select-multi.form-control{height:auto;min-height:32px;padding-left:.25rem}.picker-multi-selections{display:flex;flex-wrap:wrap;gap:.25rem;min-width:0}.picker-multi-selection{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);border-width:1px;display:flex;max-width:100%;padding-left:.5rem}.readonly .picker-multi-selection{padding-right:.5rem}.picker-multi-selection>.text{max-width:180px;overflow:clip;white-space:nowrap}.picker-menu-list{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border-style:none;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);flex:1 1 auto;min-height:0;overflow-y:auto}.picker-menu-search+.picker-menu-list.menu{margin-top:-.125rem;padding-top:0}.picker-menu-list.tree{padding:.5rem}.picker-menu .search-menu-footer{border-top-width:1px;padding-bottom:.25rem;padding-top:.25rem}.picker-search-input{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)!important;border-color:transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important;height:1.75rem;outline-width:0!important;padding-left:0;padding-right:2rem}.picker-search{flex:none;position:relative;width:100%}.picker-search>.magnifier{opacity:.5;position:absolute;right:0;top:.5rem}.picker-search-clear.btn{cursor:pointer;height:1.25rem;position:absolute;right:0;top:.25rem;width:1.25rem}.picker-search.is-inline{min-width:64px;width:4rem}.is-inline>.picker-search-input{height:1.25rem;min-width:64px;padding-left:.25rem;padding-right:.25rem}.picker-search-measure{height:0;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap}.split{display:flex;flex-direction:row}.split-vert{flex-direction:column}.split-cell{min-height:0;min-width:0}.has-animation>.split-cell{transition-duration:.15s;transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter{align-items:stretch;border-radius:var(--radius);cursor:col-resize;display:flex;flex:none;flex-direction:row;justify-content:center;position:relative}.gutter-vert{cursor:row-resize;flex-direction:column}.gutter:before{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));content:var(--tw-content);display:block;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter-horz:before{width:1px}.gutter-vert:before{height:1px}.gutter-horz:hover:before{width:75%}.gutter-vert:hover:before{height:75%}.gutter-resize-handler,.gutter-toggle{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-radius:var(--radius-lg);border-width:1px;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity));display:flex;height:1.75rem;justify-content:center;margin-top:-.875rem;position:absolute;top:50%;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.75rem}.gutter-toggle>span{--tw-scale-x:.75;--tw-scale-y:.75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter:hover .gutter-toggle{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-500-rgb),var(--tw-border-opacity));color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.gutter .gutter-toggle:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.is-last>.gutter-toggle{--tw-scale-x:-1}.is-first>.gutter-toggle,.is-last>.gutter-toggle{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.is-first>.gutter-toggle{--tw-scale-x:1}.gutter-vert .gutter-toggle{--tw-rotate:90deg;left:50%;margin-left:-.375rem;margin-top:0;top:auto}.gutter-vert .gutter-toggle,.gutter.is-next-collapsed>.gutter-toggle{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.gutter.is-next-collapsed>.gutter-toggle{--tw-scale-x:1}.gutter.is-prev-collapsed>.gutter-toggle{--tw-scale-x:-1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.gutter-horz.is-first.is-prev-collapsed{transform:translateX(calc(-1px - var(--split-gutter-size)/2))}.gutter-horz.is-last.is-next-collapsed{transform:translateX(calc(1px + var(--split-gutter-size)/2))}.gutter-vert.is-first.is-prev-collapsed{transform:translateY(calc(-1px - var(--split-gutter-size)/2))}.gutter-vert.is-last.is-next-collapsed{transform:translateY(calc(1px + var(--split-gutter-size)/2))}.gutter-resize-handler{background-color:transparent;border-width:0}.gutter-resize-handler:before{--tw-content:"";border-left-width:1px;border-right-width:1px;bottom:0;content:var(--tw-content);left:.25rem;position:absolute;right:.25rem;top:0}.sidebar{--gutter-width:1px;flex:none!important;position:relative}.has-sidebar-animation .sidebar{transition-duration:.15s;transition-property:width,margin;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sidebar-left.is-collapsed{margin-left:calc(var(--gutter-width)*-1)}.sidebar-right.is-collapsed{margin-right:calc(var(--gutter-width)*-1)}.sidebar.is-collapsed>*{display:none}.sidebar.is-collapsed>.sidebar-gutter{display:flex}.sidebar-gutter{bottom:0;left:100%;position:absolute;top:0;width:var(--gutter-width)}.sidebar-right>.sidebar-gutter{left:auto;right:100%}.is-collapsed>.gutter>.gutter-toggle>span{--tw-rotate:-180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sidebar-gutter:before{border-radius:var(--radius-full);opacity:0}.sidebar-gutter:hover:before{opacity:1;width:.5rem}.is-expanded .sidebar-gutter.gutter-border:before{opacity:1}.is-sidebar-resizing{cursor:col-resize}:root{--table-head-bg:var(--color-surface);--table-striped-color:var(--color-gray-50);--table-hover-color:rgba(var(--color-primary-500-rgb),.05);--table-border-color:var(--color-border)}.table{border-color:var(--table-border-color);width:100%}.table>thead{background-color:var(--table-head-bg)}.table>*>tr{border-bottom-width:1px}.table>*>tr>*{padding:.5rem 1rem}.table-striped>tbody>tr:nth-child(2n){background:var(--table-striped-color)}.table-hover>tbody>tr:hover>*{background:var(--table-hover-color)}.table.bordered>*>tr>*{border-width:1px}.table.borderless>*>tr,.table.borderless>*>tr>*{border-style:none}.condensed>*>tr>*{padding:.375rem .75rem}.table-fixed{table-layout:fixed}.table-fixed>*>tr>*{overflow:hidden;white-space:nowrap}.toolbar{align-items:center;display:flex;position:relative}.toolbar>.divider{--tw-bg-opacity:1;background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));margin:.5rem;width:1px}.toolbar-space{flex:1 1 auto;height:1px;width:1px}.toolbar>.dropdown.show{align-items:center;display:flex;position:relative}.tooltip{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-inverse-rgb),var(--tw-border-opacity));border-radius:var(--radius);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem;max-width:28rem;padding:.25rem .5rem;z-index:1800}.tooltip:not(.white)>.arrow{border-width:0}.tooltip.white>.arrow{border-color:inherit}.tooltip-has-title{--tw-bg-opacity:0.8;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding:.5rem .75rem .75rem}.tooltip-has-title>.arrow{opacity:.75}.tooltip-heading{align-items:center;display:flex;font-size:.8125rem;font-weight:700;gap:1rem;justify-content:space-between;line-height:1.25rem;padding:.25rem}.tooltip-heading>.btn-close{margin-right:-.25rem}.tooltip-content{padding:.25rem}.tree-item-inner{flex-direction:row;min-height:24px;padding-left:var(--list-nested-indent)}.tree-item-inner,.tree-toggle{align-items:center;display:flex}.tree-toggle{--caret-size:5px;--caret-opacity:.3;border-radius:var(--radius);flex:none;height:1rem;justify-content:center;margin-right:-.375rem;width:1rem}.tree-item-inner>.item-icon{opacity:.5;width:1rem}.tree-item-inner:hover>.item-icon{opacity:.8}.tree-item-inner.has-hover{border-radius:var(--radius)}.tree-item-inner .item-title:not(:hover),.tree-item-inner>a.item-title:not(:hover){color:inherit}.tree-item-inner>.toolbar{margin-left:1rem;opacity:.6}.tree-item-inner:hover>.toolbar{opacity:1}.tree-item>.active{background:var(--menu-active-bg);color:var(--menu-active-color)}.tree-item>.selected{background:var(--menu-selected-bg)}.tree-item>.selected .item-content{color:var(--menu-selected-color);font-weight:700}.tree.search-menu-on-top>.search-box{left:0;right:0}.upload .upload-tip{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.upload .draggable-area{background-color:rgba(var(--color-primary-50-rgb),.2);border:1px dashed var(--color-primary-300)}.upload .draggable-area.dragover{background-color:rgba(var(--color-primary-500-rgb),.1);border-style:solid}.upload .upload-tip{color:var(--color-slate-500)}.file-item>.img{height:120px;width:120px}.upload .file-item:hover .file-size{display:flex!important}.panel-body>.form-batch{margin-top:-1rem}.form-batch-container{overflow-y:auto}.form-batch-table{--table-head-bg:var(--color-canvas);min-width:100%;table-layout:fixed}.form-batch-table>*>tr>*{padding-left:.375rem;padding-right:.375rem;vertical-align:top}.form-batch-table>*>tr>th{text-align:left;vertical-align:middle}.form-batch-head[data-name=ACTIONS]{width:5rem}.form-batch-label{display:inline}.form-batch-control>textarea.form-control{height:2rem}.form-batch-btn+.btn{margin-left:.25rem}.form-batch-table>tbody[data-count="1"] .form-batch-btn[data-type=delete]{display:none}.form-batch-ditto{position:relative}.form-batch-ditto-btn{bottom:0;height:auto;opacity:.5;padding-left:.5rem;padding-right:.5rem;position:absolute!important;right:0;top:0}.form-batch-ditto-btn:after{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:.5rem;content:var(--tw-content);left:-1px;position:absolute;top:.5rem;width:1px}[data-ditto=on] .form-batch-ditto-btn{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));opacity:1}.form-batch-row-actions{padding-bottom:.75rem!important;padding-top:.75rem!important}.form-batch-ditto-control .form-control{padding-right:calc(var(--form-batch-ditto-width) + 8px)}.form-batch-ditto-control .input-control>.input-control-suffix{right:var(--form-batch-ditto-width)}.form-batch-ditto-control .input-control>.form-control{padding-right:calc(var(--form-batch-ditto-width) + var(--input-control-suffix))}.form-batch-ditto-control .pick-pri>.caret{right:calc(var(--form-batch-ditto-width) + 8px)}.dropmenu-btn{gap:.25rem;padding-left:.5rem;padding-right:.5rem}.dropmenu-btn>.text{max-width:180px;overflow:hidden}.dropmenu-btn>.is-leading{left:-.625rem;position:absolute}.dropmenu-btn>.is-caret{align-items:center;background-color:rgba(var(--color-canvas-rgb),.2);border-radius:var(--radius);display:flex;height:1rem;justify-content:center;width:1rem}.dropmenu-nav{border-bottom-width:1px;margin-left:.75rem;margin-right:.75rem;margin-top:.25rem}.has-search .dropmenu-nav{margin-top:-.5rem}.dropmenu-nav>.nav-secondary{gap:.5rem}.dropmenu-nav>.nav-secondary>.nav-item>a{border-radius:var(--radius);padding-left:.5rem;padding-right:.5rem}.dropmenu-nav>.nav-secondary>.nav-item>a:after{bottom:-1px;left:1rem;opacity:0;right:1rem}.dropmenu-nav>.nav-secondary>.nav-item>.active:after{left:.5rem;opacity:1;right:.5rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dropmenu-title{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;font-weight:700;line-height:1rem;margin-bottom:-.5rem;padding:.75rem}.dropmenu-list{min-height:0;overflow-x:hidden;overflow-y:auto;padding:.5rem .75rem}.dropmenu.loading>*{opacity:0}.dropmenu-item .tree-item-inner{border-radius:var(--radius);cursor:pointer;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dropmenu-item.is-item.active>.tree-item-inner{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.tree-item-inner.is-link:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.tree-item-inner.is-link:hover .item-content,.tree-item-inner.is-link:hover .item-trailing-icon{color:inherit}.tree-item-inner.is-toggle:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity))}.dropmenu-item+.tree-item{margin-top:.125rem}.dropmenu-item .is-match{font-weight:700;text-decoration-line:underline}.dropmenu-item .item-title,.dropmenu-item .label{overflow:hidden;white-space:nowrap}.dropmenu-item .item-content{padding-left:.375rem;padding-right:.375rem}.dropmenu-item *+.item-content{padding-left:0}.tree-item-inner.is-toggle .item-title{opacity:.6}.tree-item-inner.is-toggle:hover .item-title{opacity:1}.dropmenu-item-check{align-items:center;display:flex;flex:1 1 auto;justify-content:flex-end;padding-right:.5rem}.dropmenu-item .nested-toggle-icon.is-empty{width:.25rem}.dropmenu-item .item-icon{margin-right:-.25rem}:root{--form-control-border:var(--color-border-strong)}.checkbox-primary.disabled,.checkbox-primary.disabled>label,.checkbox-primary>input[type=checkbox]:disabled,.checkbox-primary>input[type=checkbox]:disabled+label,.radio-primary.disabled,.radio-primary.disabled>label,.radio-primary>input[type=radio],.radio-primary>input[type=radio]:disabled+label{filter:none!important}.checkbox-primary.disabled>label,.radio-primary.disabled>label{opacity:1}.form-actions{gap:1rem;justify-content:center}.form-actions .btn{min-width:96px}.form-control-static{min-height:32px;padding-bottom:.375rem;padding-top:.375rem}:root{--zt-panel-form-max-width:1000px}.size-sm{--zt-panel-form-max-width:800px}.size-lg{--zt-panel-form-max-width:1200px}.panel-body>.container,.panel-heading>.container{max-width:var(--panel-container-width);min-width:0;padding-left:var(--panel-container-padding);padding-right:var(--panel-container-padding)}.panel-heading>.container{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;gap:1rem;justify-content:space-between;min-height:48px}.panel-form{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius-md);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);margin-bottom:1rem;margin-left:auto;margin-right:auto;max-width:var(--zt-panel-form-max-width);min-width:var(--zt-panel-form-min-width);overflow:visible;padding-bottom:1rem;padding-left:1rem;padding-right:1rem}.panel-form .form-actions{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),.8);bottom:0;padding-bottom:1rem;padding-top:1rem;position:sticky;z-index:1}.panel-form .form-grid{margin:calc(0px - var(--form-grid-gap-y-half)) calc(0px - var(--form-grid-gap-x-half))}.panel-form-toolbar{padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half);width:100%}.panel-form-toolbar>.toolbar{gap:1rem;padding-bottom:.75rem;padding-top:.75rem}.panel-form-divider{margin-bottom:.75rem;margin-top:1rem;padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half);width:100%}.panel-form-divider:before{--tw-content:"";background-color:rgba(var(--color-border-rgb),.7);content:var(--tw-content);display:block;height:1px}.is-full .btn-full-form,.is-lite .btn-lite-form{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-300-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));z-index:1}.btn-toggle-fold:after{content:attr(data-expand-text)}.show-fold-items .btn-toggle-fold:after{content:attr(data-collapse-text)}.is-foldable,.is-full .full\:hidden,.is-full .lite\:visible,.is-full .panel-form-divider,.is-full .panel-form-toolbar,.is-lite .full\:visible,.is-lite .lite\:hidden{display:none}.is-foldable.is-pinned,.is-full .full\:visible,.is-full .is-foldable,.is-full .lite\:hidden,.is-lite .full\:hidden,.is-lite .lite\:visible,.show-fold-items .is-foldable{display:block}.is-full .full\:w-1\/2,.is-lite .lite\:w-1\/2{width:50%}.is-full .full\:w-1\/3,.is-lite .lite\:w-1\/3{width:33.333333%}.is-full .full\:w-2\/3,.is-lite .lite\:w-2\/3{width:66.666667%}.is-full .full\:w-1\/4,.is-lite .lite\:w-1\/4{width:25%}.is-full .full\:w-2\/4,.is-lite .lite\:w-2\/4{width:50%}.is-full .full\:w-3\/4,.is-lite .lite\:w-3\/4{width:75%}.is-full .full\:w-1\/5,.is-lite .lite\:w-1\/5{width:20%}.is-full .full\:w-2\/5,.is-lite .lite\:w-2\/5{width:40%}.is-full .full\:w-3\/5,.is-lite .lite\:w-3\/5{width:60%}.is-full .full\:w-4\/5,.is-lite .lite\:w-4\/5{width:80%}.is-full .full\:w-1\/6,.is-lite .lite\:w-1\/6{width:16.666667%}.is-full .full\:w-2\/6,.is-lite .lite\:w-2\/6{width:33.333333%}.is-full .full\:w-3\/6,.is-lite .lite\:w-3\/6{width:50%}.is-full .full\:w-4\/6,.is-lite .lite\:w-4\/6{width:66.666667%}.is-full .full\:w-5\/6,.is-lite .lite\:w-5\/6{width:83.333333%}.is-full .full\:w-full,.is-lite .lite\:w-full{width:100%}.page-form{--panel-container-width:960px;--panel-container-padding:20px;--zt-panel-form-max-width:1200px;--zt-panel-form-min-width:1040px;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-left:0;padding-right:0}.page-form .panel-heading{--tw-border-opacity:0.7;border-bottom-width:1px;padding:0}.page-form .panel-title{font-size:1rem;line-height:1.5rem}@media (max-width:1240px){.page-form{--zt-panel-form-max-width:1100px}}@media (max-width:1110px){.page-form{--zt-panel-form-max-width:1040px}}.modal-body>.page-form{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);margin:-1.5rem -2rem!important}.modal-body>.page-form>.panel-heading{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);padding-bottom:.375rem;padding-top:.375rem;position:sticky;top:-1.5rem;z-index:2}.modal-body>.panel-form .form-actions{bottom:-1.5rem}.dropdown.popover{display:flex;flex-direction:column;position:absolute;z-index:1200}.dropdown.show{display:flex}.dropdown-menu{--menu-min-width:7rem;--menu-max-width:20rem;display:none}.dropdown-menu.show,.menu-wrapper>.dropdown-menu,.show>.dropdown-menu{display:block}.dropdown>.dropdown-menu,.menu-wrapper .dropdown-menu{position:relative}.show>.menu-wrapper{display:flex}.dropdown>.menu-wrapper{height:100%}.dropdown>.menu-wrapper .menu-wrapper{position:absolute}.is-contextmenu .is-nested-show>a:not(:hover){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity))}.is-contextmenu .menu-item.is-nested>.item-inner>.nested-toggle-icon{position:absolute;right:.25rem;top:.375rem}.is-contextmenu .menu-nested .menu-item>.item-inner{padding-left:.5rem;padding-right:1.25rem}.is-contextmenu .menu-nested .menu-item>.item-inner>.item-content{overflow:hidden}.dropdown>.arrow{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.global-search-panel li:not(.order-first):hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.global-search-panel li a{width:100%}.global-search-panel li{cursor:pointer}.history-panel>.panel-heading+.panel-body{margin-top:-.75rem}.history-panel-action{position:relative}.history-panel-action:before{--tw-border-opacity:1;--tw-content:"";border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-left-width:1px;bottom:-.375rem;content:var(--tw-content);left:.5rem;position:absolute;top:22px}.col-reverse>.history-panel-action:first-child:before,.col>.history-panel-action:last-child:before{display:none}.history-panel-action>.item-inner{padding-left:1.5rem}.history-panel-action>.item-inner>.avatar{left:0;position:absolute;top:.375rem}.img-cutter{background:var(--color-gray-100);border:1px solid #ddd;margin-bottom:20px;padding:10px}.img-cutter .canvas{margin:0 auto;max-width:100%;min-width:50px;position:relative}.img-cutter .cover{inset:0;position:absolute;z-index:1}.img-cutter .controller{background:none;border:1px dashed hsla(0,0%,100%,.7);cursor:move;position:absolute;z-index:5}.img-cutter .control{background:#000;background:rgba(0,0,0,.6);border:1px solid hsla(0,0%,100%,.6);height:6px;position:absolute;width:6px}.img-cutter .control[data-type=left]{cursor:w-resize;left:-4px;margin-top:-3px;top:50%}.img-cutter .control[data-type=top]{cursor:n-resize;left:50%;margin-left:-3px;top:-4px}.img-cutter .control[data-type=right]{cursor:e-resize;margin-top:-3px;right:-4px;top:50%}.img-cutter .control[data-type=bottom]{bottom:-4px;cursor:s-resize;left:50%;margin-left:-3px}.img-cutter .control[data-type=top-left]{cursor:nw-resize;left:-4px;top:-4px}.img-cutter .control[data-type=top-right]{cursor:ne-resize;right:-4px;top:-4px}.img-cutter .control[data-type=bottom-left]{bottom:-4px;cursor:sw-resize;left:-4px}.img-cutter .control[data-type=bottom-right]{bottom:-4px;cursor:se-resize;right:-4px}.img-cutter .cliper{inset:0;position:absolute;z-index:2}.messager-fail .toolbar,.messager-success .toolbar{padding-left:72px}.modal-reconfirm .modal-body{font-size:14px;font-weight:700;padding:24px 32px}.modal-reconfirm .modal-footer{justify-content:center;padding:24px}.picker-deselect-btn{opacity:.6;transition-duration:.15s;transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.picker-multi-selection{cursor:pointer;padding-right:.5rem;position:relative}.picker-multi-selection .picker-deselect-btn{--tw-scale-x:0;--tw-scale-y:0;background-color:rgba(var(--color-surface-rgb),.8);inset:0;opacity:0;position:absolute}.picker-deselect-btn:hover,.picker-multi-selection .picker-deselect-btn,.picker-multi-selection:hover .picker-deselect-btn{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.picker-deselect-btn:hover,.picker-multi-selection:hover .picker-deselect-btn{--tw-scale-x:1;--tw-scale-y:1;--state-color:rgba(var(--color-surface-rgb),.9);opacity:1}.pick-pri{align-items:center;display:flex;flex-direction:row;justify-content:flex-start;position:relative}.pick-pri>.caret{position:absolute;right:.5rem;top:.875rem}.pick-pri .placeholder{--tw-text-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-text-opacity))}.pick-pri-list>.btn{justify-content:flex-start}.disabled.pick-pri,.disabled.pick-pri>*{filter:none}.search-form{--gutter-width:12px;padding-bottom:.75rem}.search-form-container{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);min-height:116px;position:relative}.is-simple .search-form-container{min-height:56px}.search-form-field td{padding:.375rem}.search-form .sidebar-right.is-collapsed{margin-right:-.375rem}.search-form-toggle.active,.show-search-form #featureBar .search-form-toggle{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.show-search-form #featureBar .search-form-toggle{font-weight:700}.is-simple .search-form-wrapper{display:flex}.is-simple .search-form-wrapper>.row{flex:1 1 auto}.is-simple .search-form-wrapper>.toolbar{flex:none;margin-top:0}.zinbar [data-hint]{position:relative}.zinbar [data-hint]:after{--tw-bg-opacity:0.9;--tw-text-opacity:1;--tw-content:attr(data-hint);background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);bottom:100%;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));content:var(--tw-content);display:block;font-size:.75rem;line-height:1rem;opacity:0;padding:.125rem .25rem;pointer-events:none;position:absolute;right:0;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);white-space:nowrap;z-index:50}.zinbar [data-hint]:hover:after{opacity:1}.zin-perf-btn-list .text-danger{color:var(--color-danger-400)}.zinbar .state{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.zinbar .state:active{--tw-scale-x:1.05;--tw-scale-y:1.05}.zinbar .state:active,.zinbar.collapse{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.zinbar.collapse{--tw-translate-x:100%}.zinbar.collapse>div{pointer-events:none}.zinbar{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.7s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);min-height:28px;position:relative;transition-duration:.15s;transition-property:shadow,border,color,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.card-content,.card-footer,.card-header,.card-heading{padding:.25rem .5rem}.card-heading{align-items:center;display:flex;gap:.5rem}.card-icon{opacity:.5}.card-header{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.card-content{display:flex;flex-direction:column;gap:.25rem}.card-actions{position:absolute;right:.125rem;top:.125rem}.card-actions+.card-heading{padding-right:1.75rem}.card-subtitle{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.card-list{--list-gap:.625rem;--list-count-per-row:1}.card-list,.card-list-item{padding:calc(var(--list-gap)/2)}.card-list-item{width:calc(100%/var(--list-count-per-row))}.card-grid{display:flex;flex-wrap:wrap}.card-grid .card{height:100%}.contextmenu{display:none}.contextmenu.show{display:block}.contextmenu .popup .popup,.contextmenu.popup{position:absolute}.more,.more-vert{margin:.5rem;position:relative}.more,.more-vert,.more-vert:after,.more-vert:before,.more:after,.more:before{background-color:currentColor;border-radius:var(--radius-full);height:.125rem;width:.125rem}.more-vert:after,.more-vert:before,.more:after,.more:before{--tw-content:"";content:var(--tw-content);display:block;left:-5px;position:absolute;top:0}.more-vert:after,.more:after{left:5px}.more-vert{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dashboard-blocks{position:relative}.dashboard-block-cell{position:absolute;transition-duration:.15s;transition-property:left,top;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-block{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);inset:.5rem;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-block.is-dragging{opacity:0;z-index:1600}.dashboard-block-header{align-items:center;border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);display:flex;flex-direction:row;justify-content:space-between;left:0;padding:.75rem;pointer-events:none;position:absolute;right:0;top:0;z-index:10}.dashboard-block-header>*{pointer-events:auto}.dashboard-block-title{font-size:.875rem;font-weight:700;line-height:1.3rem}.dashboard-block-body{inset:0;position:absolute}.dashboard-block-body>.panel{--tw-shadow:0px 6px 16px rgba(202,215,235,.25);display:flex;flex-direction:column;height:100%;width:100%}.dashboard-block-body .panel-heading{cursor:move;flex:none}.dashboard-block-body .panel-body{flex:1 1 auto;overflow-y:auto}.has-more-menu>.dashboard-block-body .panel-heading{padding-right:3rem}.dashboard-block-body .panel-title{font-size:.875rem;height:2rem;line-height:1.3rem}.dashboard-block-actions .btn{opacity:.6}.dashboard-block-actions .btn:hover{opacity:1}.dashboard-drop-shadow{position:absolute;transition-duration:.15s;transition-property:left,top;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-drop-shadow:before{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);--tw-content:"";background-color:rgba(var(--color-inverse-rgb),.05);border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);content:var(--tw-content);inset:.5rem;position:absolute}:root{--scrollbar-size:10px;--scrollbar-opacity:.6;--scrollbar-bg:rgba(var(--color-inverse-rgb),.15);--scrollbar-inset:inset 0 0 0 1px rgba(var(--color-inverse-rgb),.05);--scrollbar-bar-bg:rgba(var(--color-inverse-rgb),.3);--scrollbar-hover-bg:rgba(var(--color-inverse-rgb),.4);--scrollbar-drag-bg:rgba(var(--color-inverse-rgb),.5);--scrollbar-radius:var(--radius-sm);--scrollbar-duration:.7s}.scrollbar{background:var(--scrollbar-bg);box-shadow:var(--scrollbar-shadow);opacity:var(--scrollbar-opacity);position:absolute;transition-duration:.15s;transition-duration:var(--scrollbar-duration);transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.scrollbar-hover .scrollbar{opacity:0}.scrollbar-hover:hover .scrollbar{opacity:var(--scrollbar-opacity)}.scrollbar.is-dragging,.scrollbar:hover{opacity:1!important}.scrollbar-bar{background:var(--scrollbar-bar-bg);border-radius:var(--scrollbar-radius);position:absolute}.scrollbar-bar:hover{background:var(--scrollbar-hover-bg)}.is-dragging>.scrollbar-bar{background:var(--scrollbar-drag-bg)}.is-horz>.scrollbar-bar{height:100%;z-index:20}.is-vert>.scrollbar-bar{width:100%;z-index:20}:root{--dtable-checked-bg:var(--color-warning-50);--dtable-checked-bg-hover:var(--color-warning-100);--dtable-checked-border:var(--color-border-strong)}.dtable-cell.is-checked,.dtable-striped .dtable-cell.is-odd-row.is-checked{background-color:var(--dtable-checked-bg)}.checkbox-primary.dtable-checkbox{margin-right:-.375rem}.dtable-checkbox{order:-5}.dtable-hover-col .dtable-cell.is-hover-col.is-checked,.dtable-hover-row .dtable-cell.is-hover-row.is-checked{background-color:var(--dtable-checked-bg-hover)}.dtable-cell.is-checked{--dtable-border-color:var(--dtable-checked-border)}.dtable-check-info{flex-shrink:1;margin-right:.5rem;overflow:hidden;white-space:nowrap}:root{--toggle-icon-size:calc(var(--font-size-root)*3/4 + 1px)}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-color:currentColor;border-width:1px;display:block;opacity:.5;position:relative}.toggle-icon-collapse:hover,.toggle-icon-expand:hover,.toggle-icon:hover{opacity:.9}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-radius:inherit;height:var(--toggle-icon-size);width:var(--toggle-icon-size)}.is-collapsed .toggle-icon:after,.is-collapsed .toggle-icon:before,.is-expanded .toggle-icon:before,.toggle-icon-collapse:after,.toggle-icon-collapse:before,.toggle-icon-expand:before{background-color:currentColor;content:" ";display:block;height:1px;left:2px;position:absolute;right:2px;top:calc((var(--toggle-icon-size) - 3px)/2)}.is-collapsed .toggle-icon:after,.toggle-icon-collapse:after{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:root{--dtable-nt-size:calc(var(--font-size-root)*3/4 + 1px)}.dtable-nested-indent{flex:none;margin-right:-.25rem;order:-100}.dtable-nested-toggle{align-items:center;border-radius:var(--radius-sm);display:flex;flex:none;height:1.25rem;justify-content:center;margin-left:-.25rem;order:-6;width:1.25rem}.dtable-nested-toggle.is-no-child{margin-right:-.25rem;opacity:0;pointer-events:none}.dtable-header-group{align-items:center;background:var(--dtable-header-bg);cursor:default;display:flex;justify-content:center;left:0;position:absolute;top:1px;z-index:30}.dtable-bordered .dtable-header-group{border-bottom:1px solid var(--dtable-border-color);border-left:1px solid var(--dtable-border-color)}.dtable-header-as-group{contain:style;content-visibility:visible;overflow:visible!important}.dtable-sorting{cursor:move}.dtable-cell.is-sorting-from{background-color:var(--dtable-bg);z-index:20}.dtable-cell.is-sorting-from:before{border-top-width:1px}.dtable-sorting .dtable-cell.is-sorting-after{--tw-translate-y:-100%}.dtable-sorting .dtable-cell.is-sorting-after,.dtable-sorting .dtable-cell.is-sorting-before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dtable-sorting .dtable-cell.is-sorting-before{--tw-translate-y:100%}.dtable-cell.is-sorting-before:before,.dtable-cell.is-sorting-from:before{border-bottom-width:1px;border-top-width:1px}:root{--dtable-bg:var(--color-canvas);--dtable-striped-bg:var(--color-gray-50);--dtable-hover-bg:rgba(var(--color-primary-500-rgb),.05);--dtable-header-bg:var(--color-surface);--dtable-footer-bg:var(--color-surface);--dtable-border-color:var(--color-border);--dtable-sorter-size:0.3125rem}.dtable{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));position:relative}.dtable.no-animation *{transition-property:none!important}.dtable-block{overflow:hidden;position:absolute;width:100%}.dtable-header{background-color:var(--dtable-header-bg);border-top-left-radius:inherit;border-top-right-radius:inherit}.dtable-body{overflow:hidden}.dtable-cells{background-color:var(--dtable-bg);height:100%;position:absolute;z-index:0}.dtable-cells-container{height:100%;position:absolute;width:100%}.dtable-header .dtable-cells{background-color:var(--dtable-header-bg)}.dtable-cells.dtable-fixed-left,.dtable-cells.dtable-fixed-right{z-index:10}.dtable-cell{position:absolute;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-cell:after,.dtable-cell:before{bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:-1px;z-index:2}.dtable-cell:before{border-bottom-width:1px;border-color:var(--dtable-border-color);opacity:1}.dtable-header .dtable-cell{align-items:center;display:flex;font-weight:700}.dtable-header .dtable-cell:after,.dtable-header .dtable-cell:before{top:0}.dtable-cell-content{align-items:center;display:flex;gap:.25rem;height:100%;overflow:hidden;padding-left:.75rem;padding-right:.75rem;position:relative;white-space:nowrap;width:100%;z-index:5}.dtable-body .dtable-cell.is-last-row:before{border-bottom-width:0}.dtable-footer{align-items:center;background-color:var(--dtable-footer-bg);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;border-color:var(--dtable-border-color);border-top-width:1px;display:flex;padding-left:.75rem;padding-right:.75rem;position:absolute;width:100%;z-index:10}.dtable-empty-tip{align-items:center;display:flex;height:100%;justify-content:center}.dtable .scrollbar{z-index:20}.dtable-header{transition-duration:1s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-scrolled-down .dtable-header{border-bottom-color:rgba(var(--color-inverse-rgb),.2);border-bottom-width:1px}.dtable-scroll-shadow{background-image:linear-gradient(90deg,rgba(0,0,0,.03),transparent),linear-gradient(90deg,rgba(0,0,0,.03),transparent 50%);opacity:0;pointer-events:none;position:absolute;top:0;transition-duration:1s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:8px;z-index:20}.dtable:hover .dtable-scroll-shadow{opacity:1}.dtable-scroll-shadow.is-right{--tw-rotate:180deg;margin-left:-7px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dtable-scroll-shadow.is-left,.dtable-scrolled-end .dtable-scroll-shadow.is-right{visibility:hidden}.dtable-scroll-shadow.is-right,.dtable-scrolled-right .dtable-scroll-shadow.is-left{visibility:visible}.dtable-sort{display:inline-flex;height:calc(var(--dtable-sorter-size)*12/5);margin-left:.25rem;opacity:.8;position:relative}.dtable-cell:hover .dtable-sort{opacity:1}.dtable-sort:after,.dtable-sort:before{--tw-content:"";border-color:transparent;border-style:solid;border-width:var(--dtable-sorter-size);content:var(--tw-content);height:0;left:0;opacity:.4;position:absolute;width:0}.dtable-sort:before{border-bottom-color:currentColor;border-top-width:0;top:0}.dtable-sort:after{border-bottom-width:0;border-top-color:currentColor;bottom:0}.dtable-sort.dtable-sort-asc:before,.dtable-sort.dtable-sort-desc:after{opacity:.9}.dtable-sort-link{align-items:center;cursor:pointer;display:inline-flex}.dtable-cells.dtable-fixed-left:before,.dtable-cells.dtable-fixed-right:before{border-color:var(--dtable-border-color);content:"";height:100%;pointer-events:none;position:absolute;width:100%;z-index:5}.dtable-cells.dtable-fixed-left:before{border-right-width:1px;right:-1px}.dtable-cells.dtable-fixed-right:before{border-left-width:1px;left:0}.dtable-bordered:before{border-color:var(--dtable-border-color);border-radius:inherit;border-width:1px;content:"";display:block;inset:0;pointer-events:none;position:absolute;z-index:15}.dtable-bordered .dtable-cell:before{border-width:1px;right:-1px}.dtable-cell.has-border-left:before{border-left-width:1px}.dtable-cell.has-border-right:before{border-right-width:1px;right:-1px}.dtable-striped .dtable-cell.is-odd-row{background-color:var(--dtable-striped-bg)}.dtable-hover-cell .dtable-cell:hover:after,.dtable-hover-col .dtable-cell.is-hover-col:before,.dtable-hover-row .dtable-body .dtable-cell.is-hover-row:before{background-color:var(--dtable-hover-bg)}:root{--kanban-lane-name-width:20px;--kanban-col-width:280px;--kanban-cols-gap:8px;--kanban-lanes-gap:8px;--kanban-header-height:32px;--kanban-lane-height:auto;--kanban-lane-color:var(--color-primary-500);--kanban-link-color:var(--color-secondary-500)}.kanban{align-items:flex-start;display:flex;flex-direction:column;min-width:-moz-fit-content;min-width:fit-content;position:relative}.kanban-header{display:flex;flex-direction:row;height:var(--kanban-header-height)}.kanban.has-sub-cols .kanban-header{height:calc(var(--kanban-header-height)*2)}.kanban-header-lane-name{background-color:rgba(var(--color-fore-rgb),.05);flex:none;width:var(--kanban-lane-name-width)}.kanban-header-cols,.kanban-header-sub-cols{display:flex;flex:1 1 0%;flex-direction:row;gap:var(--kanban-cols-gap)}.kanban-header-sub-cols{--tw-border-opacity:1;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));border-top-width:2px}.kanban-header-col{align-items:center;border-bottom-width:1px;display:flex;flex:1 1 0%;flex-direction:column;height:100%;width:var(--kanban-col-width)}.kanban-header-col.has-subs{width:auto}.kanban-header-col-wrapper{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));display:flex;flex:1 1 0%;flex-direction:row;padding-left:3.5rem;padding-right:3.5rem;position:relative;width:100%}.kanban-header-col-wrapper.is-align-left{justify-content:flex-start;padding-left:.5rem}.kanban-header-col-wrapper.is-align-left>.kanban-header-title{justify-content:flex-start}.kanban-header-title{align-items:center;display:flex;flex:1 1 auto;flex-direction:row;justify-content:center;overflow:hidden}.kanban-header-title>.as-title{color:var(--kanban-col-color);font-weight:700;overflow:hidden;white-space:nowrap}.kanban-header-col-actions{bottom:.25rem;position:absolute;right:.25rem;top:.25rem}.kanban-header-col-actions>.btn{opacity:.6}.kanban-header-col-actions>.btn:hover{opacity:1}.kanban-body{display:flex;flex-direction:column;gap:var(--kanban-lanes-gap)}.kanban-lane{flex-direction:row;height:var(--kanban-lane-height);min-height:96px}.kanban-lane,.kanban-lane-name{display:flex}.kanban-lane-name{--tw-text-opacity:1;align-items:center;background-color:var(--kanban-lane-color);color:rgba(var(--color-white-rgb),var(--tw-text-opacity));flex:none;justify-content:center;position:relative;width:var(--kanban-lane-name-width);writing-mode:vertical-rl}.kanban-lane-title{max-height:8rem;overflow:hidden;white-space:nowrap}.kanban-lane-cols{display:flex;flex-direction:row;gap:var(--kanban-cols-gap)}.kanban-lane-col{background-color:rgba(var(--color-inverse-rgb),.05);display:flex;flex-direction:column;height:100%;width:var(--kanban-col-width)}.kanban-header-col,.kanban-lane-col{margin-left:calc(var(--kanban-col-gap-left) - var(--kanban-cols-gap));margin-right:calc(var(--kanban-col-gap-right) - var(--kanban-cols-gap))}.kanban-col-content{position:relative;z-index:5}.kanban-lane.is-first>.kanban-lane-name:before{--tw-content:"";background-color:var(--kanban-lane-color);bottom:100%;content:var(--tw-content);display:block;height:var(--kanban-header-height);left:0;position:absolute;right:0}.kanban.has-sub-cols .kanban-lane.is-first>.kanban-lane-name:before{height:calc(var(--kanban-header-height)*2)}.kanban-items{flex:1 1 auto;overflow:auto;scrollbar-gutter:both-edges stable}.kanban-lane.is-auto-height .kanban-items{scrollbar-gutter:auto}.kanban-item .card-actions{z-index:5}.kanban-heading{width:100%}.kanban-heading .listitem{height:2.25rem}.kanban-heading .item-title{font-weight:700}.kanban.has-dragging{cursor:move}.kanban-item.is-dragging{cursor:move;opacity:.1}.kanban-sticky .kanban-header{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));position:sticky;top:0;z-index:10}.kanban-sticky .kanban-lane-name{left:0;position:sticky;z-index:10}.kanban-region{--tw-bg-opacity:1;--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);min-width:-moz-fit-content;min-width:fit-content;padding:.75rem}.kanban-region>.kanban+.kanban{margin-top:.75rem}.kanban-region.has-heading{padding-top:0}.kanban-heading>.listitem{left:.75rem;position:sticky;width:calc(var(--kanban-list-width) - 24px)}.kanban-list{display:flex;flex-direction:column;gap:.75rem;height:100vh;overflow:auto;scrollbar-gutter:stable}.kanban-list.is-moving{cursor:grabbing}.kanban-items.is-dropping{position:relative}.kanban-item.is-dropping{position:relative;transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.kanban-item.is-dropping:after,.kanban-items.is-dropping>.card-list:after{--tw-content:"";background-color:rgba(var(--color-warning-500-rgb),.5);border-radius:var(--radius-full);content:var(--tw-content);display:block;height:.25rem}.kanban-item.is-dropping:after{left:.25rem;position:absolute;right:.25rem;top:-.25rem}.kanban-item.is-dropping[z-drop-side=before]{--tw-translate-y:0.25rem}.kanban-item.is-dropping[z-drop-side=after],.kanban-item.is-dropping[z-drop-side=before]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-item.is-dropping[z-drop-side=after]{--tw-translate-y:-0.25rem}.kanban-item.is-dropping[z-drop-side=after]:after{bottom:-.25rem;top:auto}.kanban-links{inset:0;pointer-events:none;position:absolute;z-index:20}.kanban-link{align-items:center;color:var(--kanban-link-color);display:flex;justify-content:center}.kanban-link,.kanban-link>svg{position:absolute}.kanban-link-text{border-radius:var(--radius);height:1em;line-height:1;padding-left:.125rem;padding-right:.125rem;pointer-events:auto;position:relative;text-align:center;white-space:nowrap}.kanban-link-start-point{--tw-translate-x:-0.25rem;--tw-translate-y:-0.25rem;height:.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5rem}.kanban-link-start-point,.kanban-link-start-point:before{background-color:currentColor;border-radius:var(--radius-full);position:absolute}.kanban-link-start-point:before{--tw-content:"";content:var(--tw-content);display:block;inset:-.25rem;opacity:.2}.kanban-link path{pointer-events:auto}.kanban-link path+path{opacity:.6}.kanban-link.is-hover path+path{opacity:1}.kanban-link-delete-btn{--tw-scale-x:.75;--tw-scale-y:.75;opacity:0;pointer-events:auto;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.is-hover .kanban-link-delete-btn,.kanban-link-delete-btn{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.is-hover .kanban-link-delete-btn{--tw-scale-x:1;--tw-scale-y:1;opacity:1}.kanban.is-adding-link{cursor:crosshair}.kanban-link-editor{inset:0;pointer-events:none;position:absolute;z-index:20}.kanban-link-editor-from,.kanban-link-editor-to{--tw-shadow-color:rgb(var(--color-primary-500-rgb));--tw-shadow:var(--tw-shadow-colored);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-500-rgb),var(--tw-ring-opacity));border-radius:var(--radius)}.kanban-link-editor-from,.kanban-link-editor-point,.kanban-link-editor-to{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);position:absolute}.kanban-link-editor-point{--tw-translate-x:-0.25rem;--tw-translate-y:-0.25rem;--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-primary-500-rgb),0.1);background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);cursor:move;height:.5rem;opacity:.5;pointer-events:auto;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.5rem}.kanban-link-editor-point.is-left{left:0;top:50%}.kanban-link-editor-point.is-right{--tw-translate-x:0.25rem;right:0;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-link-editor-point.is-top{left:50%;top:0}.kanban-link-editor-point.is-bottom{--tw-translate-y:0.25rem;bottom:0;left:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-link-editor-point:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-primary-500-rgb),0.5);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:1}.tab-pane{display:none}.tab-pane.active{display:block}:root{--dtable-header-bg:var(--color-surface-light);--dtable-footer-bg:var(--color-surface-light);--dtable-border-color:var(--color-border-light);--dtable-checked-border:var(--color-border);--dtable-link-color:var(--color-link);--dtable-link-hover-color:var(--color-link-hover);--dtable-link-visited-color:var(--color-link-visited)}.dtable-header .dtable-cell{font-weight:400}.dtable-cell-content[style*="--color-link"]{--dtable-link-hover-color:var(--color-link);--dtable-link-visited-color:var(--color-link)}.dtable-body .dtable-cell a:not(.btn){color:var(--dtable-link-color)}.dtable-body .dtable-cell a:not(.btn):visited{color:var(--dtable-link-visited-color)}.dtable-body .dtable-cell a:not(.btn):hover{color:var(--dtable-link-hover-color)}.dtable .btn-avatar{--tw-bg-opacity:1;--tw-ring-color:transparent;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);gap:.25rem;height:1.25rem;padding-left:0;padding-right:.5rem}.dtable .btn-avatar:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dtable .toggle-icon{border-radius:var(--radius-full)}.dtable .toggle-icon:after,.dtable .toggle-icon:before{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity))}.dtable-footer>.toolbar{margin-right:.5rem}.dtable-header .dtable-cell[data-sort]>.dtable-cell-content>a:not(:hover){color:inherit}.dtable-assign-btn{align-items:center;border-radius:var(--radius-full);display:flex;flex-direction:row;height:1.25rem;padding-left:.375rem;padding-right:.375rem}.dtable-assign-btn:not(:hover){color:inherit}.dtable-assign-btn.is-me{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.dtable-assign-btn:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.dtable-assign-btn>span{border-radius:var(--radius-full);line-height:20px;padding-left:.375rem;padding-right:.375rem}.dtable-assign-btn.is-unassigned>span{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}.dtable-assign-btn.is-unassigned:hover>span{background-color:inherit}.dtable-assign-btn>.icon{opacity:0;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-assign-btn:not(.disabled):hover>.icon{opacity:1}.dtable-header .dtable-cell[data-type=assign]{padding-left:1.5rem}.dtable-cell-icon{order:-5}.dtable-custom-cell[data-type=control]{align-items:center;display:flex;justify-content:center;padding-left:.125rem;padding-right:.125rem;z-index:1}.dtable-empty-tip{min-height:212px}.menu.menu-dtable-actions{--menu-icon-opacity:1;display:flex;gap:.25rem;min-width:auto}.menu.menu-dtable-actions>.menu-item>a{padding-left:.25rem;padding-right:.25rem}.menu.menu-dtable-actions>.menu-item>a>.item-content{display:none}:root{--zt-page-bg:var(--color-gray-100);--zt-header-bg:var(--color-canvas);--zt-header-color:var(--color-fore);--zt-sidebar-width:160px;--zt-navbar-active-color:var(--color-primary-500)}body{background-color:var(--zt-page-bg)}.page-app{overflow:overlay}.container{min-width:1200px}#header{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background:var(--zt-header-bg);border-bottom:1px solid var(--zt-header-border,rgba(var(--color-inverse-rgb),.05));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:var(--zt-header-color);height:3rem}#header>.container{height:100%;position:relative}#heading{align-items:center;bottom:0;display:flex;gap:.25rem;left:1rem;position:absolute;top:0}#heading>.toolbar{margin-left:-.75rem}#heading .dropmenu-btn>.text{max-width:142px}#heading>[data-zui-dropmenu]+div .dropmenu-btn>.text,#heading>[data-zui-dropmenu]+div+div .dropmenu-btn>.text{max-width:78px}#navbar{align-items:center;display:flex;font-size:.875rem;height:100%;justify-content:center;line-height:1.3rem}#navbar>.nav{--nav-active-color:var(--zt-navbar-active-color,var(--color-current));--nav-item-padding:12px;--nav-divider-margin:8px;margin-left:var(--nav-offset-left)}#navbar>.nav>.nav-item>a{height:3rem;padding-left:var(--nav-item-padding);padding-right:var(--nav-item-padding)}#navbar>.nav>.nav-item>a:after{--tw-scale-x:.5;background-color:currentColor;bottom:.5rem;content:"";height:.125rem;left:.75rem;opacity:0;position:absolute;right:.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}#navbar>.nav>.nav-item>a:hover:after{opacity:.5}#navbar>.nav>.nav-item>a.active:after,#navbar>.nav>.nav-item>a:hover:after{--tw-scale-x:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#navbar>.nav>.nav-item>a.active:after{opacity:.9}#navbar>.nav>.divider{align-self:center;height:1.25rem;margin-left:var(--nav-divider-margin);margin-right:var(--nav-divider-margin)}#navbar>.nav.compact{font-size:.8125rem;line-height:1.25rem}#navbar>.nav.compact-extra{font-size:.75rem;line-height:1rem}#toolbar{align-items:center;bottom:0;display:flex;gap:.25rem;position:absolute;right:1rem;top:0}#main{min-height:100vh}#header+#main{min-height:calc(100vh - 3rem)}#main>.container{padding-left:1rem;padding-right:1rem;position:relative}@media (min-width:1400px){#header>.container,#main>.container,#mainNavbar>.container{padding-left:2.5rem;padding-right:2.5rem}#heading{left:2.5rem}#toolbar{right:2.5rem}}#mainNavbar{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));height:2.75rem}#mainNavbar>.container{position:relative}#mainNavbar .nav{height:2.75rem;inset:0;justify-content:center;position:absolute}#mainNavbar .nav-item{font-size:.875rem;line-height:1.3rem}#mainNavbar .nav-item>a{border-radius:var(--radius)}#mainMenu{gap:1rem;justify-content:space-between;padding-bottom:.75rem;padding-top:.75rem}#featureBar,#mainMenu{align-items:center;display:flex}#featureBar{flex:1 1 auto;gap:.5rem}#featureBar .nav .btn>.icon{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}#actionBar{gap:.5rem}#actionBar>.nav-divider{margin-left:-.25rem;margin-right:-.25rem}#mainContent{padding-top:.75rem}#mainMenu+#mainContent{padding-top:0}#mainContent.row{align-items:stretch;display:flex;gap:1rem;justify-content:space-between}#mainContent.row>*{flex:1 1 auto;min-width:0}#mainContainer.has-sidebar-left{--gutter-left-size:16px}#mainContainer.is-sidebar-left-collapsed{--gutter-left-size:0}.has-sidebar-animation.has-sidebar-left #mainMenu{transition-duration:.15s;transition-property:padding-left;transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--modal-radius:var(--radius);--avatar-bg:var(--color-gray-200)}.modal-alert .modal-footer{justify-content:center}.modal-dialog{--tw-bg-opacity:1}.modal-body,.modal-footer,.modal-header{padding:1.5rem 2rem}.modal-header{padding-right:3rem}.modal-actions{top:1rem}.modal-body+.modal-footer,.modal-header+.modal-actions+.modal-body,.modal-header+.modal-body{padding-top:0}.modal-condensed .modal-body,.modal-condensed .modal-header{padding:1rem 1.25rem}.modal-condensed .modal-actions{top:.75rem}:root{--label-bg:var(--color-gray-100);--label-color:var(--color-gray-800)}.label[class$=-pale],.label[class*="-pale "]{--tw-bg-opacity:0.4;--tw-ring-opacity:0.4}.tree{--tree-indent:14px}.body-modal .panel-form,.modal .panel-form{margin:0;padding:0}.modal .panel-body{padding:1px}.modal-body>.form{padding-top:1px}.modal .history,.modal .panel-body>.form{padding:0}.arrow,.arrow:before{background:inherit;height:calc(var(--arrow-size)*1.4142);position:absolute;width:calc(var(--arrow-size)*1.4142)}.arrow{--arrow-size:5px;visibility:hidden}.arrow:before{--tw-rotate:45deg;border:inherit;content:"";transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));visibility:visible}.arrow-top,.arrow-up{border-bottom:inherit;border-right:inherit;border-width:1px 0 0 1px;top:calc(1px - var(--arrow-size))}.white>.arrow-top,.white>.arrow-up{top:calc(0px - var(--arrow-size))}.arrow-bottom,.arrow-down{border-left:inherit;border-top:inherit;border-width:0 1px 1px 0;bottom:calc(1px - var(--arrow-size))}.white>.arrow-bottom,.white>.arrow-down{bottom:calc(0px - var(--arrow-size))}.arrow-left{border-right:inherit;border-top:inherit;border-width:0 0 1px 1px;left:calc(1px - var(--arrow-size))}.white>.arrow-left{left:calc(0px - var(--arrow-size))}.arrow-right{border-bottom:inherit;border-left:inherit;border-width:1px 1px 0 0;right:calc(1px - var(--arrow-size))}.white>.arrow-right{right:calc(0px - var(--arrow-size))}.caret,.caret-down,.caret-left,.caret-right,.caret-up{border:var(--caret-size,4px) solid transparent;display:inline-block;height:0;opacity:var(--caret-opacity,.5);width:0}:focus>.caret,:hover>.caret{opacity:inherit}.disabled .caret,.readonly .caret{opacity:var(--caret-opacity,.5)}.caret,.caret-down{border-bottom-width:0;border-top-color:currentColor}.caret-up{border-bottom-color:currentColor;border-top-width:0}.caret-right{border-left-color:currentColor;border-right-width:0}.caret-left{border-left-width:0;border-right-color:currentColor}:root{--toggle-icon-size:calc(var(--font-size-root)*3/4 + 1px)}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-color:currentColor;border-width:1px;display:block;opacity:.5;position:relative}.toggle-icon-collapse:hover,.toggle-icon-expand:hover,.toggle-icon:hover{opacity:.9}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-radius:inherit;height:var(--toggle-icon-size);width:var(--toggle-icon-size)}.is-collapsed .toggle-icon:after,.is-collapsed .toggle-icon:before,.is-expanded .toggle-icon:before,.toggle-icon-collapse:after,.toggle-icon-collapse:before,.toggle-icon-expand:before{background-color:currentColor;content:" ";display:block;height:1px;left:2px;position:absolute;right:2px;top:calc((var(--toggle-icon-size) - 3px)/2)}.is-collapsed .toggle-icon:after,.toggle-icon-collapse:after{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.spinner,.spinner:after,.spinner:before{display:block;height:1em;position:relative;width:1em}.spinner:after,.spinner:before{border-radius:var(--radius-full);content:" ";position:absolute}.spinner:before{animation:-spin 1s cubic-bezier(.6,0,.4,1) infinite;border:.16667em solid transparent;border-top-color:currentcolor}.spinner:after{border:.16667em solid;opacity:.2}.magnifier{display:inline-block;height:1em;position:relative;width:1em}.magnifier:after,.magnifier:before{border-radius:var(--radius-full);content:"";display:block;position:absolute}.magnifier:before{border:1px solid;height:.75em;width:.75em}.magnifier:after{--tw-rotate:45deg;background-color:currentColor;height:1px;left:.55em;top:.7em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5em}.more,.more-vert{margin:.5rem;position:relative}.more,.more-vert,.more-vert:after,.more-vert:before,.more:after,.more:before{background-color:currentColor;border-radius:var(--radius-full);height:.125rem;width:.125rem}.more-vert:after,.more-vert:before,.more:after,.more:before{--tw-content:"";content:var(--tw-content);display:block;left:-5px;position:absolute;top:0}.more-vert:after,.more:after{left:5px}.more-vert{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-down,.chevron-left,.chevron-right,.chevron-up{align-items:center;display:inline-flex;height:1em;justify-content:center;position:relative;width:1em}.chevron-down:before,.chevron-left:before,.chevron-right:before,.chevron-up:before{--tw-translate-y:-0.125rem;--tw-rotate:45deg;--tw-content:"";border-color:currentColor;border-width:0 1px 1px 0;content:var(--tw-content);display:block;height:.6923077em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform-origin:center;width:.6923077em}.chevron-left:before{--tw-translate-y:0px;--tw-translate-x:0.125rem;--tw-rotate:135deg}.chevron-left:before,.chevron-right:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-right:before{--tw-translate-y:0px;--tw-translate-x:-0.125rem;--tw-rotate:-45deg}.chevron-up:before{--tw-translate-y:0.125rem;--tw-rotate:225deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.i-time{border-color:currentColor;border-radius:50%;border-width:.08em;display:inline-block;height:1em;position:relative;width:1em}.i-time:after{--tw-content:"";border-color:currentColor;border-width:0 0 .08em .08em;content:var(--tw-content);height:.385em;left:.3846em;position:absolute;top:.08em;width:.385em}.i-calendar{border-color:currentColor;border-radius:2px;border-width:.08em;display:inline-block;height:.79em;margin-top:.16em;position:relative;width:1em}.i-calendar:after,.i-calendar:before{--tw-content:"";border-color:currentColor;border-width:.08em;content:var(--tw-content);position:absolute}.i-calendar:before{border-bottom-width:0;left:.15em;top:.307em;width:.6em}.i-calendar:after{border-bottom-width:0;border-top-width:0;height:.3077em;left:.17em;top:-.154em;width:.538em}:root{--state-color:rgba(0,0,0,.05);--state-scale:.9;--opacity-disabled:.65;--opacity-muted:.5}.btn,.item>a,.state{cursor:pointer;position:relative}.btn:before,.item>a:before,.state:before{background:var(--state-color);border-radius:inherit;content:" ";display:block;inset:0;opacity:0;pointer-events:none;position:absolute;transform:scale(var(--state-scale));transition-duration:.2s;transition-property:opacity,transform,box-shadow,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn.active:not(:hover,:focus-visible,:focus-within,:active):before,.item>a.active:not(:hover,:focus-visible,:focus-within,:active):before,.state.active:not(:hover,:focus-visible,:focus-within,:active):before{--tw-scale-x:1;--tw-scale-y:1;--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);background:var(--state-active-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);opacity:var(--state-active-opacity,0);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.7s}.btn.selected:not(:hover,:focus-visible,:focus-within,:active):before,.item>a.selected:not(:hover,:focus-visible,:focus-within,:active):before,.state.selected:not(:hover,:focus-visible,:focus-within,:active):before{--tw-scale-x:1;--tw-scale-y:1;background:var(--state-selected-color,var(--state-scale));opacity:var(--state-selected-opacity,.1);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn:focus-visible,.item>a:focus-visible,.state:focus-visible{outline:2px solid transparent;outline-offset:2px}.btn:active:before,.btn:focus-visible:before,.btn:hover:before,.item>a:active:before,.item>a:focus-visible:before,.item>a:hover:before,.state:active:before,.state:focus-visible:before,.state:hover:before{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn:hover:before,.item>a:hover:before,.state:hover:before{opacity:var(--state-hover-opacity,1)}.btn:active:before,.item>a:active:before,.state:active:before{--tw-ring-color:var(--state-ring-color,currentColor);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);background:var(--state-pressed-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:var(--state-pressed-opacity,.6);transition-duration:.7s}.btn:focus-visible:before,.item>a:focus-visible:before,.state:focus-visible:before{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-focus-rgb),var(--tw-ring-opacity));background:var(--state-focus-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:var(--state-focus-opacity,1)}.btn.disabled:before,.btn[disabled]:before,.item>a.disabled:before,.item>a[disabled]:before,.state.disabled:before,.state[disabled]:before{display:none}.disabled,.disabled *,[disabled],[disabled] *{--tw-grayscale:grayscale(100%);cursor:not-allowed!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:var(--opacity-disabled)}.load-indicator:after,.load-indicator:before{display:block;opacity:0;position:absolute;transition-delay:0s;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);visibility:hidden}.load-indicator:before{--tw-content:attr(data-loading);align-items:center;background-color:rgba(var(--color-canvas-rgb),.7);border-radius:inherit;content:var(--tw-content);display:flex;font-size:.75rem;inset:0;justify-content:center;line-height:1rem;z-index:99}.load-indicator[data-loading]:before{padding-top:3.5rem}.load-indicator:after{--tw-content:"";border-color:transparent currentcolor currentcolor;border-radius:var(--radius-full);border-style:dotted;border-width:4px 3px 4px 4px;content:var(--tw-content);height:2rem;left:50%;margin-left:-1rem;margin-top:-1rem;top:50%;width:2rem;z-index:100}.load-indicator.loading:after,.load-indicator.loading:before{opacity:1;transition-delay:.5s;visibility:visible}@keyframes -spin{to{transform:rotate(1turn)}}.load-indicator.loading:after{animation:-spin 1s linear infinite;opacity:.5}.events-none,.pointer-events-none{pointer-events:none}.events-auto,.pointer-events-auto{pointer-events:auto}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.cursor-text{cursor:text}.cursor-move{cursor:move}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.active\:opacity-100.active,.active\:opacity-100:active,.group.active .group-active\:opacity-100,.group:active .group-active\:opacity-100,.group:hover .group-hover\:opacity-100,.hover\:opacity-100:hover{opacity:1}.active\:text-primary.active,.active\:text-primary:active,.group.active .group-active\:text-primary,.group:active .group-active\:text-primary,.group:hover .group-hover\:text-primary,.hover\:text-primary:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.active\:border-primary.active,.active\:border-primary:active,.group.active .group-active\:border-primary,.group:active .group-active\:border-primary,.group:hover .group-hover\:border-primary,.hover\:border-primary:hover{--tw-border-opacity:1;border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity))}.active\:primary-pale.active,.active\:primary-pale:active,.group.active .group-active\:primary-pale,.group:active .group-active\:primary-pale,.group:hover .group-hover\:primary-pale,.hover\:primary-pale:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.active\:primary.active,.active\:primary:active,.group.active .group-active\:primary,.group:active .group-active\:primary,.group:hover .group-hover\:primary,.hover\:primary:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.active\:canvas.active,.active\:canvas:active,.group.active .group-active\:canvas,.group:active .group-active\:canvas,.group:hover .group-hover\:canvas,.hover\:canvas:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.active\:font-bold.active,.active\:font-bold:active,.group.active .group-active\:font-bold,.group:active .group-active\:font-bold,.group:hover .group-hover\:font-bold,.hover\:font-bold:hover{font-weight:700}.active\:shadow.active,.active\:shadow:active,.group.active .group-active\:shadow,.group:active .group-active\:shadow,.group:hover .group-hover\:shadow,.hover\:shadow:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.container{width:100%}@media (min-width:1720px){.container{max-width:1720px}}.container{margin-left:auto;margin-right:auto}.popup{--tw-bg-opacity:0.85;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.table-row{display:table-row}.hidden{display:none!important}.pull-right{float:right}.pull-left{float:left}.clearfix:after{clear:both;content:"";display:block}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.object-bottom{-o-object-position:bottom;object-position:bottom}.object-center{-o-object-position:center;object-position:center}.object-left{-o-object-position:left;object-position:left}.object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.object-left-top{-o-object-position:left top;object-position:left top}.object-right{-o-object-position:right;object-position:right}.object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.object-right-top{-o-object-position:right top;object-position:right top}.object-top{-o-object-position:top;object-position:top}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overflow-overlay{overflow:overlay}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-auto{inset:auto}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-full{top:100%}.right-full{right:100%}.bottom-full{bottom:100%}.left-full{left:100%}.top-auto{top:auto}.right-auto{right:auto}.bottom-auto{bottom:auto}.left-auto{left:auto}.top-px{top:1px}.right-px{right:1px}.bottom-px{bottom:1px}.left-px{left:1px}.top-0\.5{top:.125rem}.right-0\.5{right:.125rem}.bottom-0\.5{bottom:.125rem}.left-0\.5{left:.125rem}.top-1{top:.25rem}.right-1{right:.25rem}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.top-1\.5{top:.375rem}.right-1\.5{right:.375rem}.bottom-1\.5{bottom:.375rem}.left-1\.5{left:.375rem}.top-2{top:.5rem}.right-2{right:.5rem}.bottom-2{bottom:.5rem}.left-2{left:.5rem}.top-2\.5{top:.625rem}.right-2\.5{right:.625rem}.bottom-2\.5{bottom:.625rem}.left-2\.5{left:.625rem}.top-3{top:.75rem}.right-3{right:.75rem}.bottom-3{bottom:.75rem}.left-3{left:.75rem}.top-3\.5{top:.875rem}.right-3\.5{right:.875rem}.bottom-3\.5{bottom:.875rem}.left-3\.5{left:.875rem}.top-4{top:1rem}.right-4{right:1rem}.bottom-4{bottom:1rem}.left-4{left:1rem}.top-5{top:1.25rem}.right-5{right:1.25rem}.bottom-5{bottom:1.25rem}.left-5{left:1.25rem}.top-6{top:1.5rem}.right-6{right:1.5rem}.bottom-6{bottom:1.5rem}.left-6{left:1.5rem}.top-7{top:1.75rem}.right-7{right:1.75rem}.bottom-7{bottom:1.75rem}.left-7{left:1.75rem}.top-8{top:2rem}.right-8{right:2rem}.bottom-8{bottom:2rem}.left-8{left:2rem}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.m-0{margin:0}.mx-0{margin-left:0;margin-right:0}.my-0{margin-bottom:0}.mt-0,.my-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.ml-0{margin-left:0}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-bottom:auto}.mt-auto,.my-auto{margin-top:auto}.mr-auto{margin-right:auto}.mb-auto{margin-bottom:auto}.ml-auto{margin-left:auto}.m-px{margin:1px}.mx-px{margin-left:1px;margin-right:1px}.my-px{margin-bottom:1px}.mt-px,.my-px{margin-top:1px}.mr-px{margin-right:1px}.mb-px{margin-bottom:1px}.ml-px{margin-left:1px}.m-0\.5{margin:.125rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.my-0\.5{margin-bottom:.125rem}.mt-0\.5,.my-0\.5{margin-top:.125rem}.mr-0\.5{margin-right:.125rem}.mb-0\.5{margin-bottom:.125rem}.ml-0\.5{margin-left:.125rem}.m-1{margin:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-1{margin-bottom:.25rem}.mt-1,.my-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.m-1\.5{margin:.375rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.my-1\.5{margin-bottom:.375rem}.mt-1\.5,.my-1\.5{margin-top:.375rem}.mr-1\.5{margin-right:.375rem}.mb-1\.5{margin-bottom:.375rem}.ml-1\.5{margin-left:.375rem}.m-2{margin:.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-2{margin-bottom:.5rem}.mt-2,.my-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.m-2\.5{margin:.625rem}.mx-2\.5{margin-left:.625rem;margin-right:.625rem}.my-2\.5{margin-bottom:.625rem}.mt-2\.5,.my-2\.5{margin-top:.625rem}.mr-2\.5{margin-right:.625rem}.mb-2\.5{margin-bottom:.625rem}.ml-2\.5{margin-left:.625rem}.m-3{margin:.75rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.my-3{margin-bottom:.75rem}.mt-3,.my-3{margin-top:.75rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.m-3\.5{margin:.875rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.my-3\.5{margin-bottom:.875rem}.mt-3\.5,.my-3\.5{margin-top:.875rem}.mr-3\.5{margin-right:.875rem}.mb-3\.5{margin-bottom:.875rem}.ml-3\.5{margin-left:.875rem}.m-4{margin:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-4{margin-bottom:1rem}.mt-4,.my-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.m-5{margin:1.25rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.my-5{margin-bottom:1.25rem}.mt-5,.my-5{margin-top:1.25rem}.mr-5{margin-right:1.25rem}.mb-5{margin-bottom:1.25rem}.ml-5{margin-left:1.25rem}.m-6{margin:1.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-6{margin-bottom:1.5rem}.mt-6,.my-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.m-7{margin:1.75rem}.mx-7{margin-left:1.75rem;margin-right:1.75rem}.my-7{margin-bottom:1.75rem}.mt-7,.my-7{margin-top:1.75rem}.mr-7{margin-right:1.75rem}.mb-7{margin-bottom:1.75rem}.ml-7{margin-left:1.75rem}.m-8{margin:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.my-8{margin-bottom:2rem}.mt-8,.my-8{margin-top:2rem}.mr-8{margin-right:2rem}.mb-8{margin-bottom:2rem}.ml-8{margin-left:2rem}.m-9{margin:2.25rem}.mx-9{margin-left:2.25rem;margin-right:2.25rem}.my-9{margin-bottom:2.25rem}.mt-9,.my-9{margin-top:2.25rem}.mr-9{margin-right:2.25rem}.mb-9{margin-bottom:2.25rem}.ml-9{margin-left:2.25rem}.m-10{margin:2.5rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.my-10{margin-bottom:2.5rem}.mt-10,.my-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mb-10{margin-bottom:2.5rem}.ml-10{margin-left:2.5rem}.p-0{padding:0}.p-px{padding:1px}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.p-9{padding:2.25rem}.p-10{padding:2.5rem}.px-0{padding-left:0;padding-right:0}.py-0{padding-bottom:0}.pt-0,.py-0{padding-top:0}.pr-0{padding-right:0}.pb-0{padding-bottom:0}.pl-0{padding-left:0}.px-px{padding-left:1px;padding-right:1px}.py-px{padding-bottom:1px}.pt-px,.py-px{padding-top:1px}.pr-px{padding-right:1px}.pb-px{padding-bottom:1px}.pl-px{padding-left:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.py-0\.5{padding-bottom:.125rem}.pt-0\.5,.py-0\.5{padding-top:.125rem}.pr-0\.5{padding-right:.125rem}.pb-0\.5{padding-bottom:.125rem}.pl-0\.5{padding-left:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-1{padding-bottom:.25rem}.pt-1,.py-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.py-1\.5{padding-bottom:.375rem}.pt-1\.5,.py-1\.5{padding-top:.375rem}.pr-1\.5{padding-right:.375rem}.pb-1\.5{padding-bottom:.375rem}.pl-1\.5{padding-left:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-2{padding-bottom:.5rem}.pt-2,.py-2{padding-top:.5rem}.pr-2{padding-right:.5rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-2\.5{padding-bottom:.625rem}.pt-2\.5,.py-2\.5{padding-top:.625rem}.pr-2\.5{padding-right:.625rem}.pb-2\.5{padding-bottom:.625rem}.pl-2\.5{padding-left:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-bottom:.75rem}.pt-3,.py-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.py-3\.5{padding-bottom:.875rem}.pt-3\.5,.py-3\.5{padding-top:.875rem}.pr-3\.5{padding-right:.875rem}.pb-3\.5{padding-bottom:.875rem}.pl-3\.5{padding-left:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.py-4{padding-bottom:1rem}.pt-4,.py-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-5{padding-bottom:1.25rem}.pt-5,.py-5{padding-top:1.25rem}.pr-5{padding-right:1.25rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-6{padding-bottom:1.5rem}.pt-6,.py-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-7{padding-bottom:1.75rem}.pt-7,.py-7{padding-top:1.75rem}.pr-7{padding-right:1.75rem}.pb-7{padding-bottom:1.75rem}.pl-7{padding-left:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-8{padding-bottom:2rem}.pt-8,.py-8{padding-top:2rem}.pr-8{padding-right:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-9{padding-bottom:2.25rem}.pt-9,.py-9{padding-top:2.25rem}.pr-9{padding-right:2.25rem}.pb-9{padding-bottom:2.25rem}.pl-9{padding-left:2.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-10{padding-bottom:2.5rem}.pt-10,.py-10{padding-top:2.5rem}.pr-10{padding-right:2.5rem}.pb-10{padding-bottom:2.5rem}.pl-10{padding-left:2.5rem}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(0px*(1 - var(--tw-space-x-reverse)));margin-right:calc(0px*var(--tw-space-x-reverse))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.125rem*var(--tw-space-x-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.125rem*var(--tw-space-y-reverse));margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.375rem*var(--tw-space-x-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-2\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.625rem*var(--tw-space-x-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.625rem*var(--tw-space-y-reverse));margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-x-3\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.875rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.875rem*var(--tw-space-x-reverse))}.space-y-3\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.875rem*var(--tw-space-y-reverse));margin-top:calc(.875rem*(1 - var(--tw-space-y-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.25rem*var(--tw-space-x-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-7>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.75rem*var(--tw-space-x-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.75rem*var(--tw-space-y-reverse));margin-top:calc(1.75rem*(1 - var(--tw-space-y-reverse)))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.space-x-9>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.25rem*var(--tw-space-x-reverse))}.space-y-9>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.25rem*var(--tw-space-y-reverse));margin-top:calc(2.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.5rem*var(--tw-space-y-reverse));margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1px*(1 - var(--tw-space-x-reverse)));margin-right:calc(1px*var(--tw-space-x-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1px*var(--tw-space-y-reverse));margin-top:calc(1px*(1 - var(--tw-space-y-reverse)))}.w-0{width:0}.w-px{width:1px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-32{width:8rem}.w-36{width:9rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-52{width:13rem}.w-56{width:14rem}.w-60{width:15rem}.w-64{width:16rem}.w-72{width:18rem}.w-80{width:20rem}.w-96{width:24rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-1\/6{width:16.666667%}.w-2\/6{width:33.333333%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.w-min{width:-moz-min-content;width:min-content}.w-max{width:-moz-max-content;width:max-content}.w-fit{width:-moz-fit-content;width:fit-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.min-w-min{min-width:-moz-min-content;min-width:min-content}.min-w-max{min-width:-moz-max-content;min-width:max-content}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.max-w-0{max-width:0}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.max-w-min{max-width:-moz-min-content;max-width:min-content}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.h-0{height:0}.h-px{height:1px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-32{height:8rem}.h-36{height:9rem}.h-40{height:10rem}.h-44{height:11rem}.h-48{height:12rem}.h-52{height:13rem}.h-56{height:14rem}.h-60{height:15rem}.h-64{height:16rem}.h-72{height:18rem}.h-80{height:20rem}.h-96{height:24rem}.h-1\/2{height:50%}.h-1\/3{height:33.333333%}.h-2\/3{height:66.666667%}.h-1\/4{height:25%}.h-2\/4{height:50%}.h-3\/4{height:75%}.h-1\/5{height:20%}.h-2\/5{height:40%}.h-3\/5{height:60%}.h-4\/5{height:80%}.h-1\/6{height:16.666667%}.h-2\/6{height:33.333333%}.h-3\/6{height:50%}.h-4\/6{height:66.666667%}.h-5\/6{height:83.333333%}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h-min{height:-moz-min-content;height:min-content}.h-max{height:-moz-max-content;height:max-content}.h-fit{height:-moz-fit-content;height:fit-content}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-min{min-height:-moz-min-content;min-height:min-content}.min-h-max{min-height:-moz-max-content;min-height:max-content}.min-h-fit{min-height:-moz-fit-content;min-height:fit-content}.max-h-0{max-height:0}.max-h-px{max-height:1px}.max-h-none{max-height:none}.max-h-full{max-height:100%}.max-h-min{max-height:-moz-min-content;max-height:min-content}.max-h-max{max-height:-moz-max-content;max-height:max-content}.max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.canvas,.surface,.surface-light,.surface-strong{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}.canvas{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.surface-light{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-light-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity))}.surface{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.surface-strong{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-strong-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-strong-rgb),var(--tw-bg-opacity))}.inverse{background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.inverse,.white{--tw-bg-opacity:1;--tw-text-opacity:1}.white{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-white-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-white-rgb),var(--tw-bg-opacity));color:rgba(var(--color-fore-in-light-rgb),var(--tw-text-opacity))}.black{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-black-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-black-rgb),var(--tw-bg-opacity));color:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity))}.transparent{--tw-ring-color:transparent;background-color:transparent}.skin{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.skin:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger,.darken,.darker,.darkest,.gray,.gray-100,.gray-200,.gray-300,.gray-400,.gray-50,.gray-500,.gray-600,.gray-700,.gray-800,.gray-900,.gray-950,.important,.lighten,.lighter,.lightest,.primary,.secondary,.special,.success,.warning{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger:hover,.darken:hover,.darker:hover,.darkest:hover,.gray-100:hover,.gray-200:hover,.gray-300:hover,.gray-400:hover,.gray-500:hover,.gray-50:hover,.gray-600:hover,.gray-700:hover,.gray-800:hover,.gray-900:hover,.gray-950:hover,.gray:hover,.important:hover,.lighten:hover,.lighter:hover,.lightest:hover,.primary:hover,.secondary:hover,.special:hover,.success:hover,.warning:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger,.darken,.darker,.darkest,.gray,.gray-100,.gray-200,.gray-300,.gray-400,.gray-50,.gray-500,.gray-600,.gray-700,.gray-800,.gray-900,.gray-950,.important,.lighten,.lighter,.lightest,.primary,.secondary,.special,.success,.warning{--skin-text:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity));--skin-color:rgba(var(--skin-solid-rgb),1);--state-ring-color:var(--skin-color);--state-active-color:rgba(0,0,0,.1);--state-pressed-color:rgba(0,0,0,.1);--state-color:hsla(0,0%,100%,.1);--state-focus-color:rgba(0,0,0,.1)}.primary{--skin-solid-rgb:var(--color-primary-500-rgb)}.secondary{--skin-solid-rgb:var(--color-secondary-500-rgb)}.success{--skin-solid-rgb:var(--color-success-500-rgb)}.warning{--skin-solid-rgb:var(--color-warning-500-rgb)}.danger{--skin-solid-rgb:var(--color-danger-500-rgb)}.important{--skin-solid-rgb:var(--color-important-500-rgb)}.special{--skin-solid-rgb:var(--color-special-500-rgb)}.gray-50{--skin-bg:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-100{--skin-solid-rgb:var(--color-gray-100-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-200,.lightest{--skin-solid-rgb:var(--color-gray-200-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-300,.lighter{--skin-solid-rgb:var(--color-gray-300-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-400,.lighten{--skin-solid-rgb:var(--color-gray-400-rgb)}.gray,.gray-500{--skin-solid-rgb:var(--color-gray-500-rgb)}.darken,.gray-600{--skin-solid-rgb:var(--color-gray-600-rgb)}.darker,.gray-700{--skin-solid-rgb:var(--color-gray-700-rgb)}.darkest,.gray-800{--skin-solid-rgb:var(--color-gray-800-rgb)}.gray-900{--skin-solid-rgb:var(--color-gray-900-rgb)}.gray-950{--skin-solid-rgb:var(--color-gray-950-rgb)}.danger-pale,.gray-100-pale,.gray-200-pale,.gray-300-pale,.gray-400-pale,.gray-50-pale,.gray-500-pale,.gray-600-pale,.gray-700-pale,.gray-800-pale,.gray-900-pale,.gray-950-pale,.gray-pale,.important-pale,.pale,.primary-pale,.secondary-pale,.special-pale,.success-pale,.warning-pale{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-pale:hover,.gray-100-pale:hover,.gray-200-pale:hover,.gray-300-pale:hover,.gray-400-pale:hover,.gray-50-pale:hover,.gray-500-pale:hover,.gray-600-pale:hover,.gray-700-pale:hover,.gray-800-pale:hover,.gray-900-pale:hover,.gray-950-pale:hover,.gray-pale:hover,.important-pale:hover,.pale:hover,.primary-pale:hover,.secondary-pale:hover,.special-pale:hover,.success-pale:hover,.warning-pale:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-pale,.gray-100-pale,.gray-200-pale,.gray-300-pale,.gray-400-pale,.gray-50-pale,.gray-500-pale,.gray-600-pale,.gray-700-pale,.gray-800-pale,.gray-900-pale,.gray-950-pale,.gray-pale,.important-pale,.pale,.primary-pale,.secondary-pale,.special-pale,.success-pale,.warning-pale{--skin-color:rgba(var(--skin-pale-rgb),.1);--skin-text:rgba(var(--skin-pale-rgb),1);--state-color:rgba(var(--skin-pale-rgb),.1)}.pale{--skin-pale-rgb:var(--color-gray-500-rgb)}.primary-pale{--skin-pale-rgb:var(--color-primary-500-rgb)}.secondary-pale{--skin-pale-rgb:var(--color-secondary-500-rgb)}.success-pale{--skin-pale-rgb:var(--color-success-500-rgb)}.warning-pale{--skin-pale-rgb:var(--color-warning-500-rgb)}.danger-pale{--skin-pale-rgb:var(--color-danger-500-rgb)}.important-pale{--skin-pale-rgb:var(--color-important-500-rgb)}.special-pale{--skin-pale-rgb:var(--color-special-500-rgb)}.gray-50-pale{--skin-pale-rgb:var(--color-gray-50-rgb);--skin-text:var(--color-gray-400)}.gray-100-pale{--skin-pale-rgb:var(--color-gray-100-rgb);--skin-text:var(--color-gray-400)}.gray-200-pale{--skin-pale-rgb:var(--color-gray-200-rgb);--skin-text:var(--color-gray-400)}.gray-300-pale{--skin-pale-rgb:var(--color-gray-300-rgb);--skin-text:var(--color-gray-500)}.gray-400-pale{--skin-pale-rgb:var(--color-gray-400-rgb);--skin-text:var(--color-gray-500)}.gray-500-pale,.gray-pale{--skin-pale-rgb:var(--color-gray-500-rgb)}.gray-600-pale{--skin-pale-rgb:var(--color-gray-600-rgb)}.gray-700-pale{--skin-pale-rgb:var(--color-gray-700-rgb)}.gray-800-pale{--skin-pale-rgb:var(--color-gray-800-rgb)}.gray-900-pale{--skin-pale-rgb:var(--color-gray-900-rgb)}.gray-950-pale{--skin-pale-rgb:var(--color-gray-950-rgb)}.danger-outline,.gray-300-outline,.gray-400-outline,.gray-600-outline,.gray-outline,.important-outline,.outline,.primary-outline,.secondary-outline,.special-outline,.success-outline,.warning-outline{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-outline:hover,.gray-300-outline:hover,.gray-400-outline:hover,.gray-600-outline:hover,.gray-outline:hover,.important-outline:hover,.outline:hover,.primary-outline:hover,.secondary-outline:hover,.special-outline:hover,.success-outline:hover,.warning-outline:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-outline,.gray-300-outline,.gray-400-outline,.gray-600-outline,.gray-outline,.important-outline,.outline,.primary-outline,.secondary-outline,.special-outline,.success-outline,.warning-outline{--skin-text:var(--skin-color,inherit);--skin-bg:transparent;--skin-color:rgba(var(--skin-outline-rgb),1);--state-color:rgba(var(--skin-outline-rgb),.1)}.outline{--skin-outline-rgb:var(--color-fore-rgb)}.primary-outline{--skin-outline-rgb:var(--color-primary-500-rgb)}.secondary-outline{--skin-outline-rgb:var(--color-secondary-500-rgb)}.success-outline{--skin-outline-rgb:var(--color-success-500-rgb)}.warning-outline{--skin-outline-rgb:var(--color-warning-500-rgb)}.danger-outline{--skin-outline-rgb:var(--color-danger-500-rgb)}.important-outline{--skin-outline-rgb:var(--color-important-500-rgb)}.special-outline{--skin-outline-rgb:var(--color-special-500-rgb)}.gray-300-outline{--skin-text:var(--color-gray-500);--skin-outline-rgb:var(--color-gray-300-rgb)}.gray-400-outline{--skin-text:var(--color-gray-500);--skin-outline-rgb:var(--color-gray-400-rgb)}.gray-outline{--skin-outline-rgb:var(--color-gray-500-rgb)}.gray-600-outline{--skin-outline-rgb:var(--color-gray-600-rgb)}.danger-ghost,.ghost,.important-ghost,.primary-ghost,.secondary-ghost,.special-ghost,.success-ghost,.warning-ghost{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-ghost:hover,.ghost:hover,.important-ghost:hover,.primary-ghost:hover,.secondary-ghost:hover,.special-ghost:hover,.success-ghost:hover,.warning-ghost:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-ghost,.ghost,.important-ghost,.primary-ghost,.secondary-ghost,.special-ghost,.success-ghost,.warning-ghost{--tw-ring-opacity:0;--tw-bg-opacity:0;--skin-text:var(--skin-color,inherit);--skin-bg:transparent;--skin-ring:transparent;--skin-color:rgba(var(--skin-ghost-rgb),1);--state-color:rgba(var(--skin-ghost-rgb),.1)}.ghost{--skin-ghost-rgb:var(--color-fore-rgb);--skin-text:inherit}.primary-ghost{--skin-ghost-rgb:var(--color-primary-500-rgb)}.secondary-ghost{--skin-ghost-rgb:var(--color-secondary-500-rgb)}.success-ghost{--skin-ghost-rgb:var(--color-success-500-rgb)}.warning-ghost{--skin-ghost-rgb:var(--color-warning-500-rgb)}.danger-ghost{--skin-ghost-rgb:var(--color-danger-500-rgb)}.important-ghost{--skin-ghost-rgb:var(--color-important-500-rgb)}.special-ghost{--skin-ghost-rgb:var(--color-special-500-rgb)}.font-sans{font-family:-apple-system,Noto Sans,Helvetica Neue,Helvetica,Nimbus Sans L,Arial,Liberation Sans,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,Source Han Sans CN,Microsoft YaHei,Wenquanyi Micro Hei,WenQuanYi Zen Hei,ST Heiti,SimHei,WenQuanYi Zen Hei Sharp,sans-serif}.font-serif{font-family:Nimbus Roman No9 L,Songti SC,Noto Serif CJK SC,Source Han Serif SC,Source Han Serif CN,STSong,AR PL New Sung,AR PL SungtiL GB,NSimSun,SimSun,TW-Sung,WenQuanYi Bitmap Song,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR PL UMing TW MBE,PMingLiU,MingLiU,serif}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-root{font-size:16px}.text-sm{font-size:.75rem;line-height:1rem}.text-base{font-size:.8125rem;line-height:1.25rem}.text-md{font-size:.875rem;line-height:1.3rem}.text-lg{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.125rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-thin{font-weight:100}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-black{font-weight:900}.leading-3{line-height:.75rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-9{line-height:2.25rem}.leading-10{line-height:2.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-loose{line-height:2}.line-1{-webkit-line-clamp:1}.line-1,.line-2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-2{-webkit-line-clamp:2}.line-3{-webkit-line-clamp:3}.line-3,.line-4{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-4{-webkit-line-clamp:4}.line-5{-webkit-line-clamp:5}.line-5,.line-6{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-6{-webkit-line-clamp:6}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.align-bottom{vertical-align:bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.text-primary{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.text-secondary{--tw-text-opacity:1;color:rgba(var(--color-secondary-500-rgb),var(--tw-text-opacity))}.text-success{--tw-text-opacity:1;color:rgba(var(--color-success-500-rgb),var(--tw-text-opacity))}.text-warning{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.text-danger{--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity))}.text-important{--tw-text-opacity:1;color:rgba(var(--color-important-500-rgb),var(--tw-text-opacity))}.text-special{--tw-text-opacity:1;color:rgba(var(--color-special-500-rgb),var(--tw-text-opacity))}.text-primary-50{--tw-text-opacity:1;color:rgba(var(--color-primary-50-rgb),var(--tw-text-opacity))}.text-primary-100{--tw-text-opacity:1;color:rgba(var(--color-primary-100-rgb),var(--tw-text-opacity))}.text-primary-200{--tw-text-opacity:1;color:rgba(var(--color-primary-200-rgb),var(--tw-text-opacity))}.text-primary-300{--tw-text-opacity:1;color:rgba(var(--color-primary-300-rgb),var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgba(var(--color-primary-400-rgb),var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgba(var(--color-primary-600-rgb),var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgba(var(--color-primary-700-rgb),var(--tw-text-opacity))}.text-primary-800{--tw-text-opacity:1;color:rgba(var(--color-primary-800-rgb),var(--tw-text-opacity))}.text-primary-900{--tw-text-opacity:1;color:rgba(var(--color-primary-900-rgb),var(--tw-text-opacity))}.text-primary-950{--tw-text-opacity:1;color:rgba(var(--color-primary-950-rgb),var(--tw-text-opacity))}.text-secondary-50{--tw-text-opacity:1;color:rgba(var(--color-secondary-50-rgb),var(--tw-text-opacity))}.text-secondary-100{--tw-text-opacity:1;color:rgba(var(--color-secondary-100-rgb),var(--tw-text-opacity))}.text-secondary-200{--tw-text-opacity:1;color:rgba(var(--color-secondary-200-rgb),var(--tw-text-opacity))}.text-secondary-300{--tw-text-opacity:1;color:rgba(var(--color-secondary-300-rgb),var(--tw-text-opacity))}.text-secondary-400{--tw-text-opacity:1;color:rgba(var(--color-secondary-400-rgb),var(--tw-text-opacity))}.text-secondary-500{--tw-text-opacity:1;color:rgba(var(--color-secondary-500-rgb),var(--tw-text-opacity))}.text-secondary-600{--tw-text-opacity:1;color:rgba(var(--color-secondary-600-rgb),var(--tw-text-opacity))}.text-secondary-700{--tw-text-opacity:1;color:rgba(var(--color-secondary-700-rgb),var(--tw-text-opacity))}.text-secondary-800{--tw-text-opacity:1;color:rgba(var(--color-secondary-800-rgb),var(--tw-text-opacity))}.text-secondary-900{--tw-text-opacity:1;color:rgba(var(--color-secondary-900-rgb),var(--tw-text-opacity))}.text-secondary-950{--tw-text-opacity:1;color:rgba(var(--color-secondary-950-rgb),var(--tw-text-opacity))}.text-gray-50{--tw-text-opacity:1;color:rgba(var(--color-gray-50-rgb),var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(var(--color-gray-100-rgb),var(--tw-text-opacity))}.text-gray-200,.text-lightest{--tw-text-opacity:1;color:rgba(var(--color-gray-200-rgb),var(--tw-text-opacity))}.text-gray-300,.text-lighter{--tw-text-opacity:1;color:rgba(var(--color-gray-300-rgb),var(--tw-text-opacity))}.text-gray-400,.text-lighten{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.text-gray,.text-gray-500{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.text-darken,.text-gray-600{--tw-text-opacity:1;color:rgba(var(--color-gray-600-rgb),var(--tw-text-opacity))}.text-darker,.text-gray-700{--tw-text-opacity:1;color:rgba(var(--color-gray-700-rgb),var(--tw-text-opacity))}.text-darkest,.text-gray-800{--tw-text-opacity:1;color:rgba(var(--color-gray-800-rgb),var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(var(--color-gray-900-rgb),var(--tw-text-opacity))}.text-gray-950{--tw-text-opacity:1;color:rgba(var(--color-gray-950-rgb),var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(var(--color-white-rgb),var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgba(var(--color-black-rgb),var(--tw-text-opacity))}.text-transparent{color:transparent}.text-canvas{--tw-text-opacity:1;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.text-surface-light{--tw-text-opacity:1;color:rgba(var(--color-surface-light-rgb),var(--tw-text-opacity))}.text-surface{--tw-text-opacity:1;color:rgba(var(--color-surface-rgb),var(--tw-text-opacity))}.text-surface-strong{--tw-text-opacity:1;color:rgba(var(--color-surface-strong-rgb),var(--tw-text-opacity))}.text-inverse{--tw-text-opacity:1;color:rgba(var(--color-inverse-rgb),var(--tw-text-opacity))}.text-fore-in-light{--tw-text-opacity:1;color:rgba(var(--color-fore-in-light-rgb),var(--tw-text-opacity))}.text-fore-in-dark{--tw-text-opacity:1;color:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity))}.text-fore{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}.text-focus{--tw-text-opacity:1;color:rgba(var(--color-focus-rgb),var(--tw-text-opacity))}.text-link{--tw-text-opacity:1;color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}.text-link-hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}.text-current{color:currentColor}.text-inherit{color:inherit}.clip,.ellipsis,.text-clip,.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clip,.text-clip{text-overflow:clip}.nowrap,.whitespace-nowrap{white-space:nowrap}.pre,.whitespace-pre{white-space:pre}.pre-line,.whitespace-pre-line{white-space:pre-line}.pre-wrap,.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-opacity-0{--tw-text-opacity:0}.text-opacity-5{--tw-text-opacity:.05}.text-opacity-10{--tw-text-opacity:.1}.text-opacity-20{--tw-text-opacity:.2}.text-opacity-25{--tw-text-opacity:.25}.text-opacity-30{--tw-text-opacity:.3}.text-opacity-40{--tw-text-opacity:.4}.text-opacity-50{--tw-text-opacity:.5}.text-opacity-60{--tw-text-opacity:.6}.text-opacity-70{--tw-text-opacity:.7}.text-opacity-80{--tw-text-opacity:.8}.text-opacity-90{--tw-text-opacity:.9}.text-opacity-95{--tw-text-opacity:.95}.text-opacity-100{--tw-text-opacity:1}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.list-unstyled{list-style-type:none;padding-left:0}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.bg-primary{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity))}.bg-secondary{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-500-rgb),var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity:1;background-color:rgba(var(--color-success-500-rgb),var(--tw-bg-opacity))}.bg-warning{--tw-bg-opacity:1;background-color:rgba(var(--color-warning-500-rgb),var(--tw-bg-opacity))}.bg-danger{--tw-bg-opacity:1;background-color:rgba(var(--color-danger-500-rgb),var(--tw-bg-opacity))}.bg-important{--tw-bg-opacity:1;background-color:rgba(var(--color-important-500-rgb),var(--tw-bg-opacity))}.bg-special{--tw-bg-opacity:1;background-color:rgba(var(--color-special-500-rgb),var(--tw-bg-opacity))}.bg-primary-50{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity))}.bg-primary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-200-rgb),var(--tw-bg-opacity))}.bg-primary-300{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-300-rgb),var(--tw-bg-opacity))}.bg-primary-400{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-400-rgb),var(--tw-bg-opacity))}.bg-primary-500{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600-rgb),var(--tw-bg-opacity))}.bg-primary-700{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-700-rgb),var(--tw-bg-opacity))}.bg-primary-800{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-800-rgb),var(--tw-bg-opacity))}.bg-primary-900{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900-rgb),var(--tw-bg-opacity))}.bg-primary-950{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-950-rgb),var(--tw-bg-opacity))}.bg-secondary-50{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-50-rgb),var(--tw-bg-opacity))}.bg-secondary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-100-rgb),var(--tw-bg-opacity))}.bg-secondary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-200-rgb),var(--tw-bg-opacity))}.bg-secondary-300{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-300-rgb),var(--tw-bg-opacity))}.bg-secondary-400{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-400-rgb),var(--tw-bg-opacity))}.bg-secondary-500{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-500-rgb),var(--tw-bg-opacity))}.bg-secondary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-600-rgb),var(--tw-bg-opacity))}.bg-secondary-700{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-700-rgb),var(--tw-bg-opacity))}.bg-secondary-800{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-800-rgb),var(--tw-bg-opacity))}.bg-secondary-900{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-900-rgb),var(--tw-bg-opacity))}.bg-secondary-950{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-950-rgb),var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity))}.bg-gray-200,.bg-lightest{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-200-rgb),var(--tw-bg-opacity))}.bg-gray-300,.bg-lighter{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-300-rgb),var(--tw-bg-opacity))}.bg-gray-400,.bg-light{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-400-rgb),var(--tw-bg-opacity))}.bg-gray,.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-500-rgb),var(--tw-bg-opacity))}.bg-darken,.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-600-rgb),var(--tw-bg-opacity))}.bg-darker,.bg-gray-700{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-700-rgb),var(--tw-bg-opacity))}.bg-darkest,.bg-gray-800{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-800-rgb),var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-900-rgb),var(--tw-bg-opacity))}.bg-gray-950{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-950-rgb),var(--tw-bg-opacity))}.bg-canvas{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.bg-surface-light{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity))}.bg-surface{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.bg-surface-strong{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-strong-rgb),var(--tw-bg-opacity))}.bg-inverse{--tw-bg-opacity:1;background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity))}.bg-fore-in-light{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-in-light-rgb),var(--tw-bg-opacity))}.bg-fore-in-dark{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-in-dark-rgb),var(--tw-bg-opacity))}.bg-fore{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity))}.bg-focus{--tw-bg-opacity:1;background-color:rgba(var(--color-focus-rgb),var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(var(--color-white-rgb),var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(var(--color-black-rgb),var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-current{background-color:currentColor}.bg-inherit{background-color:inherit}.bg-none{background-image:none}.bg-opacity-0{--tw-bg-opacity:0}.bg-opacity-5{--tw-bg-opacity:.05}.bg-opacity-10{--tw-bg-opacity:.1}.bg-opacity-20{--tw-bg-opacity:.2}.bg-opacity-30{--tw-bg-opacity:.3}.bg-opacity-40{--tw-bg-opacity:.4}.bg-opacity-50{--tw-bg-opacity:.5}.bg-opacity-60{--tw-bg-opacity:.6}.bg-opacity-70{--tw-bg-opacity:.7}.bg-opacity-80{--tw-bg-opacity:.8}.bg-opacity-90{--tw-bg-opacity:.9}.bg-opacity-100{--tw-bg-opacity:1}.bg-auto{background-size:auto}.bg-cover{background-size:cover}.bg-contain{background-size:contain}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-bottom{background-position:bottom}.bg-center{background-position:50%}.bg-left{background-position:0}.bg-left-bottom{background-position:0 100%}.bg-left-top{background-position:0 0}.bg-right{background-position:100%}.bg-right-bottom{background-position:100% 100%}.bg-right-top{background-position:100% 0}.bg-top{background-position:top}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.divider{align-self:stretch;border-color:currentColor;border-left-width:1px;border-top-width:1px;opacity:.1}.border-0{border-width:0}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-t{border-top-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-t-0{border-top-width:0}.border-r-0{border-right-width:0}.border-b-0{border-bottom-width:0}.border-l-0{border-left-width:0}.border-t-2{border-top-width:2px}.border-l-2{border-left-width:2px}.border-r-2{border-right-width:2px}.border-b-2{border-bottom-width:2px}.border-t-4{border-top-width:4px}.border-l-4{border-left-width:4px}.border-r-4{border-right-width:4px}.border-b-4{border-bottom-width:4px}.border-light{--tw-border-opacity:1;border-color:rgba(var(--color-border-light-rgb),var(--tw-border-opacity))}.border-strong{--tw-border-opacity:1;border-color:rgba(var(--color-border-strong-rgb),var(--tw-border-opacity))}.border-primary{--tw-border-opacity:1;border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity))}.border-secondary{--tw-border-opacity:1;border-color:rgba(var(--color-secondary-500-rgb),var(--tw-border-opacity))}.border-success{--tw-border-opacity:1;border-color:rgba(var(--color-success-500-rgb),var(--tw-border-opacity))}.border-warning{--tw-border-opacity:1;border-color:rgba(var(--color-warning-500-rgb),var(--tw-border-opacity))}.border-danger{--tw-border-opacity:1;border-color:rgba(var(--color-danger-500-rgb),var(--tw-border-opacity))}.border-important{--tw-border-opacity:1;border-color:rgba(var(--color-important-500-rgb),var(--tw-border-opacity))}.border-special{--tw-border-opacity:1;border-color:rgba(var(--color-special-500-rgb),var(--tw-border-opacity))}.border-gray-50{--tw-border-opacity:1;border-color:rgba(var(--color-gray-50-rgb),var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgba(var(--color-gray-100-rgb),var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(var(--color-gray-200-rgb),var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(var(--color-gray-300-rgb),var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity))}.border-gray,.border-gray-500{--tw-border-opacity:1;border-color:rgba(var(--color-gray-500-rgb),var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgba(var(--color-gray-600-rgb),var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity:1;border-color:rgba(var(--color-gray-700-rgb),var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgba(var(--color-gray-800-rgb),var(--tw-border-opacity))}.border-gray-900{--tw-border-opacity:1;border-color:rgba(var(--color-gray-900-rgb),var(--tw-border-opacity))}.border-gray-950{--tw-border-opacity:1;border-color:rgba(var(--color-gray-950-rgb),var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgba(var(--color-white-rgb),var(--tw-border-opacity))}.border-black{--tw-border-opacity:1;border-color:rgba(var(--color-black-rgb),var(--tw-border-opacity))}.border-canvas{--tw-border-opacity:1;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity))}.border-surface-light{--tw-border-opacity:1;border-color:rgba(var(--color-surface-light-rgb),var(--tw-border-opacity))}.border-surface{--tw-border-opacity:1;border-color:rgba(var(--color-surface-rgb),var(--tw-border-opacity))}.border-surface-strong{--tw-border-opacity:1;border-color:rgba(var(--color-surface-strong-rgb),var(--tw-border-opacity))}.border-inverse{--tw-border-opacity:1;border-color:rgba(var(--color-inverse-rgb),var(--tw-border-opacity))}.border-fore-in-light{--tw-border-opacity:1;border-color:rgba(var(--color-fore-in-light-rgb),var(--tw-border-opacity))}.border-fore-in-dark{--tw-border-opacity:1;border-color:rgba(var(--color-fore-in-dark-rgb),var(--tw-border-opacity))}.border-fore{--tw-border-opacity:1;border-color:rgba(var(--color-fore-rgb),var(--tw-border-opacity))}.border-focus{--tw-border-opacity:1;border-color:rgba(var(--color-focus-rgb),var(--tw-border-opacity))}.border-link{--tw-border-opacity:1;border-color:rgba(var(--color-link-rgb),var(--tw-border-opacity))}.border-link-hover{--tw-border-opacity:1;border-color:rgba(var(--color-link-hover-rgb),var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-current{border-color:currentColor}.border-inherit{border-color:inherit}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-opacity-0{--tw-border-opacity:0}.border-opacity-5{--tw-border-opacity:.05}.border-opacity-10{--tw-border-opacity:.1}.border-opacity-20{--tw-border-opacity:.2}.border-opacity-25{--tw-border-opacity:.25}.border-opacity-30{--tw-border-opacity:.3}.border-opacity-40{--tw-border-opacity:.4}.border-opacity-50{--tw-border-opacity:.5}.border-opacity-60{--tw-border-opacity:.6}.border-opacity-70{--tw-border-opacity:.7}.border-opacity-80{--tw-border-opacity:.8}.border-opacity-90{--tw-border-opacity:.9}.border-opacity-95{--tw-border-opacity:.95}.border-opacity-100{--tw-border-opacity:1}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.circle,.rounded-full{border-radius:var(--radius-full)}.rounded-l-none{border-bottom-left-radius:var(--radius-none);border-top-left-radius:var(--radius-none)}.rounded-t-none{border-top-left-radius:var(--radius-none)}.rounded-r-none,.rounded-t-none{border-top-right-radius:var(--radius-none)}.rounded-b-none,.rounded-r-none{border-bottom-right-radius:var(--radius-none)}.rounded-b-none{border-bottom-left-radius:var(--radius-none)}.rounded-br-none{border-bottom-right-radius:var(--radius-none)}.rounded-bl-none{border-bottom-left-radius:var(--radius-none)}.rounded-tr-none{border-top-right-radius:var(--radius-none)}.rounded-tl-none{border-top-left-radius:var(--radius-none)}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-border-light{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-light-rgb),var(--tw-ring-opacity))}.ring-border{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity))}.ring-border-strong{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-strong-rgb),var(--tw-ring-opacity))}.ring-light{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05}.ring-gray{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.1}.ring-dark{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.2}.ring-darker{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.3}.ring-darkest{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.5}.ring-primary{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-500-rgb),var(--tw-ring-opacity))}.ring-secondary{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-secondary-500-rgb),var(--tw-ring-opacity))}.ring-warning{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-warning-500-rgb),var(--tw-ring-opacity))}.ring-success{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-success-500-rgb),var(--tw-ring-opacity))}.ring-danger{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-danger-500-rgb),var(--tw-ring-opacity))}.ring-important{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-important-500-rgb),var(--tw-ring-opacity))}.ring-special{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-special-500-rgb),var(--tw-ring-opacity))}.ring-gray-50{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-50-rgb),var(--tw-ring-opacity))}.ring-gray-100{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-100-rgb),var(--tw-ring-opacity))}.ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-200-rgb),var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-300-rgb),var(--tw-ring-opacity))}.ring-gray-400{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-400-rgb),var(--tw-ring-opacity))}.ring-gray-500{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-500-rgb),var(--tw-ring-opacity))}.ring-gray-600{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-600-rgb),var(--tw-ring-opacity))}.ring-gray-700{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-700-rgb),var(--tw-ring-opacity))}.ring-gray-800{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-800-rgb),var(--tw-ring-opacity))}.ring-gray-900{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-900-rgb),var(--tw-ring-opacity))}.ring-gray-950{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-950-rgb),var(--tw-ring-opacity))}.ring-inverse{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity))}.ring-canvas{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-canvas-rgb),var(--tw-ring-opacity))}.ring-surface{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-rgb),var(--tw-ring-opacity))}.ring-fore{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-fore-rgb),var(--tw-ring-opacity))}.ring-transparent{--tw-ring-color:transparent}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-black-rgb),var(--tw-ring-opacity))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-white-rgb),var(--tw-ring-opacity))}.ring-inherit{--tw-ring-color:inherit}.ring-current{--tw-ring-color:currentColor}.ring-opacity-0{--tw-ring-opacity:0}.ring-opacity-5{--tw-ring-opacity:.05}.ring-opacity-10{--tw-ring-opacity:.1}.ring-opacity-20{--tw-ring-opacity:.2}.ring-opacity-30{--tw-ring-opacity:.3}.ring-opacity-40{--tw-ring-opacity:.4}.ring-opacity-50{--tw-ring-opacity:.5}.ring-opacity-60{--tw-ring-opacity:.6}.ring-opacity-70{--tw-ring-opacity:.7}.ring-opacity-80{--tw-ring-opacity:.8}.ring-opacity-90{--tw-ring-opacity:.9}.ring-opacity-100{--tw-ring-opacity:1}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-0,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-3{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-3,.ring-4{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-8{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-offset-0{--tw-ring-offset-width:0px}.ring-offset-1{--tw-ring-offset-width:1px}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-4{--tw-ring-offset-width:4px}.ring-offset-8{--tw-ring-offset-width:8px}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color)}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 2px 6px -1px rgba(0,0,0,.2),0 1px 4px -2px rgba(0,0,0,.15);--tw-shadow-colored:0 2px 6px -1px var(--tw-shadow-color),0 1px 4px -2px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 5px 15px -3px rgba(0,0,0,.2),0 2px 6px -4px rgba(0,0,0,.15);--tw-shadow-colored:0 5px 15px -3px var(--tw-shadow-color),0 2px 6px -4px var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color)}.shadow-2xl,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--tw-shadow-colored:0 10px 50px -10px var(--tw-shadow-color),0 8px 20px -10px var(--tw-shadow-color)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color)}.shadow-inner,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.muted{opacity:var(--opacity-muted)}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.blur-none{--tw-blur:blur(0)}.blur-none,.blur-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-sm{--tw-blur:blur(4px)}.blur{--tw-blur:blur(8px)}.blur,.blur-md{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-md{--tw-blur:blur(12px)}.blur-lg{--tw-blur:blur(16px)}.blur-lg,.blur-xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-xl{--tw-blur:blur(24px)}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter-none{filter:none!important}.drop-shadow-none{--tw-drop-shadow:drop-shadow(0 0 #0000)}.drop-shadow-none,.drop-shadow-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgba(0,0,0,.05))}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.drop-shadow-md{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}.drop-shadow-lg{--tw-drop-shadow:drop-shadow(0 10px 8px rgba(0,0,0,.04)) drop-shadow(0 4px 3px rgba(0,0,0,.1))}.drop-shadow-lg,.drop-shadow-xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-xl{--tw-drop-shadow:drop-shadow(0 20px 13px rgba(0,0,0,.03)) drop-shadow(0 8px 5px rgba(0,0,0,.08))}.drop-shadow-2xl{--tw-drop-shadow:drop-shadow(0 25px 25px rgba(0,0,0,.15));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-none{--tw-backdrop-blur:blur(0)}.backdrop-blur-none,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.backdrop-blur-lg,.backdrop-blur-xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(40px)}.backdrop-blur-2xl,.backdrop-blur-3xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(64px)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fade,.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{opacity:0;transition-duration:.15s;transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{--tw-scale-x:.9;--tw-scale-y:.9}.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-bottom{--tw-translate-y:25%}.fade-from-top{--tw-translate-y:-25%}.fade-from-left,.fade-from-top{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-left{--tw-translate-x:-25%}.fade-from-right{--tw-translate-x:25%}.fade-from-bottom.in,.fade-from-center.in,.fade-from-left.in,.fade-from-right,.fade-from-right.in,.fade-from-top.in,.fade.in{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-bottom.in,.fade-from-center.in,.fade-from-left.in,.fade-from-right.in,.fade-from-top.in,.fade.in{--tw-translate-x:0px;--tw-translate-y:0px;--tw-scale-x:1;--tw-scale-y:1;opacity:1}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-1000{transition-duration:1s}@keyframes -spin{to{transform:rotate(1turn)}}.animate-spin,.spin{animation:-spin 1s linear infinite}@keyframes -ping{75%,to{opacity:0;transform:scale(2)}}.animate-ping,.ping{animation:-ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes -pulse{50%{opacity:.5}}.animate-pulse,.pulse{animation:-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes -bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-bounce,.bounce{animation:-bounce 1s infinite}.scale-0{--tw-scale-x:0;--tw-scale-y:0}.scale-0,.scale-50{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-50{--tw-scale-x:.5;--tw-scale-y:.5}.scale-75{--tw-scale-x:.75;--tw-scale-y:.75}.scale-75,.scale-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-100,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.scale-105,.scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}.scale-125,.scale-150{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-150{--tw-scale-x:1.5;--tw-scale-y:1.5}.flip-x{--tw-scale-x:-1}.flip-x,.flip-y{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flip-y{--tw-scale-y:-1}.rotate-0{--tw-rotate:0deg}.rotate-0,.rotate-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-1{--tw-rotate:1deg}.rotate-2{--tw-rotate:2deg}.rotate-2,.rotate-3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-3{--tw-rotate:3deg}.rotate-6{--tw-rotate:6deg}.rotate-12,.rotate-6{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-12{--tw-rotate:12deg}.rotate-45{--tw-rotate:45deg}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.rotate-135{--tw-rotate:135deg}.rotate-135,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.rotate-270{--tw-rotate:270deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.basis-0{flex-basis:0px}.basis-1{flex-basis:0.25rem}.basis-2{flex-basis:0.5rem}.basis-3{flex-basis:0.75rem}.basis-4{flex-basis:1rem}.basis-5{flex-basis:1.25rem}.basis-6{flex-basis:1.5rem}.basis-7{flex-basis:1.75rem}.basis-8{flex-basis:2rem}.basis-9{flex-basis:2.25rem}.basis-10{flex-basis:2.5rem}.basis-11{flex-basis:2.75rem}.basis-12{flex-basis:3rem}.basis-14{flex-basis:3.5rem}.basis-16{flex-basis:4rem}.basis-20{flex-basis:5rem}.basis-24{flex-basis:6rem}.basis-28{flex-basis:7rem}.basis-32{flex-basis:8rem}.basis-36{flex-basis:9rem}.basis-40{flex-basis:10rem}.basis-44{flex-basis:11rem}.basis-48{flex-basis:12rem}.basis-52{flex-basis:13rem}.basis-56{flex-basis:14rem}.basis-60{flex-basis:15rem}.basis-64{flex-basis:16rem}.basis-72{flex-basis:18rem}.basis-80{flex-basis:20rem}.basis-96{flex-basis:24rem}.basis-auto{flex-basis:auto}.basis-px{flex-basis:1px}.basis-0\.5{flex-basis:0.125rem}.basis-1\.5{flex-basis:0.375rem}.basis-2\.5{flex-basis:0.625rem}.basis-3\.5{flex-basis:0.875rem}.basis-1\/2{flex-basis:50%}.basis-1\/3{flex-basis:33.333333%}.basis-2\/3{flex-basis:66.666667%}.basis-1\/4{flex-basis:25%}.basis-2\/4{flex-basis:50%}.basis-3\/4{flex-basis:75%}.basis-1\/5{flex-basis:20%}.basis-2\/5{flex-basis:40%}.basis-3\/5{flex-basis:60%}.basis-4\/5{flex-basis:80%}.basis-1\/6{flex-basis:16.666667%}.basis-2\/6{flex-basis:33.333333%}.basis-3\/6{flex-basis:50%}.basis-4\/6{flex-basis:66.666667%}.basis-5\/6{flex-basis:83.333333%}.basis-1\/12{flex-basis:8.333333%}.basis-2\/12{flex-basis:16.666667%}.basis-3\/12{flex-basis:25%}.basis-4\/12{flex-basis:33.333333%}.basis-5\/12{flex-basis:41.666667%}.basis-6\/12{flex-basis:50%}.basis-7\/12{flex-basis:58.333333%}.basis-8\/12{flex-basis:66.666667%}.basis-9\/12{flex-basis:75%}.basis-10\/12{flex-basis:83.333333%}.basis-11\/12{flex-basis:91.666667%}.basis-full{flex-basis:100%}.row{display:flex;flex-direction:row}.center,.col{display:flex;flex-direction:column}.center,.center-row{align-items:center;justify-content:center}.center-row{display:flex;flex-direction:row}.center-x,.center-y{align-items:center;display:flex}.center-y{flex-direction:column}.row-reverse{display:flex;flex-direction:row-reverse}.col-reverse{display:flex;flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.grow{flex-grow:1!important}.grow-0{flex-grow:0!important}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.order-first{order:-9999}.order-last{order:9999}.order-none{order:0}.gap-0{gap:0}.gap-x-0{-moz-column-gap:0;column-gap:0}.gap-y-0{row-gap:0}.gap-px{gap:1px}.gap-x-px{-moz-column-gap:1px;column-gap:1px}.gap-y-px{row-gap:1px}.gap-0\.5{gap:.125rem}.gap-x-0\.5{-moz-column-gap:.125rem;column-gap:.125rem}.gap-y-0\.5{row-gap:.125rem}.gap-3px{gap:3px}.gap-1{gap:.25rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-y-1{row-gap:.25rem}.gap-1\.5{gap:.375rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-y-1\.5{row-gap:.375rem}.gap-2{gap:.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-2{row-gap:.5rem}.gap-2\.5{gap:.625rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-y-2\.5{row-gap:.625rem}.gap-3{gap:.75rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-3{row-gap:.75rem}.gap-3\.5{gap:.875rem}.gap-x-3\.5{-moz-column-gap:.875rem;column-gap:.875rem}.gap-y-3\.5{row-gap:.875rem}.gap-4{gap:1rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-4{row-gap:1rem}.gap-5{gap:1.25rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-5{row-gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-6{row-gap:1.5rem}.gap-7{gap:1.75rem}.gap-x-7{-moz-column-gap:1.75rem;column-gap:1.75rem}.gap-y-7{row-gap:1.75rem}.gap-8{gap:2rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-8{row-gap:2rem}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}@font-face{font-display:fallback;font-family:D-DIN-PRO;font-weight:400;src:url(./fonts/D-DIN-PRO-400-Regular.otf)}@font-face{font-display:fallback;font-family:D-DIN-PRO;font-weight:500;src:url(./fonts/D-DIN-PRO-700-Bold.otf)}.num{font-family:D-DIN-PRO;font-weight:400}@font-face{font-display:fallback;font-family:Nunito;font-weight:400;src:url(./fonts/Nunito-Regular.ttf)}@font-face{font-display:fallback;font-family:Nunito;font-weight:700;src:url(./fonts/Nunito-bold.ttf)}@font-face{font-display:fallback;font-family:Nunito;font-weight:300;src:url(./fonts/Nunito-Light.ttf)}.font-brand{font-family:Nunito;font-weight:400} \ No newline at end of file +/*! tailwindcss v3.3.6 | MIT License | https://tailwindcss.com*/*,:after,:before{border-color:rgb(var(--color-gray-200-rgb));border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:-apple-system,Noto Sans,Helvetica Neue,Helvetica,Nimbus Sans L,Arial,Liberation Sans,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,Source Han Sans CN,Microsoft YaHei,Wenquanyi Micro Hei,WenQuanYi Zen Hei,ST Heiti,SimHei,WenQuanYi Zen Hei Sharp,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:rgb(var(--color-gray-400-rgb));opacity:1}input::placeholder,textarea::placeholder{color:rgb(var(--color-gray-400-rgb));opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}:root{--screen-2xl:1720px;--color-gray-50:#fcfdfe;--color-gray-100:#eff1f3;--color-gray-200:#ebedf3;--color-gray-300:#d2d6e5;--color-gray-400:#b2b9c5;--color-gray-500:#64758b;--color-gray-600:#4a577f;--color-gray-700:#3d4667;--color-gray-800:#353d57;--color-gray-900:#30394a;--color-gray-950:#0b0f18;--color-gray-50-rgb:252,253,254;--color-gray-100-rgb:239,241,243;--color-gray-200-rgb:235,237,243;--color-gray-300-rgb:210,214,229;--color-gray-400-rgb:178,185,197;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:74,87,127;--color-gray-700-rgb:61,70,103;--color-gray-800-rgb:53,61,87;--color-gray-900-rgb:48,57,74;--color-gray-950-rgb:11,15,24;--color-primary-50:#eef6ff;--color-primary-100:#d9eaff;--color-primary-200:#bcdcff;--color-primary-300:#8ec6ff;--color-primary-400:#59a5ff;--color-primary-500:#3883fa;--color-primary-600:#2b67e5;--color-primary-700:#144ce1;--color-primary-800:#173db6;--color-primary-900:#19388f;--color-primary-950:#142457;--color-primary-50-rgb:238,246,255;--color-primary-100-rgb:217,234,255;--color-primary-200-rgb:188,220,255;--color-primary-300-rgb:142,198,255;--color-primary-400-rgb:89,165,255;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:43,103,229;--color-primary-700-rgb:20,76,225;--color-primary-800-rgb:23,61,182;--color-primary-900-rgb:25,56,143;--color-primary-950-rgb:20,36,87;--color-secondary-50:#e7f6ff;--color-secondary-100:#cdecff;--color-secondary-200:#9bd9ff;--color-secondary-300:#77cbff;--color-secondary-400:#60c2ff;--color-secondary-500:#37b2fe;--color-secondary-600:#18a6fd;--color-secondary-700:#1099ed;--color-secondary-800:#078ada;--color-secondary-900:#046bab;--color-secondary-950:#062a4b;--color-secondary-50-rgb:231,246,255;--color-secondary-100-rgb:205,236,255;--color-secondary-200-rgb:155,217,255;--color-secondary-300-rgb:119,203,255;--color-secondary-400-rgb:96,194,255;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:24,166,253;--color-secondary-700-rgb:16,153,237;--color-secondary-800-rgb:7,138,218;--color-secondary-900-rgb:4,107,171;--color-secondary-950-rgb:6,42,75;--color-success-50:#ecfff8;--color-success-100:#d0f6e8;--color-success-200:#b1ecd6;--color-success-300:#7adfba;--color-success-400:#48d1a0;--color-success-500:#22c98d;--color-success-600:#0dbb7d;--color-success-700:#0ca76f;--color-success-800:#0e8d60;--color-success-900:#186c4e;--color-success-50-rgb:236,255,248;--color-success-100-rgb:208,246,232;--color-success-200-rgb:177,236,214;--color-success-300-rgb:122,223,186;--color-success-400-rgb:72,209,160;--color-success-500-rgb:34,201,141;--color-success-600-rgb:13,187,125;--color-success-700-rgb:12,167,111;--color-success-800-rgb:14,141,96;--color-success-900-rgb:24,108,78;--color-warning-50:#fff4ea;--color-warning-100:#ffecdb;--color-warning-200:#ffd2a9;--color-warning-300:#ffbc7e;--color-warning-400:#ffaf65;--color-warning-500:#ff9f46;--color-warning-600:#f38f19;--color-warning-700:#ed8307;--color-warning-800:#d17100;--color-warning-900:#af5f01;--color-warning-50-rgb:255,244,234;--color-warning-100-rgb:255,236,219;--color-warning-200-rgb:255,210,169;--color-warning-300-rgb:255,188,126;--color-warning-400-rgb:255,175,101;--color-warning-500-rgb:255,159,70;--color-warning-600-rgb:243,143,25;--color-warning-700-rgb:237,131,7;--color-warning-800-rgb:209,113,0;--color-warning-900-rgb:175,95,1;--color-danger-50:#ffebeb;--color-danger-100:#ffd5d5;--color-danger-200:#ffb1b1;--color-danger-300:#ff9292;--color-danger-400:#ff7c7c;--color-danger-500:#fc5959;--color-danger-600:#fb2b2b;--color-danger-700:#d91b1b;--color-danger-800:#ba1313;--color-danger-900:#a20606;--color-danger-50-rgb:255,235,235;--color-danger-100-rgb:255,213,213;--color-danger-200-rgb:255,177,177;--color-danger-300-rgb:255,146,146;--color-danger-400-rgb:255,124,124;--color-danger-500-rgb:252,89,89;--color-danger-600-rgb:251,43,43;--color-danger-700-rgb:217,27,27;--color-danger-800-rgb:186,19,19;--color-danger-900-rgb:162,6,6;--color-important-50:#fff8f5;--color-important-100:#ffe2d9;--color-important-200:#ffcebf;--color-important-300:#ffb29b;--color-important-400:#ff8c68;--color-important-500:#ff8058;--color-important-600:#ff6f42;--color-important-700:#ff4912;--color-important-800:#c83509;--color-important-900:#611700;--color-important-50-rgb:255,248,245;--color-important-100-rgb:255,226,217;--color-important-200-rgb:255,206,191;--color-important-300-rgb:255,178,155;--color-important-400-rgb:255,140,104;--color-important-500-rgb:255,128,88;--color-important-600-rgb:255,111,66;--color-important-700-rgb:255,73,18;--color-important-800-rgb:200,53,9;--color-important-900-rgb:97,23,0;--color-special-50:#efecfa;--color-special-100:#e4dff7;--color-special-200:#c4b6ff;--color-special-300:#a38cff;--color-special-400:#8a6ff5;--color-special-500:#8166ee;--color-special-600:#7055df;--color-special-700:#513baa;--color-special-800:#452da5;--color-special-900:#30216e;--color-special-50-rgb:239,236,250;--color-special-100-rgb:228,223,247;--color-special-200-rgb:196,182,255;--color-special-300-rgb:163,140,255;--color-special-400-rgb:138,111,245;--color-special-500-rgb:129,102,238;--color-special-600-rgb:112,85,223;--color-special-700-rgb:81,59,170;--color-special-800-rgb:69,45,165;--color-special-900-rgb:48,33,110;--color-inherit:inherit;--color-transparent:transparent;--color-current:currentColor;--color-black:#000;--color-white:#fff;--color-canvas:#fff;--color-canvas-light:#fff;--color-canvas-dark:#fcfdfe;--color-inverse:#000;--color-surface:#eff1f3;--color-surface-light:#fcfdfe;--color-surface-strong:#ebedf3;--color-fore:#30394a;--color-fore-in-light:#30394a;--color-fore-in-dark:#fff;--color-focus:#bcdcff;--color-link:#2b47a2;--color-link-hover:#144ce1;--color-link-visited:#6328a4;--color-link-active:#144ce1;--color-placeholder:#b2b9c5;--color-border:#ebedf3;--color-border-strong:#d2d6e5;--color-border-light:#eff1f3;--color-black-rgb:0,0,0;--color-white-rgb:255,255,255;--color-canvas-rgb:255,255,255;--color-canvas-light-rgb:255,255,255;--color-canvas-dark-rgb:252,253,254;--color-inverse-rgb:0,0,0;--color-surface-rgb:239,241,243;--color-surface-light-rgb:252,253,254;--color-surface-strong-rgb:235,237,243;--color-fore-rgb:48,57,74;--color-fore-in-light-rgb:48,57,74;--color-fore-in-dark-rgb:255,255,255;--color-focus-rgb:188,220,255;--color-link-rgb:43,71,162;--color-link-hover-rgb:20,76,225;--color-link-visited-rgb:99,40,164;--color-link-active-rgb:20,76,225;--color-placeholder-rgb:178,185,197;--color-border-rgb:235,237,243;--color-border-strong-rgb:210,214,229;--color-border-light-rgb:239,241,243;--radius-none:0px;--radius-sm:0.0625rem;--radius:0.125rem;--radius-md:0.25rem;--radius-lg:0.375rem;--radius-xl:0.5rem;--radius-2xl:0.75rem;--radius-3xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--shadow-md:0 2px 6px -1px rgba(0,0,0,.2),0 1px 4px -2px rgba(0,0,0,.15);--shadow-lg:0 5px 15px -3px rgba(0,0,0,.2),0 2px 6px -4px rgba(0,0,0,.15);--shadow-xl:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--shadow-2xl:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--shadow-inner:inset 0 2px 4px 0 rgba(0,0,0,.05);--shadow-none:none;--space:0.25rem;--font-size-root:16px;--font-size-page-lineHeight:1.5384615385}.dark{--color-gray-50:#0b0f18;--color-gray-100:#30394a;--color-gray-200:#353d57;--color-gray-300:#3d4667;--color-gray-400:#4a577f;--color-gray-500:#64758b;--color-gray-600:#b2b9c5;--color-gray-700:#d2d6e5;--color-gray-800:#ebedf3;--color-gray-900:#eff1f3;--color-gray-950:#fcfdfe;--color-gray-50-rgb:11,15,24;--color-gray-100-rgb:48,57,74;--color-gray-200-rgb:53,61,87;--color-gray-300-rgb:61,70,103;--color-gray-400-rgb:74,87,127;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:178,185,197;--color-gray-700-rgb:210,214,229;--color-gray-800-rgb:235,237,243;--color-gray-900-rgb:239,241,243;--color-gray-950-rgb:252,253,254;--color-primary-50:#142457;--color-primary-100:#19388f;--color-primary-200:#173db6;--color-primary-300:#144ce1;--color-primary-400:#2b67e5;--color-primary-500:#3883fa;--color-primary-600:#59a5ff;--color-primary-700:#8ec6ff;--color-primary-800:#bcdcff;--color-primary-900:#d9eaff;--color-primary-950:#eef6ff;--color-primary-50-rgb:20,36,87;--color-primary-100-rgb:25,56,143;--color-primary-200-rgb:23,61,182;--color-primary-300-rgb:20,76,225;--color-primary-400-rgb:43,103,229;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:89,165,255;--color-primary-700-rgb:142,198,255;--color-primary-800-rgb:188,220,255;--color-primary-900-rgb:217,234,255;--color-primary-950-rgb:238,246,255;--color-secondary-50:#062a4b;--color-secondary-100:#046bab;--color-secondary-200:#078ada;--color-secondary-300:#1099ed;--color-secondary-400:#18a6fd;--color-secondary-500:#37b2fe;--color-secondary-600:#60c2ff;--color-secondary-700:#77cbff;--color-secondary-800:#9bd9ff;--color-secondary-900:#cdecff;--color-secondary-950:#e7f6ff;--color-secondary-50-rgb:6,42,75;--color-secondary-100-rgb:4,107,171;--color-secondary-200-rgb:7,138,218;--color-secondary-300-rgb:16,153,237;--color-secondary-400-rgb:24,166,253;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:96,194,255;--color-secondary-700-rgb:119,203,255;--color-secondary-800-rgb:155,217,255;--color-secondary-900-rgb:205,236,255;--color-secondary-950-rgb:231,246,255;--color-success-50:#186c4e;--color-success-100:#0e8d60;--color-success-200:#0ca76f;--color-success-300:#0dbb7d;--color-success-400:#22c98d;--color-success-500:#48d1a0;--color-success-600:#7adfba;--color-success-700:#b1ecd6;--color-success-800:#d0f6e8;--color-success-900:#ecfff8;--color-success-50-rgb:24,108,78;--color-success-100-rgb:14,141,96;--color-success-200-rgb:12,167,111;--color-success-300-rgb:13,187,125;--color-success-400-rgb:34,201,141;--color-success-500-rgb:72,209,160;--color-success-600-rgb:122,223,186;--color-success-700-rgb:177,236,214;--color-success-800-rgb:208,246,232;--color-success-900-rgb:236,255,248;--color-warning-50:#af5f01;--color-warning-100:#d17100;--color-warning-200:#ed8307;--color-warning-300:#f38f19;--color-warning-400:#ff9f46;--color-warning-500:#ffaf65;--color-warning-600:#ffbc7e;--color-warning-700:#ffd2a9;--color-warning-800:#ffecdb;--color-warning-900:#fff4ea;--color-warning-50-rgb:175,95,1;--color-warning-100-rgb:209,113,0;--color-warning-200-rgb:237,131,7;--color-warning-300-rgb:243,143,25;--color-warning-400-rgb:255,159,70;--color-warning-500-rgb:255,175,101;--color-warning-600-rgb:255,188,126;--color-warning-700-rgb:255,210,169;--color-warning-800-rgb:255,236,219;--color-warning-900-rgb:255,244,234;--color-danger-50:#a20606;--color-danger-100:#ba1313;--color-danger-200:#d91b1b;--color-danger-300:#fb2b2b;--color-danger-400:#fc5959;--color-danger-500:#ff7c7c;--color-danger-600:#ff9292;--color-danger-700:#ffb1b1;--color-danger-800:#ffd5d5;--color-danger-900:#ffebeb;--color-danger-50-rgb:162,6,6;--color-danger-100-rgb:186,19,19;--color-danger-200-rgb:217,27,27;--color-danger-300-rgb:251,43,43;--color-danger-400-rgb:252,89,89;--color-danger-500-rgb:255,124,124;--color-danger-600-rgb:255,146,146;--color-danger-700-rgb:255,177,177;--color-danger-800-rgb:255,213,213;--color-danger-900-rgb:255,235,235;--color-important-50:#611700;--color-important-100:#c83509;--color-important-200:#ff4912;--color-important-300:#ff6f42;--color-important-400:#ff8058;--color-important-500:#ff8c68;--color-important-600:#ffb29b;--color-important-700:#ffcebf;--color-important-800:#ffe2d9;--color-important-900:#fff8f5;--color-important-50-rgb:97,23,0;--color-important-100-rgb:200,53,9;--color-important-200-rgb:255,73,18;--color-important-300-rgb:255,111,66;--color-important-400-rgb:255,128,88;--color-important-500-rgb:255,140,104;--color-important-600-rgb:255,178,155;--color-important-700-rgb:255,206,191;--color-important-800-rgb:255,226,217;--color-important-900-rgb:255,248,245;--color-special-50:#30216e;--color-special-100:#452da5;--color-special-200:#513baa;--color-special-300:#7055df;--color-special-400:#8166ee;--color-special-500:#8a6ff5;--color-special-600:#a38cff;--color-special-700:#c4b6ff;--color-special-800:#e4dff7;--color-special-900:#efecfa;--color-special-50-rgb:48,33,110;--color-special-100-rgb:69,45,165;--color-special-200-rgb:81,59,170;--color-special-300-rgb:112,85,223;--color-special-400-rgb:129,102,238;--color-special-500-rgb:138,111,245;--color-special-600-rgb:163,140,255;--color-special-700-rgb:196,182,255;--color-special-800-rgb:228,223,247;--color-special-900-rgb:239,236,250;--color-canvas:#0b0f18;--color-inverse:#fff;--color-surface:#353d57;--color-surface-light:#30394a;--color-surface-strong:#3d4667;--color-fore:#ebedf3;--color-focus:#173db6;--color-link:#59a5ff;--color-link-hover:#3883fa;--color-link-visited:#bcdcff;--color-link-active:#bcdcff;--color-placeholder:#4a577f;--color-border:#353d57;--color-border-strong:#3d4667;--color-border-light:#30394a;--color-canvas-rgb:11,15,24;--color-inverse-rgb:255,255,255;--color-surface-rgb:53,61,87;--color-surface-light-rgb:48,57,74;--color-surface-strong-rgb:61,70,103;--color-fore-rgb:235,237,243;--color-focus-rgb:23,61,182;--color-link-rgb:89,165,255;--color-link-hover-rgb:56,131,250;--color-link-visited-rgb:188,220,255;--color-link-active-rgb:188,220,255;--color-placeholder-rgb:74,87,127;--color-border-rgb:53,61,87;--color-border-strong-rgb:61,70,103;--color-border-light-rgb:48,57,74}.light-in-dark{--color-gray-50:#fcfdfe;--color-gray-100:#eff1f3;--color-gray-200:#ebedf3;--color-gray-300:#d2d6e5;--color-gray-400:#b2b9c5;--color-gray-500:#64758b;--color-gray-600:#4a577f;--color-gray-700:#3d4667;--color-gray-800:#353d57;--color-gray-900:#30394a;--color-gray-950:#0b0f18;--color-gray-50-rgb:252,253,254;--color-gray-100-rgb:239,241,243;--color-gray-200-rgb:235,237,243;--color-gray-300-rgb:210,214,229;--color-gray-400-rgb:178,185,197;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:74,87,127;--color-gray-700-rgb:61,70,103;--color-gray-800-rgb:53,61,87;--color-gray-900-rgb:48,57,74;--color-gray-950-rgb:11,15,24;--color-primary-50:#eef6ff;--color-primary-100:#d9eaff;--color-primary-200:#bcdcff;--color-primary-300:#8ec6ff;--color-primary-400:#59a5ff;--color-primary-500:#3883fa;--color-primary-600:#2b67e5;--color-primary-700:#144ce1;--color-primary-800:#173db6;--color-primary-900:#19388f;--color-primary-950:#142457;--color-primary-50-rgb:238,246,255;--color-primary-100-rgb:217,234,255;--color-primary-200-rgb:188,220,255;--color-primary-300-rgb:142,198,255;--color-primary-400-rgb:89,165,255;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:43,103,229;--color-primary-700-rgb:20,76,225;--color-primary-800-rgb:23,61,182;--color-primary-900-rgb:25,56,143;--color-primary-950-rgb:20,36,87;--color-secondary-50:#e7f6ff;--color-secondary-100:#cdecff;--color-secondary-200:#9bd9ff;--color-secondary-300:#77cbff;--color-secondary-400:#60c2ff;--color-secondary-500:#37b2fe;--color-secondary-600:#18a6fd;--color-secondary-700:#1099ed;--color-secondary-800:#078ada;--color-secondary-900:#046bab;--color-secondary-950:#062a4b;--color-secondary-50-rgb:231,246,255;--color-secondary-100-rgb:205,236,255;--color-secondary-200-rgb:155,217,255;--color-secondary-300-rgb:119,203,255;--color-secondary-400-rgb:96,194,255;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:24,166,253;--color-secondary-700-rgb:16,153,237;--color-secondary-800-rgb:7,138,218;--color-secondary-900-rgb:4,107,171;--color-secondary-950-rgb:6,42,75;--color-success-50:#ecfff8;--color-success-100:#d0f6e8;--color-success-200:#b1ecd6;--color-success-300:#7adfba;--color-success-400:#48d1a0;--color-success-500:#22c98d;--color-success-600:#0dbb7d;--color-success-700:#0ca76f;--color-success-800:#0e8d60;--color-success-900:#186c4e;--color-success-50-rgb:236,255,248;--color-success-100-rgb:208,246,232;--color-success-200-rgb:177,236,214;--color-success-300-rgb:122,223,186;--color-success-400-rgb:72,209,160;--color-success-500-rgb:34,201,141;--color-success-600-rgb:13,187,125;--color-success-700-rgb:12,167,111;--color-success-800-rgb:14,141,96;--color-success-900-rgb:24,108,78;--color-warning-50:#fff4ea;--color-warning-100:#ffecdb;--color-warning-200:#ffd2a9;--color-warning-300:#ffbc7e;--color-warning-400:#ffaf65;--color-warning-500:#ff9f46;--color-warning-600:#f38f19;--color-warning-700:#ed8307;--color-warning-800:#d17100;--color-warning-900:#af5f01;--color-warning-50-rgb:255,244,234;--color-warning-100-rgb:255,236,219;--color-warning-200-rgb:255,210,169;--color-warning-300-rgb:255,188,126;--color-warning-400-rgb:255,175,101;--color-warning-500-rgb:255,159,70;--color-warning-600-rgb:243,143,25;--color-warning-700-rgb:237,131,7;--color-warning-800-rgb:209,113,0;--color-warning-900-rgb:175,95,1;--color-danger-50:#ffebeb;--color-danger-100:#ffd5d5;--color-danger-200:#ffb1b1;--color-danger-300:#ff9292;--color-danger-400:#ff7c7c;--color-danger-500:#fc5959;--color-danger-600:#fb2b2b;--color-danger-700:#d91b1b;--color-danger-800:#ba1313;--color-danger-900:#a20606;--color-danger-50-rgb:255,235,235;--color-danger-100-rgb:255,213,213;--color-danger-200-rgb:255,177,177;--color-danger-300-rgb:255,146,146;--color-danger-400-rgb:255,124,124;--color-danger-500-rgb:252,89,89;--color-danger-600-rgb:251,43,43;--color-danger-700-rgb:217,27,27;--color-danger-800-rgb:186,19,19;--color-danger-900-rgb:162,6,6;--color-important-50:#fff8f5;--color-important-100:#ffe2d9;--color-important-200:#ffcebf;--color-important-300:#ffb29b;--color-important-400:#ff8c68;--color-important-500:#ff8058;--color-important-600:#ff6f42;--color-important-700:#ff4912;--color-important-800:#c83509;--color-important-900:#611700;--color-important-50-rgb:255,248,245;--color-important-100-rgb:255,226,217;--color-important-200-rgb:255,206,191;--color-important-300-rgb:255,178,155;--color-important-400-rgb:255,140,104;--color-important-500-rgb:255,128,88;--color-important-600-rgb:255,111,66;--color-important-700-rgb:255,73,18;--color-important-800-rgb:200,53,9;--color-important-900-rgb:97,23,0;--color-special-50:#efecfa;--color-special-100:#e4dff7;--color-special-200:#c4b6ff;--color-special-300:#a38cff;--color-special-400:#8a6ff5;--color-special-500:#8166ee;--color-special-600:#7055df;--color-special-700:#513baa;--color-special-800:#452da5;--color-special-900:#30216e;--color-special-50-rgb:239,236,250;--color-special-100-rgb:228,223,247;--color-special-200-rgb:196,182,255;--color-special-300-rgb:163,140,255;--color-special-400-rgb:138,111,245;--color-special-500-rgb:129,102,238;--color-special-600-rgb:112,85,223;--color-special-700-rgb:81,59,170;--color-special-800-rgb:69,45,165;--color-special-900-rgb:48,33,110;--color-inherit:inherit;--color-transparent:transparent;--color-current:currentColor;--color-black:#000;--color-white:#fff;--color-canvas:#fff;--color-canvas-light:#fff;--color-canvas-dark:#fcfdfe;--color-inverse:#000;--color-surface:#eff1f3;--color-surface-light:#fcfdfe;--color-surface-strong:#ebedf3;--color-fore:#30394a;--color-fore-in-light:#30394a;--color-fore-in-dark:#fff;--color-focus:#bcdcff;--color-link:#2b47a2;--color-link-hover:#144ce1;--color-link-visited:#6328a4;--color-link-active:#144ce1;--color-placeholder:#b2b9c5;--color-border:#ebedf3;--color-border-strong:#d2d6e5;--color-border-light:#eff1f3;--color-black-rgb:0,0,0;--color-white-rgb:255,255,255;--color-canvas-rgb:255,255,255;--color-canvas-light-rgb:255,255,255;--color-canvas-dark-rgb:252,253,254;--color-inverse-rgb:0,0,0;--color-surface-rgb:239,241,243;--color-surface-light-rgb:252,253,254;--color-surface-strong-rgb:235,237,243;--color-fore-rgb:48,57,74;--color-fore-in-light-rgb:48,57,74;--color-fore-in-dark-rgb:255,255,255;--color-focus-rgb:188,220,255;--color-link-rgb:43,71,162;--color-link-hover-rgb:20,76,225;--color-link-visited-rgb:99,40,164;--color-link-active-rgb:20,76,225;--color-placeholder-rgb:178,185,197;--color-border-rgb:235,237,243;--color-border-strong-rgb:210,214,229;--color-border-light-rgb:239,241,243}body{--btn-bg:var(--color-gray-50)}@media (prefers-color-scheme:dark){.dark-auto{--color-gray-50:#0b0f18;--color-gray-100:#30394a;--color-gray-200:#353d57;--color-gray-300:#3d4667;--color-gray-400:#4a577f;--color-gray-500:#64758b;--color-gray-600:#b2b9c5;--color-gray-700:#d2d6e5;--color-gray-800:#ebedf3;--color-gray-900:#eff1f3;--color-gray-950:#fcfdfe;--color-gray-50-rgb:11,15,24;--color-gray-100-rgb:48,57,74;--color-gray-200-rgb:53,61,87;--color-gray-300-rgb:61,70,103;--color-gray-400-rgb:74,87,127;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:178,185,197;--color-gray-700-rgb:210,214,229;--color-gray-800-rgb:235,237,243;--color-gray-900-rgb:239,241,243;--color-gray-950-rgb:252,253,254;--color-primary-50:#142457;--color-primary-100:#19388f;--color-primary-200:#173db6;--color-primary-300:#144ce1;--color-primary-400:#2b67e5;--color-primary-500:#3883fa;--color-primary-600:#59a5ff;--color-primary-700:#8ec6ff;--color-primary-800:#bcdcff;--color-primary-900:#d9eaff;--color-primary-950:#eef6ff;--color-primary-50-rgb:20,36,87;--color-primary-100-rgb:25,56,143;--color-primary-200-rgb:23,61,182;--color-primary-300-rgb:20,76,225;--color-primary-400-rgb:43,103,229;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:89,165,255;--color-primary-700-rgb:142,198,255;--color-primary-800-rgb:188,220,255;--color-primary-900-rgb:217,234,255;--color-primary-950-rgb:238,246,255;--color-secondary-50:#062a4b;--color-secondary-100:#046bab;--color-secondary-200:#078ada;--color-secondary-300:#1099ed;--color-secondary-400:#18a6fd;--color-secondary-500:#37b2fe;--color-secondary-600:#60c2ff;--color-secondary-700:#77cbff;--color-secondary-800:#9bd9ff;--color-secondary-900:#cdecff;--color-secondary-950:#e7f6ff;--color-secondary-50-rgb:6,42,75;--color-secondary-100-rgb:4,107,171;--color-secondary-200-rgb:7,138,218;--color-secondary-300-rgb:16,153,237;--color-secondary-400-rgb:24,166,253;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:96,194,255;--color-secondary-700-rgb:119,203,255;--color-secondary-800-rgb:155,217,255;--color-secondary-900-rgb:205,236,255;--color-secondary-950-rgb:231,246,255;--color-success-50:#186c4e;--color-success-100:#0e8d60;--color-success-200:#0ca76f;--color-success-300:#0dbb7d;--color-success-400:#22c98d;--color-success-500:#48d1a0;--color-success-600:#7adfba;--color-success-700:#b1ecd6;--color-success-800:#d0f6e8;--color-success-900:#ecfff8;--color-success-50-rgb:24,108,78;--color-success-100-rgb:14,141,96;--color-success-200-rgb:12,167,111;--color-success-300-rgb:13,187,125;--color-success-400-rgb:34,201,141;--color-success-500-rgb:72,209,160;--color-success-600-rgb:122,223,186;--color-success-700-rgb:177,236,214;--color-success-800-rgb:208,246,232;--color-success-900-rgb:236,255,248;--color-warning-50:#af5f01;--color-warning-100:#d17100;--color-warning-200:#ed8307;--color-warning-300:#f38f19;--color-warning-400:#ff9f46;--color-warning-500:#ffaf65;--color-warning-600:#ffbc7e;--color-warning-700:#ffd2a9;--color-warning-800:#ffecdb;--color-warning-900:#fff4ea;--color-warning-50-rgb:175,95,1;--color-warning-100-rgb:209,113,0;--color-warning-200-rgb:237,131,7;--color-warning-300-rgb:243,143,25;--color-warning-400-rgb:255,159,70;--color-warning-500-rgb:255,175,101;--color-warning-600-rgb:255,188,126;--color-warning-700-rgb:255,210,169;--color-warning-800-rgb:255,236,219;--color-warning-900-rgb:255,244,234;--color-danger-50:#a20606;--color-danger-100:#ba1313;--color-danger-200:#d91b1b;--color-danger-300:#fb2b2b;--color-danger-400:#fc5959;--color-danger-500:#ff7c7c;--color-danger-600:#ff9292;--color-danger-700:#ffb1b1;--color-danger-800:#ffd5d5;--color-danger-900:#ffebeb;--color-danger-50-rgb:162,6,6;--color-danger-100-rgb:186,19,19;--color-danger-200-rgb:217,27,27;--color-danger-300-rgb:251,43,43;--color-danger-400-rgb:252,89,89;--color-danger-500-rgb:255,124,124;--color-danger-600-rgb:255,146,146;--color-danger-700-rgb:255,177,177;--color-danger-800-rgb:255,213,213;--color-danger-900-rgb:255,235,235;--color-important-50:#611700;--color-important-100:#c83509;--color-important-200:#ff4912;--color-important-300:#ff6f42;--color-important-400:#ff8058;--color-important-500:#ff8c68;--color-important-600:#ffb29b;--color-important-700:#ffcebf;--color-important-800:#ffe2d9;--color-important-900:#fff8f5;--color-important-50-rgb:97,23,0;--color-important-100-rgb:200,53,9;--color-important-200-rgb:255,73,18;--color-important-300-rgb:255,111,66;--color-important-400-rgb:255,128,88;--color-important-500-rgb:255,140,104;--color-important-600-rgb:255,178,155;--color-important-700-rgb:255,206,191;--color-important-800-rgb:255,226,217;--color-important-900-rgb:255,248,245;--color-special-50:#30216e;--color-special-100:#452da5;--color-special-200:#513baa;--color-special-300:#7055df;--color-special-400:#8166ee;--color-special-500:#8a6ff5;--color-special-600:#a38cff;--color-special-700:#c4b6ff;--color-special-800:#e4dff7;--color-special-900:#efecfa;--color-special-50-rgb:48,33,110;--color-special-100-rgb:69,45,165;--color-special-200-rgb:81,59,170;--color-special-300-rgb:112,85,223;--color-special-400-rgb:129,102,238;--color-special-500-rgb:138,111,245;--color-special-600-rgb:163,140,255;--color-special-700-rgb:196,182,255;--color-special-800-rgb:228,223,247;--color-special-900-rgb:239,236,250;--color-canvas:#0b0f18;--color-inverse:#fff;--color-surface:#353d57;--color-surface-light:#30394a;--color-surface-strong:#3d4667;--color-fore:#ebedf3;--color-focus:#173db6;--color-link:#59a5ff;--color-link-hover:#3883fa;--color-link-visited:#bcdcff;--color-link-active:#bcdcff;--color-placeholder:#4a577f;--color-border:#353d57;--color-border-strong:#3d4667;--color-border-light:#30394a;--color-canvas-rgb:11,15,24;--color-inverse-rgb:255,255,255;--color-surface-rgb:53,61,87;--color-surface-light-rgb:48,57,74;--color-surface-strong-rgb:61,70,103;--color-fore-rgb:235,237,243;--color-focus-rgb:23,61,182;--color-link-rgb:89,165,255;--color-link-hover-rgb:56,131,250;--color-link-visited-rgb:188,220,255;--color-link-active-rgb:188,220,255;--color-placeholder-rgb:74,87,127;--color-border-rgb:53,61,87;--color-border-strong-rgb:61,70,103;--color-border-light-rgb:48,57,74}}*,:after,:before{--tw-border-opacity:1;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity))}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }html{font-size:var(--font-size-root)}body{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));font-size:.8125rem;line-height:1.5384615385}.dark,body{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}:root{--font-h1-size:2.25rem}a,a.disabled:hover{--tw-text-opacity:1;color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}a:hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}a:focus-visible{outline-color:rgb(var(--color-focus-rgb));outline-offset:2px;outline-width:2px}.code,code{--tw-text-opacity:1;background-color:rgba(var(--color-important-500-rgb),.1);border-radius:var(--radius);color:rgba(var(--color-important-500-rgb),var(--tw-text-opacity));padding-left:.25rem;padding-right:.25rem}pre{font-size:.75rem;line-height:1rem;overflow:auto;padding:.5rem}pre code{background-color:transparent;color:inherit;padding:0}samp,var{font-weight:700}.blockquote,blockquote{text-wrap:balance;border-left-width:4px;font-size:.875rem;line-height:1.3rem;padding-left:.75rem}.blockquote figcaption,blockquote figcaption{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{text-wrap:balance;font-weight:700;line-height:1.5}.h1,h1{font-size:1.75rem}.h2,h2{font-size:1.5rem}.h3,h3{font-size:1.25rem}.h4,h4{font-size:1rem}.h5,h5{font-size:.875rem}.h6,h6{font-size:.75rem}ul{list-style-type:disc}ol,ul{padding-left:1.5em}ol{list-style-type:decimal}dt{font-weight:700}dd{padding-left:2em}.article{font-size:.875rem;line-height:1.75}.article audio,.article blockquote,.article figure,.article h1,.article h2,.article h3,.article h4,.article img,.article ol,.article p,.article table,.article ul,.article video{margin-bottom:.5em;margin-top:.5em}.article hr{margin-bottom:1.5em;margin-top:1.5em}.article table{border-width:1px}.article td,.article th{border-bottom-width:1px;padding:.25rem .75rem}.article thead{background-color:var(--table-head-bg,var(--color-gray-100))}.article ol *,.article table *,.article ul *{margin-bottom:0;margin-top:0}.article pre{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));border-radius:var(--radius);border-width:1px}:root{--alert-bg:var(--color-surface)}.alert{align-items:center;background-color:var(--alert-bg);border-radius:var(--radius);display:flex;gap:.75rem;padding:.5rem .75rem}.alert-content{display:flex;flex:1 1 auto;flex-direction:column;gap:1rem}.alert-close{margin-bottom:-.375rem;margin-right:-.5rem;margin-top:-.375rem}.alert-link{color:inherit;font-weight:700}.alert-link:hover{color:inherit;text-decoration-line:underline}.alert-heading{font-weight:700;margin:0}.alert-text{flex:1 1 auto;white-space:pre-line}.alert-actions{align-items:center;display:flex;gap:.5rem}:root{--breadcrumb-divider:"/";--breadcrumb-divider-color:var(--color-gray-500);--breadcrumb-color-active:var(--color-gray-500)}.breadcrumb{display:flex;gap:1.25rem;list-style-type:none;padding-left:0}.breadcrumb>li{position:relative}.breadcrumb>li+li:before{color:var(--breadcrumb-divider-color);content:var(--breadcrumb-divider);display:block;left:-1.25rem;position:absolute;text-align:center;width:1.25rem}.breadcrumb>.active{color:var(--breadcrumb-color-active)}:root{--btn-radius:var(--radius);--btn-bg:var(--color-surface);--btn-border-color:var(--color-gray-300)}.btn{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--btn-border-color);--state-active-opacity:1;align-items:center;background-color:var(--btn-bg);border-radius:var(--btn-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:inline-flex;gap:.375rem;height:2rem;justify-content:center;padding-left:.75rem;padding-right:.75rem;white-space:nowrap}.btn,.btn-default:hover{color:inherit}.btn-link{--tw-text-opacity:1;--tw-ring-color:transparent;color:rgba(var(--color-link-rgb),var(--tw-text-opacity));text-decoration-line:underline;text-underline-offset:2px}.btn-link:visited{color:rgba(var(--color-link-visited-rgb),var(--tw-text-opacity))}.btn-link:hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}.btn-link{--btn-bg:transparent}.btn.size-xs,.size-xs>.btn{font-size:.75rem;height:1.25rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}.btn.size-sm,.size-sm>.btn{font-size:.75rem;height:1.5rem;line-height:1rem}.btn.size-md,.btn.size-sm,.size-md>.btn,.size-sm>.btn{padding-left:.5rem;padding-right:.5rem}.btn.size-md,.size-md>.btn{height:1.75rem}.btn.size-lg,.size-lg>.btn{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:1rem;padding-right:1rem}.btn.size-xl,.size-xl>.btn{font-size:1.125rem;height:3rem;line-height:1.75rem;padding-left:1.25rem;padding-right:1.25rem}.btn.square{aspect-ratio:1/1;gap:.125rem;padding-left:0;padding-right:0}.btn.btn-caret{padding-left:.25rem;padding-right:.25rem}.btn.btn-wide{min-width:80px}:root{--checkbox-size:12px;--checkbox-color:var(--color-primary-500)}.checkbox,.radio{align-items:center;cursor:pointer;display:flex;gap:.375rem;min-height:20px}.checkbox>input[type=checkbox],.radio>input[type=radio]{accent-color:rgb(var(--color-primary-500-rgb));border-radius:var(--radius-lg)}.checkbox-primary,.radio-primary{display:flex;gap:.375rem;min-height:20px;position:relative}.checkbox-primary>input[type=checkbox],.radio-primary>input[type=radio]{inset:0;opacity:0;position:absolute}.checkbox-primary>label,.radio-primary>label{cursor:pointer;padding-left:calc(var(--checkbox-size) + 8px);position:relative}.checkbox-primary>label:after,.checkbox-primary>label:before,.radio-primary>label:after,.radio-primary>label:before{--tw-content:"";content:var(--tw-content);display:block;height:var(--checkbox-size);left:0;position:absolute;top:calc((20px - var(--checkbox-size))/2);transition-duration:.15s;transition-property:transform,background-color,color,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--checkbox-size)}.checkbox-primary>label:before{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity));border-radius:var(--radius-sm);border-width:1px}.checkbox-primary>label:after{--tw-scale-x:.9;--tw-scale-y:.9;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTkgMjAuNDItNi4yMS02LjIxIDIuODMtMi44M0w5IDE0Ljc3bDkuODgtOS44OSAyLjgzIDIuODN6Ii8+PC9zdmc+");transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.radio-primary>label:before{--tw-border-opacity:1;border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity));border-radius:var(--radius-full);border-width:1px}.radio-primary>label:after{--checkbox-radio-size:calc(var(--checkbox-size)*2/3);background-color:var(--checkbox-color);border-radius:var(--radius-full);height:var(--checkbox-radio-size);left:calc((var(--checkbox-size) - var(--checkbox-radio-size))/2);opacity:0;top:calc((20px - var(--checkbox-radio-size))/2);width:var(--checkbox-radio-size)}.checkbox-primary>label:hover:before,.radio-primary>label:hover:before{border-color:var(--checkbox-color)}.checkbox-primary.focus>label:before,.checkbox-primary>input[type=checkbox]:focus+label:before,.radio-primary.focus>label:before,.radio-primary>input[type=radio]:focus+label:before{border-color:var(--checkbox-color);outline-color:rgb(var(--color-focus-rgb));outline-style:solid;outline-width:2px}.checkbox-primary.checked>label:before,.checkbox-primary>input[type=checkbox]:checked+label:before{background-color:var(--checkbox-color);border-color:var(--checkbox-color)}.radio-primary.checked>label:before,.radio-primary>input[type=radio]:checked+label:before{border-color:var(--checkbox-color)}.checkbox-primary.checked>label:after,.checkbox-primary>input[type=checkbox]:checked+label:after,.radio-primary.checked>label:after,.radio-primary>input[type=radio]:checked+label:after{opacity:1}.checkbox-primary.disabled>label,.checkbox-primary>input[type=checkbox]:disabled+label,.radio-primary.disabled>label,.radio-primary>input[type=radio]:disabled+label{--tw-grayscale:grayscale(100%);cursor:not-allowed;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:.7;pointer-events:none}.checkbox-primary.indeterminate>label:after,.checkbox-primary>input[type=checkbox]:indeterminate+label:after{--tw-border-opacity:1;background-color:var(--checkbox-color);background-image:none;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));border-width:calc((var(--checkbox-size) - 2px)/2) 2px;opacity:1}.check-list{flex-direction:column;gap:.5rem}.check-list,.check-list-inline{display:flex;padding-bottom:.375rem;padding-top:.375rem}.check-list-inline{align-items:center;-moz-column-gap:1rem;column-gap:1rem;flex-direction:row;flex-wrap:wrap;row-gap:.5rem}.switch{display:flex;gap:.375rem;min-height:20px;padding-left:2.5rem;position:relative}.switch>input{inset:0;opacity:0;position:absolute}.switch>label:after,.switch>label:before{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-border-strong-rgb),var(--tw-border-opacity));border-radius:var(--radius-full);border-width:1px;content:var(--tw-content);height:1rem;left:0;position:absolute;top:.125rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2rem}.switch>label:before{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer}.switch>label:hover:before{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity))}.switch>label:after{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);height:.75rem;left:.125rem;top:.25rem;width:.75rem}.switch>input:checked+label:before{background-color:var(--checkbox-color);border-color:rgba(var(--color-inverse-rgb),.2)}.switch>input:checked+label:after{color:var(--checkbox-color);left:18px}.switch.focus>label:before,.switch>input:focus+label:before{border-color:var(--checkbox-color);outline-color:rgb(var(--color-focus-rgb));outline-style:solid;outline-width:2px}.switch.disabled>label:before,.switch>input:disabled+label:before{--tw-grayscale:grayscale(100%);cursor:not-allowed;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:.7;pointer-events:none}:root{--form-control-radius:var(--radius);--form-control-border:var(--color-border);--form-control-focus:var(--color-primary-500);--form-control-disabled:var(--color-surface);--form-control-readonly:var(--color-surface)}.dark{--form-control-border:var(--color-border-strong)}input::-moz-placeholder,textarea::-moz-placeholder{--tw-placeholder-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-placeholder-opacity))}input::placeholder,textarea::placeholder{--tw-placeholder-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-placeholder-opacity))}.form-control{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--form-control-border);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--form-control-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:block;height:2rem;outline-color:transparent;outline-style:solid;outline-width:1px;padding:.25rem .5rem;transition-duration:.15s;transition-property:outline,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.form-control.focus,.form-control:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-focus-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.3;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline-color:var(--form-control-focus)}.form-control.disabled,.form-control[disabled]{background-color:var(--form-control-disabled);opacity:1}.form-control.readonly,.form-control[readonly]{background-color:var(--form-control-readonly)}select{-webkit-appearance:none;background-image:url("data:image/gif;base64,R0lGODlhBwAEAIAAAMvQ2////yH5BAEAAAEALAAAAAAHAAQAAAIIhA+BGWoNWSgAOw==");background-position:right 8px top 50%;background-repeat:no-repeat;background-size:8px auto;padding-right:1rem}select.form-control[multiple]{background-image:none}textarea.form-control{height:auto;min-height:32px}input[type=file].form-control{padding:.125rem}input[type=file].form-control::-webkit-file-upload-button{-webkit-appearance:none;appearance:none;border-radius:inherit;border-style:none;cursor:pointer;height:1.75rem;padding-left:.5rem;padding-right:.5rem}input[type=file].form-control::-webkit-file-upload-button:hover{background-color:rgba(var(--color-black-rgb),.1)}.has-error .form-control,.has-error.form-control{--tw-ring-color:rgba(var(--color-danger-500-rgb),0.6)}.has-error .form-control.focus,.has-error .form-control:focus,.has-error.form-control.focus,.has-error.form-control:focus{--tw-ring-color:rgba(var(--color-danger-500-rgb),0.1);outline-color:rgb(var(--color-danger-500-rgb))}.has-warning .form-control,.has-warning.form-control{--tw-ring-color:rgba(var(--color-warning-500-rgb),0.6)}.has-warning .form-control.focus,.has-warning .form-control:focus,.has-warning.form-control.focus,.has-warning.form-control:focus{--tw-ring-color:rgba(var(--color-warning-500-rgb),0.2);outline-color:rgb(var(--color-warning-500-rgb))}.has-success .form-control,.has-success.form-control{--tw-ring-color:rgba(var(--color-success-500-rgb),0.6)}.has-success .form-control.focus,.has-success .form-control:focus,.has-success.form-control.focus,.has-success.form-control:focus{--tw-ring-color:rgba(var(--color-success-500-rgb),0.2);outline-color:rgb(var(--color-success-500-rgb))}.form-control.size-sm,.size-sm>.form-control{font-size:.75rem;height:1.5rem;line-height:1rem;padding-left:.5rem;padding-right:.5rem}.form-control.size-md,.size-md>.form-control{height:1.75rem;padding-left:.5rem;padding-right:.5rem}.form-control.size-lg,.size-lg>.form-control{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:.75rem;padding-right:.75rem}:root{--input-group-addon-bg:var(--color-gray-50)}.input-group{align-items:stretch;display:flex}.input-group>.form-control,.input-group>.input-control{flex:1 1 auto;z-index:1}.input-group-addon{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--form-control-border);align-items:center;background-color:var(--input-group-addon-bg);border-radius:var(--form-control-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:flex;flex:none;height:2rem;padding-left:.5rem;padding-right:.5rem;z-index:0}.size-sm>.input-group-addon{font-size:.75rem;height:1.5rem;line-height:1rem;padding-left:.5rem;padding-right:.5rem}.size-lg>.input-group-addon{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:.75rem;padding-right:.75rem}.input-group-control{flex:1 1 auto}.input-group>*+*,.input-group>*+* .form-control{border-bottom-left-radius:var(--radius-none);border-top-left-radius:var(--radius-none)}.input-group>:not(:last-child),.input-group>:not(:last-child) .form-control{border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none)}.input-group .btn:focus-visible,.input-group .form-control:focus{z-index:2}:root{--form-tip-color:var(--color-gray-400);--form-label-color:var(--color-gray-700);--form-horz-label-width:6rem;--form-grid-gap-x:1.25rem;--form-grid-gap-y:.75rem}.form{flex-direction:column;gap:1rem}.form,.form-label{display:flex}.form-label{align-items:center;color:var(--form-label-color);flex-direction:row;gap:.25rem;height:2rem;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.form-label.required:after{--tw-translate-y:0.125rem;--tw-scale-x:1.25;--tw-scale-y:1.25;--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity));content:"*";display:inline-block;margin-left:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.no-required .form-label.required:after{display:none}.form-label-actions{flex:1 1 auto;justify-content:flex-end}.form-label>.checkbox-primary{margin-left:.75rem}.form-tip{color:var(--form-tip-color);display:block;margin-top:.25rem}.has-error .form-tip{--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity))}.has-warning .form-tip{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.has-success .form-tip{--tw-text-opacity:1;color:rgba(var(--color-success-500-rgb),var(--tw-text-opacity))}.form-actions{display:flex;flex-direction:row;gap:1rem;justify-content:center}.form-grid{--form-grid-gap-x-half:calc(var(--form-grid-gap-x)/2);--form-grid-gap-y-half:calc(var(--form-grid-gap-y)/2);align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:0}.form-grid .form-group{padding:var(--form-grid-gap-y-half) var(--form-grid-gap-x-half)}.form-grid .form-label.required:after{margin-left:0;order:-9999}.form-grid .form-label .checkbox{margin-left:.75rem;margin-right:.75rem}.form-grid .has-wrap-after:after{--tw-content:"";content:var(--tw-content);display:block;width:100%}.form-grid-wrap{width:100%}.form-grid-row{display:flex;flex-direction:row;padding-bottom:var(--form-grid-gap-y-half);padding-top:var(--form-grid-gap-y-half);position:relative;width:100%}.form-grid-col{padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half)}.form-grid .form-actions{gap:1.5rem;justify-content:center;padding:var(--form-grid-gap-y) var(--form-grid-gap-x-half);width:100%}.form-grid .form-actions.is-pinned{border-top-width:1px}.form-horz .form-group,.form-horz .form-row{align-items:flex-start;display:flex;flex-direction:row}.form-horz .form-group{flex-grow:1;flex-wrap:wrap;min-height:32px;min-width:0;padding-left:var(--form-horz-label-width);position:relative}.form-horz .form-group[class*=" w-"],.form-horz .form-group[class^=w-]{flex:none}.form-horz .form-group>*{min-width:0}.form-horz .form-group.no-label{padding-left:0}.form-horz .form-group.no-label>.check-list-inline{padding-left:1rem;padding-right:1rem}.form-horz .form-label{justify-content:flex-end;left:0;padding-left:1rem;padding-right:.5rem;position:absolute;top:0;width:var(--form-horz-label-width)}.form-horz .form-label.required:after{margin-left:0;order:-9999}.form-horz .form-tip{width:100%}.form-horz .form-tip,.form-horz .input-control,.form-horz .input-group{flex:1 1 auto}.form .form-group-wrapper,.form-horz .form-group-wrapper{flex:1 1 auto;min-width:0;width:100%;z-index:1}.form .form-group-wrapper.flex-none,.form-horz .form-group-wrapper.flex-none{flex:none}.form fieldset>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.form fieldset{padding-bottom:1rem;padding-left:1rem}.form-grid fieldset>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.form legend{--tw-border-opacity:1;border-bottom-color:rgba(var(--color-primary-100-rgb),var(--tw-border-opacity));border-bottom-width:1px;display:flex;justify-content:flex-start;margin-left:-1rem;width:100%;width:calc(100% + 1rem)}.form-title{align-items:center;background-color:rgba(var(--color-primary-50-rgb),.5);display:flex;font-weight:700;height:1.75rem;padding-left:.75rem;padding-right:.75rem}:root{--input-control-fix-width-sm:2rem;--input-control-fix-width:4.375rem;--input-control-fix-width-lg:6.75rem}.input-control{--input-control-prefix:8px;--input-control-suffix:8px;position:relative}.input-control-prefix,.input-control-suffix{align-items:center;display:flex;height:100%;left:0;opacity:.5;padding-left:.5rem;padding-right:.5rem;position:absolute;top:0;white-space:nowrap;width:var(--input-control-prefix);z-index:1}.input-control-suffix{justify-content:flex-end;left:auto;right:0;width:var(--input-control-suffix)}.form-control:focus+.input-control-prefix,.form-control:focus+.input-control-suffix{opacity:1}.input-control>.form-control{padding-left:var(--input-control-prefix);padding-right:var(--input-control-suffix)}.input-control>select.form-control{background-position-x:calc(100% - var(--input-control-suffix) - 8px);padding-right:calc(var(--input-control-suffix) + 20px)}.has-prefix{--input-control-prefix:var(--input-control-fix-width)}.has-suffix{--input-control-suffix:var(--input-control-fix-width)}.has-prefix-sm{--input-control-prefix:var(--input-control-fix-width-sm)}.has-suffix-sm{--input-control-suffix:var(--input-control-fix-width-sm)}.has-prefix-lg{--input-control-prefix:var(--input-control-fix-width-lg)}.has-suffix-lg{--input-control-suffix:var(--input-control-fix-width-lg)}.has-prefix-icon{--input-control-prefix:32px}.has-suffix-icon{--input-control-suffix:32px}.input-control.has-prefix-icon{--input-control-prefix:32px}.input-control.has-suffix-icon{--input-control-suffix:32px}.input-control.has-prefix-icon>.input-control-prefix,.input-control.has-suffix-icon>.input-control-suffix{justify-content:center;padding:0}.input-control.size-sm>.form-control,.input-control.size-sm>.input-control-prefix,.input-control.size-sm>.input-control-suffix{font-size:.75rem;line-height:1rem}.input-control.size-lg>.form-control,.input-control.size-lg>.input-control-prefix,.input-control.size-lg>.input-control-suffix{font-size:1rem;line-height:1.5rem}:root{--label-bg:var(--color-gray-50);--label-border-color:var(--color-gray-500);--label-color:var(--color-gray-500);--label-radius:var(--radius)}.label{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--label-border-color);align-items:center;background-color:var(--label-bg);border-radius:var(--label-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--label-color);display:inline-flex;font-size:.75rem;height:1.25rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem;white-space:pre-line}.label.size-lg{font-size:.8125rem;height:1.5rem;line-height:1.25rem;padding-left:.5rem;padding-right:.5rem}.label.size-sm{height:1rem}.label-dot{aspect-ratio:1/1;border-radius:var(--radius-full);height:.5rem;padding-left:0;padding-right:0}.caret,.caret-down,.caret-left,.caret-right,.caret-up{border:var(--caret-size,4px) solid transparent;display:inline-block;height:0;opacity:var(--caret-opacity,.5);width:0}:focus>.caret,:hover>.caret{opacity:inherit}.disabled .caret,.readonly .caret{opacity:var(--caret-opacity,.5)}.caret,.caret-down{border-bottom-width:0;border-top-color:currentColor}.caret-up{border-bottom-color:currentColor;border-top-width:0}.caret-right{border-left-color:currentColor;border-right-width:0}.caret-left{border-left-width:0;border-right-color:currentColor}.listitem{align-items:center;border-radius:var(--radius);display:flex;flex-direction:row;flex-wrap:nowrap;gap:.5rem;padding:.25rem}.listitem.selected{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.listitem.active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.item-actions,.item-avatar,.item-icon,.item-trailing,.item-trailing-icon{flex:none}.item-icon.icon-EMPTY{display:none}.item-subtitle{font-size:.75rem;line-height:1rem;opacity:.8}.item-content,.item-text{flex:1 1 auto;min-width:0}.item-leading,.item-trailing{align-items:center;display:flex;flex:none;gap:.5rem}.item-checkbox{margin-right:-.5rem}.item-content{align-items:center;display:flex;gap:.5rem}.multiline>.item-content{align-items:flex-start;flex-direction:column;gap:.25rem}.list{list-style-type:none;padding-left:0}.list-heading-inner .item-title{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-weight:700}.list.is-nested-sub{padding-left:var(--list-indent)}.is-nested-collapsed{display:none}.nested-toggle-icon{align-items:center;border-radius:var(--radius);display:flex;height:1rem;justify-content:center;margin-right:-.25rem;width:1rem}.magnifier{display:inline-block;height:1em;position:relative;width:1em}.magnifier:after,.magnifier:before{border-radius:var(--radius-full);content:"";display:block;position:absolute}.magnifier:before{border:1px solid;height:.75em;width:.75em}.magnifier:after{--tw-rotate:45deg;background-color:currentColor;height:1px;left:.55em;top:.7em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5em}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.search-box.compact.has-prefix-icon{--input-control-prefix:24px}.search-box.compact.has-suffix-icon{--input-control-suffix:24px}:root{--menu-bg:var(--color-canvas);--menu-active-bg:var(--color-primary-500);--menu-active-color:var(--color-canvas);--menu-selected-bg:var(--color-primary-50);--menu-selected-color:var(--color-primary-500);--menu-icon-opacity:.5;--menu-icon-margin:1.75rem;--menu-min-width:3rem;--menu-heading-color:var(--color-gray-500)}.menu{background:var(--menu-bg);max-width:var(--menu-max-width);min-width:var(--menu-min-width);padding:.5rem}.menu-wrapper{display:flex;flex-direction:column;min-height:0}.menu-wrapper>.menu{flex:1 1 auto;min-height:0;overflow:auto}.menu-item>.item-inner,.menu-item>a{align-items:center;border-radius:var(--radius);color:inherit;cursor:pointer;display:flex;gap:.5rem;justify-content:space-between;overflow:hidden;padding:.25rem .5rem;position:relative;text-overflow:ellipsis;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);white-space:nowrap}.menu-item>.selected{background:var(--menu-selected-bg);color:var(--menu-selected-color)}.menu-item>.active,.menu-item>a.hover,.menu-item>a:hover{background:var(--menu-active-bg);color:var(--menu-active-color)}.menu-item.disabled>a:hover,.menu-item>a.disabled:hover{background-color:inherit;color:inherit}.menu-item>a>.item-title{flex:1 1 auto}.menu>.divider{margin:.5rem .25rem}.menu-heading{align-items:center;color:var(--menu-heading-color);display:flex;font-size:.75rem;font-weight:700;height:2rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}.has-icons>.menu-item>a>.item-icon{align-items:center;display:flex;height:1rem;justify-content:center;opacity:var(--menu-icon-opacity);width:1rem}.menu-nested{--menu-indent:10px}.menu-nested .menu{background-color:transparent;margin-bottom:-.5rem;margin-left:var(--menu-indent);margin-top:-.5rem;padding-right:0}.menu-nested .menu-item>.item-inner{padding-left:0}.menu.compact .menu-item>a{padding-bottom:.125rem;padding-top:.125rem}.menu.compact .menu-heading{height:1.75rem}.search-menu-header{padding:.5rem .5rem .125rem}.search-menu-footer{padding:.125rem .5rem .5rem}.search-menu .item.is-not-match{display:none}.search-menu .item.is-not-match.has-match-child{display:list-item}.search-menu .item.is-not-match.has-match-child>.item-inner{opacity:.5;pointer-events:none}.search-menu.no-toggle-on-search .nested-toggle-icon{pointer-events:none}.search-menu .is-match-keys{font-weight:700;text-decoration-line:underline}.search-menu-no-match-hint{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));display:none;font-size:.75rem;line-height:1rem;padding:.5rem}.no-match-child .search-menu-no-match-hint{display:block}.no-match-child>.menu{display:none}:root{--alert-bg:var(--color-surface)}.alert{align-items:center;background-color:var(--alert-bg);border-radius:var(--radius);display:flex;gap:.75rem;padding:.5rem .75rem}.alert-content{display:flex;flex:1 1 auto;flex-direction:column;gap:1rem}.alert-close{margin-bottom:-.375rem;margin-right:-.5rem;margin-top:-.375rem}.alert-link{color:inherit;font-weight:700}.alert-link:hover{color:inherit;text-decoration-line:underline}.alert-heading{font-weight:700;margin:0}.alert-text{flex:1 1 auto;white-space:pre-line}.alert-actions{align-items:center;display:flex;gap:.5rem}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.messagers{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem;inset:0;justify-content:flex-end;padding:1rem;pointer-events:none;position:fixed;z-index:1900}.messagers-top-left,.messagers-top-right{justify-content:flex-start}.messagers-bottom-left,.messagers-top-left{align-items:flex-start}.messagers-bottom,.messagers-center,.messagers-top{align-items:center}.messagers-top,.messagers-top-left,.messagers-top-right{justify-content:flex-start}.messagers-center{justify-content:center}.messager{--tw-text-opacity:1;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-inverse-rgb),.8);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));pointer-events:auto;transition-duration:.3s}:root{--progress-radius:var(--radius);--progress-striped-size:40px;--progress-bg:var(--color-surface);--progress-bar-color:var(--color-primary-500)}.progress{background:var(--progress-bg);border-radius:var(--progress-radius);display:flex;height:1.25rem}.progress-bar{background:var(--progress-bar-color);height:100%}.progress-striped>.progress-bar{background-image:linear-gradient(45deg,rgba(var(--color-canvas-rgb),.15) 25%,transparent 25%,transparent 50%,rgba(var(--color-canvas-rgb),.15) 50%,rgba(var(--color-canvas-rgb),.15) 75%,transparent 75%,transparent);background-size:var(--progress-striped-size) var(--progress-striped-size)}.progress>.progress-bar:first-child{border-bottom-left-radius:inherit;border-top-left-radius:inherit}.progress>.progress-bar:last-child{border-bottom-right-radius:inherit;border-top-right-radius:inherit}.progress.active .progress-bar{animation:progress-bar-stripes 2s linear infinite}@keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}:root{--scrollbar-size:10px;--scrollbar-opacity:.6;--scrollbar-bg:rgba(var(--color-inverse-rgb),.15);--scrollbar-inset:inset 0 0 0 1px rgba(var(--color-inverse-rgb),.05);--scrollbar-bar-bg:rgba(var(--color-inverse-rgb),.3);--scrollbar-hover-bg:rgba(var(--color-inverse-rgb),.4);--scrollbar-drag-bg:rgba(var(--color-inverse-rgb),.5);--scrollbar-radius:var(--radius-sm);--scrollbar-duration:.7s}::-webkit-scrollbar{height:var(--scrollbar-size);width:var(--scrollbar-size)}::-webkit-scrollbar-track{box-shadow:var(--scrollbar-shadow);-webkit-transition:background-color var(--scrollbar-duration);transition:background-color var(--scrollbar-duration)}::-webkit-scrollbar-track:hover,:hover::-webkit-scrollbar-track{background:var(--scrollbar-bg)}::-webkit-scrollbar-thumb{background:var(--scrollbar-bar-bg);border-radius:var(--scrollbar-radius);min-height:var(--scrollbar-size);-webkit-transition:var(--scrollbar-duration);transition:var(--scrollbar-duration);-webkit-transition-property:background-color;transition-property:background-color}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover-bg)}::-webkit-scrollbar-thumb:active{background:var(--scrollbar-drag-bg)}.scrollbar-thin::-webkit-scrollbar{height:calc(var(--scrollbar-size)/2);width:calc(var(--scrollbar-size)/2)}.scrollbar-hover::-webkit-scrollbar,.scrollbar-hover::-webkit-scrollbar-thumb,.scrollbar-hover::-webkit-scrollbar-track{visibility:hidden}.scrollbar-hover:hover::-webkit-scrollbar,.scrollbar-hover:hover::-webkit-scrollbar-thumb,.scrollbar-hover:hover::-webkit-scrollbar-track{visibility:visible}@font-face{font-family:ZentaoIcon;font-style:normal;font-weight:400;src:url(./icons/ZentaoIcon.eot);src:url(./icons/ZentaoIcon.woff) format("woff"),url(./icons/ZentaoIcon.ttf) format("truetype"),url(./icons/ZentaoIcon.svg#regular) format("svg")}.icon,[class*=" icon-"],[class^=icon-]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-display:block;font-family:ZentaoIcon;font-size:14px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.icon:before{display:inline-block;min-width:14px;text-align:center}.icon-xs:before{font-size:.7em}.icon-sm:before{font-size:.8em}.icon-lg:before{font-size:1.25em;vertical-align:-10%}.icon-2x{font-size:28px}.icon-3x{font-size:42px}.icon-4x{font-size:56px}.icon-5x{font-size:70px}.icon-run{position:relative}.icon-run:before{opacity:.5}.icon-run:after{bottom:0;content:"\ea07";display:block;left:0;position:absolute;right:0;text-align:center;top:0}.icon-guihua:before{content:"\ea02"}.icon-memory:before{content:"\e9fd"}.icon-cpu:before{content:"\e9fe"}.icon-pause-pure:before{content:"\e9ff"}.icon-exclamation-pure:before{content:"\ea00"}.icon-zentao:before{content:"\e901"}.icon-zentao-alt:before{content:"\e900"}.icon-safe:before{content:"\ea06"}.icon-ai:before{content:"\e983"}.icon-kanban:before{content:"\e997"}.icon-college:before{content:"\e9c8"}.icon-home:before,.icon-menu-my:before{content:"\e97a"}.icon-program:before{content:"\e9aa"}.icon-lightbulb-alt:before,.icon-product:before{content:"\e98f"}.icon-project:before,.icon-rocket:before{content:"\e99c"}.icon-run:before{content:"\e9a9"}.icon-run-alt:before{content:"\ea07"}.icon-test:before{content:"\e956"}.icon-devops:before,.icon-infinite:before{content:"\e9a3"}.icon-doc:before,.icon-menu-doc:before{content:"\e99b"}.icon-statistic:before{content:"\e999"}.icon-group:before,.icon-menu-users:before,.icon-persons:before,.icon-team:before{content:"\e97e"}.icon-assets:before,.icon-diamond:before{content:"\e9ae"}.icon-flow:before{content:"\e994"}.icon-backend:before,.icon-cog-outline:before{content:"\ea05"}.icon-help:before{content:"\e968"}.icon-download:before,.icon-import:before{content:"\e904"}.icon-export:before{content:"\e905"}.icon-lightbulb:before{content:"\e91c"}.icon-close:before{content:"\e936"}.icon-check:before{content:"\e5ca"}.icon-minus:before{content:"\e926"}.icon-expand-alt:before{content:"\e6f1"}.icon-collapse-alt:before{content:"\e6f2"}.icon-fullscreen:before{content:"\e96b"}.icon-star-empty:before{content:"\e94a"}.icon-star:before{content:"\e94b"}.icon-exclamation-sign:before{content:"\e930"}.icon-info-sign:before{content:"\e9d5"}.icon-flag:before{content:"\e937"}.icon-check-circle:before{content:"\e92f"}.icon-check-sign:before{content:"\e938"}.icon-chart-pie:before{content:"\e95b"}.icon-history:before{content:"\e95f"}.icon-pencil:before{content:"\e254"}.icon-search:before{content:"\e928"}.icon-restart:before{content:"\e95e"}.icon-cog:before{content:"\e93b"}.icon-chart-line:before{content:"\e95c"}.icon-bar-chart:before,.icon-chart-bar:before{content:"\e95d"}.icon-exchange:before{content:"\e927"}.icon-severity:before{content:"\e973"}.icon-book:before{content:"\f02d"}.icon-treemap-alt:before{content:"\e971"}.icon-severity-solid:before{content:"\e902"}.icon-chat-line:before{content:"\e998"}.icon-stack:before{content:"\e943"}.icon-cube:before{content:"\e967"}.icon-minus-sign:before{content:"\e939"}.icon-bars-sign:before{content:"\e93a"}.icon-chat:before,.icon-message:before{content:"\e940"}.icon-more:before{content:"\e744"}.icon-certificate:before{content:"\f0a3"}.icon-bell:before{content:"\e7f5"}.icon-columns:before{content:"\f0db"}.icon-envelope-o:before{content:"\e92a"}.icon-unfold-all:before{content:"\e931"}.icon-fold-all:before{content:"\e932"}.icon-bars:before{content:"\e948"}.icon-cards-view:before{content:"\e949"}.icon-ellipsis-v:before{content:"\e5d4"}.icon-spinner-indicator:before{content:"\e982"}.icon-up-circle:before{content:"\e92b"}.icon-right-circle:before{content:"\e92c"}.icon-down-circle:before{content:"\e92d"}.icon-left-circle:before{content:"\e92e"}.icon-angle-double-right:before{content:"\f101"}.icon-angle-down:before{content:"\e313"}.icon-angle-left:before{content:"\e314"}.icon-angle-right:before{content:"\e315"}.icon-angle-top:before{content:"\e316"}.icon-first-page:before{content:"\e5dc"}.icon-last-page:before{content:"\e5dd"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-arrow-up:before{content:"\e923"}.icon-arrow-down:before{content:"\e924"}.icon-arrow-left:before{content:"\e952"}.icon-arrow-right:before{content:"\e93e"}.icon-chevron-left:before{content:"\e934"}.icon-chevron-right:before{content:"\e935"}.icon-chevron-double-up:before{content:"\e959"}.icon-chevron-double-down:before{content:"\e95a"}.icon-folder-account:before{content:"\e942"}.icon-folder-move:before{content:"\e960"}.icon-folder-plus:before{content:"\e961"}.icon-folder-upload:before{content:"\e962"}.icon-folder-star:before{content:"\e963"}.icon-folder-edit:before{content:"\e964"}.icon-folder-download:before{content:"\e965"}.icon-folder-outline:before{content:"\e966"}.icon-folder:before{content:"\e944"}.icon-folder-o:before{content:"\e945"}.icon-folder-open-o:before{content:"\e946"}.icon-folder-open:before{content:"\e947"}.icon-color:before{content:"\e93c"}.icon-paper-clip:before{content:"\e93d"}.icon-text:before{content:"\e929"}.icon-share:before{content:"\f064"}.icon-format-list-bulleted:before{content:"\e9a8"}.icon-format-bold:before{content:"\e953"}.icon-format-header-pound:before{content:"\e954"}.icon-format-italic:before{content:"\e955"}.icon-format-list-numbers:before{content:"\e969"}.icon-format-quote-close:before{content:"\e96a"}.icon-image:before{content:"\e96c"}.icon-table-large:before{content:"\e96d"}.icon-productplan:before{content:"\e9fc"}.icon-aiux:before{content:"\e99e"}.icon-qc:before{content:"\e986"}.icon-qc-q:before{content:"\e985"}.icon-qc-c:before{content:"\e987"}.icon-sonarqube:before{content:"\e9ba"}.icon-market:before{content:"\ea01"}.icon-ztool:before{content:"\e9c1"}.icon-contacts:before{content:"\e9c3"}.icon-chats:before{content:"\e9c4"}.icon-ops:before{content:"\e903"}.icon-menu-backend:before{content:"\e993"}.icon-feedback:before{content:"\e991"}.icon-oa:before{content:"\e9a1"}.icon-more-circle:before{content:"\e988"}.icon-controls:before{content:"\e995"}.icon-account:before{content:"\e992"}.icon-about:before,.icon-info:before{content:"\e996"}.icon-exclamation:before{content:"\e9fa"}.icon-exit:before{content:"\e99a"}.icon-theme:before{content:"\e9a0"}.icon-globe:before,.icon-lang:before{content:"\f0ac"}.icon-template:before{content:"\e9fb"}.icon-seal:before{content:"\e9f8"}.icon-menu-arrow-left:before{content:"\e9f0"}.icon-menu-arrow-right:before{content:"\e9f1"}.icon-add-directory:before{content:"\e9ef"}.icon-design:before{content:"\e9ec"}.icon-download-alt:before{content:"\e9ea"}.icon-blame:before{content:"\e9e0"}.icon-draft-edit:before{content:"\e9dc"}.icon-sub-review-user:before{content:"\e9db"}.icon-sub-review:before{content:"\e9df"}.icon-ztf:before{content:"\e9dd"}.icon-save:before{content:"\e9d8"}.icon-list-box:before{content:"\e9b4"}.icon-usecase:before{content:"\e99d"}.icon-code:before{content:"\e990"}.icon-summary:before{content:"\e9ad"}.icon-more-alt:before{content:"\e9a7"}.icon-customer:before{content:"\e9d9"}.icon-or:before{content:"\ea0b"}.icon-manager:before{content:"\ea0c"}.icon-target:before{content:"\ea0a"}.icon-ipd:before{content:"\e9f9"}.icon-wiki-lib:before{content:"\e9f5"}.icon-annex-lib:before{content:"\e9f6"}.icon-interface-lib:before{content:"\e9f7"}.icon-has-authority-pack:before{content:"\e9f3"}.icon-without-authority-pack:before{content:"\e9f4"}.icon-data-structure:before{content:"\e9f2"}.icon-waterfallplus:before{content:"\e9ed"}.icon-agileplus:before{content:"\e9ee"}.icon-horn:before{content:"\e9eb"}.icon-resume:before{content:"\e9e9"}.icon-mirror:before{content:"\e9e6"}.icon-remote:before{content:"\e9e7"}.icon-moon:before{content:"\e9e8"}.icon-ticket:before{content:"\e9e1"}.icon-gantt-alt:before{content:"\e9e2"}.icon-tree:before{content:"\e9c9"}.icon-list:before{content:"\e9cb"}.icon-gantt:before{content:"\e9cc"}.icon-group-view:before{content:"\e9cd"}.icon-inherit-space:before{content:"\e9c2"}.icon-card-archive:before{content:"\e9b8"}.icon-col-archive:before{content:"\e9b9"}.icon-col-add-right:before{content:"\e9bb"}.icon-col-add-left:before{content:"\e9bc"}.icon-col-split:before{content:"\e9bd"}.icon-waterfall:before{content:"\e9a4"}.icon-manual:before{content:"\e98d"}.icon-lane:before{content:"\e9b1"}.icon-unpinned:before{content:"\ea08"}.icon-pinned:before{content:"\ea09"}.icon-support-ticket:before{content:"\ea04"}.icon-snap-house:before{content:"\e9e3"}.icon-wrench:before{content:"\e9e4"}.icon-desktop:before{content:"\e9e5"}.icon-back-circle:before{content:"\e9da"}.icon-back:before{content:"\e9d3"}.icon-shield:before{content:"\e9ca"}.icon-meh:before{content:"\e9ce"}.icon-frown:before{content:"\e9cf"}.icon-smile:before{content:"\e9d0"}.icon-unlock-solid:before{content:"\e9d1"}.icon-lock-solid:before{content:"\e9d2"}.icon-ver:before{content:"\e9c6"}.icon-publish:before,.icon-send:before{content:"\e9c7"}.icon-tag:before{content:"\e9be"}.icon-tag-lock:before{content:"\e9bf"}.icon-code-fork:before{content:"\f126"}.icon-branch-lock:before{content:"\e9c0"}.icon-groups:before{content:"\e9af"}.icon-thumbs-up:before{content:"\f087"}.icon-thumbs-down:before{content:"\f088"}.icon-thumbs-up-solid:before{content:"\e9d6"}.icon-thumbs-down-solid:before{content:"\e9d7"}.icon-hash:before,.icon-version:before{content:"\e9ab"}.icon-p-square:before{content:"\e97b"}.icon-video-play:before{content:"\e97f"}.icon-plus-solid-circle:before{content:"\e974"}.icon-minuse-solid-circle:before{content:"\e9b6"}.icon-s:before{content:"\e975"}.icon-c:before{content:"\e976"}.icon-t:before{content:"\e977"}.icon-guide:before{content:"\e978"}.icon-todo:before{content:"\e979"}.icon-plus:before{content:"\e925"}.icon-side-left:before{content:"\e9b3"}.icon-side-right:before{content:"\e9b2"}.icon-fullscreen-exit:before{content:"\e972"}.icon-alert:before{content:"\e99f"}.icon-undo:before{content:"\e93f"}.icon-redo:before{content:"\e9d4"}.icon-swap:before{content:"\e9b0"}.icon-chat-solid:before{content:"\e9b5"}.icon-clock:before{content:"\e97c"}.icon-cost:before{content:"\e97d"}.icon-pencil-alt:before{content:"\e984"}.icon-size-height:before{content:"\e9c5"}.icon-upload-file:before{content:"\ea03"}.icon-file-log:before{content:"\e9de"}.icon-rich-text:before{content:"\e913"}.icon-markdown:before{content:"\e916"}.icon-excel:before{content:"\e933"}.icon-text-link:before{content:"\e94d"}.icon-ppt:before{content:"\e957"}.icon-word:before{content:"\e958"}.icon-doc-lib:before{content:"\e96f"}.icon-file-empty:before,.icon-file:before{content:"\f016"}.icon-file-text:before{content:"\f0f6"}.icon-file-alt:before{content:"\f15b"}.icon-file-text-alt:before{content:"\f15c"}.icon-file-pdf:before{content:"\f1c1"}.icon-file-word:before{content:"\f1c2"}.icon-file-excel:before{content:"\f1c3"}.icon-file-powerpoint:before{content:"\f1c4"}.icon-file-image:before{content:"\f1c5"}.icon-file-archive:before{content:"\f1c6"}.icon-file-audio:before{content:"\f1c7"}.icon-file-video:before{content:"\f1c8"}.icon-file-code:before{content:"\f1c9"}.icon-menu-collapse:before{content:"\e980"}.icon-menu-expand:before{content:"\e981"}.icon-estimate:before{content:"\e9ac"}.icon-sprint:before{content:"\e9a2"}.icon-shield-check:before{content:"\e9a5"}.icon-ok:before{content:"\e9a6"}.icon-printer:before{content:"\e906"}.icon-bullhorn:before{content:"\e910"}.icon-person:before{content:"\e941"}.icon-fields:before{content:"\e989"}.icon-trigger:before{content:"\e98a"}.icon-layout:before{content:"\e98b"}.icon-audit:before{content:"\e98c"}.icon-ban-circle:before,.icon-cancel:before{content:"\e951"}.icon-eye:before{content:"\e94e"}.icon-eye-off:before{content:"\e96e"}.icon-unlock:before{content:"\e94f"}.icon-lock:before,.icon-private:before{content:"\e950"}.icon-move:before{content:"\e94c"}.icon-hand-right:before{content:"\e907"}.icon-checked:before{content:"\e908"}.icon-off:before{content:"\e909"}.icon-play:before,.icon-start:before{content:"\e90a"}.icon-time:before{content:"\e90b"}.icon-edit:before{content:"\e90c"}.icon-trash:before{content:"\e90d"}.icon-link:before{content:"\e90e"}.icon-unlink:before{content:"\e90f"}.icon-bug:before{content:"\e911"}.icon-list-alt:before{content:"\e912"}.icon-alter:before,.icon-change:before{content:"\e970"}.icon-glasses:before,.icon-review:before{content:"\e914"}.icon-sitemap:before,.icon-testcase:before{content:"\e915"}.icon-pluses:before{content:"\e917"}.icon-report-list:before{content:"\e918"}.icon-active:before,.icon-magic:before{content:"\e919"}.icon-treemap:before{content:"\e91a"}.icon-confirm:before{content:"\e91b"}.icon-split:before{content:"\e98e"}.icon-calendar:before,.icon-delay:before{content:"\e91d"}.icon-pause:before{content:"\e91e"}.icon-ban:before{content:"\e91f"}.icon-plus-bold:before{content:"\e920"}.icon-copy:before{content:"\e921"}.icon-refresh:before{content:"\e922"}.icon-diff:before{content:"\e9b7"}.status-active,.status-asked,.status-normal,.status-unconfirmed,.status-wait{color:#313c52}.status-active.status-issue,.status-checking,.status-commenting,.status-confirmed,.status-doing{color:#ff6f42}.status-blocked,.status-hangup,.status-pause,.status-suspended{color:#b89664}.status-clarify,.status-draft{color:#8166ee}.status-noreview,.status-reviewing,.status-wait.status-testcase{color:#18a6fd}.status-active.status-risk,.status-changed,.status-changing,.status-fail{color:#fb2b2b}.status-checked,.status-done,.status-pass,.status-replied,.status-resolved,.status-success{color:#0dbb7d}.status-cancel,.status-canceled,.status-investigate{color:#838a9d}.status-canceled,.status-closed,.status-testtask.status-done{color:#9ea3b0}.pri,[class*=" pri-"],[class^=pri-]{--tw-text-opacity:1;border-color:currentColor;border-radius:var(--radius-full);border-width:1px;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity));display:inline-block;font-size:.75rem;height:1rem;line-height:1rem;line-height:14px;max-width:54px;min-width:16px;overflow:hidden;padding-left:.125rem;padding-right:.125rem;text-align:center;white-space:nowrap}.pri-1{color:rgb(255 73 18/var(--tw-text-opacity))}.pri-1,.pri-2{--tw-text-opacity:1}.pri-2{color:rgba(var(--color-warning-600-rgb),var(--tw-text-opacity))}.pri-3{color:rgb(59 130 246/var(--tw-text-opacity))}.pri-3,.pri-4{--tw-text-opacity:1}.pri-4{color:rgb(149 211 224/var(--tw-text-opacity))}.severity{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity));display:inline-block;font-size:.75rem;height:1rem;line-height:1rem;line-height:14px;max-width:54px;min-width:16px;overflow:hidden;padding-left:.125rem;padding-right:.125rem;position:relative;text-align:center;white-space:nowrap}.severity:before{--tw-content:attr(data-severity);background-color:currentColor;background-repeat:no-repeat;content:var(--tw-content);height:100%;left:0;-webkit-mask:url('data:image/svg+xml;charset=utf-8,');mask:url('data:image/svg+xml;charset=utf-8,');-webkit-mask-size:100% 100%;mask-size:100% 100%;position:absolute;top:0;width:100%;z-index:0}.severity:after,.severity:before{display:inline-block}.severity:after{--tw-scale-x:.75;--tw-scale-y:.75;content:attr(data-severity);line-height:20px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.severity[data-severity="1"]{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.severity[data-severity="2"]{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity))}.severity[data-severity="3"]{--tw-text-opacity:1;color:rgb(250 174 26/var(--tw-text-opacity))}.severity[data-severity="4"]{--tw-text-opacity:1;color:rgb(184 150 100/var(--tw-text-opacity))}.severity[data-severity="5"]{--tw-text-opacity:1;color:rgb(158 163 176/var(--tw-text-opacity))}.severity-label{background-color:transparent}.severity-label:after,.severity-label:before{--tw-content:none;content:var(--tw-content)}.risk-high{color:rgb(220 38 38/var(--tw-text-opacity))}.risk-high,.risk-middle{--tw-text-opacity:1}.risk-middle{color:rgb(234 179 8/var(--tw-text-opacity))}.nav-feature{--nav-active-bg:rgba(var(--color-primary-800-rgb),.07)}.nav-feature .nav-checkbox>.checkbox,.nav-feature .nav-checkbox>.checkbox-primary,.nav-feature .nav-item>a{align-items:center;border-radius:var(--radius);height:2rem;padding-left:.625rem;padding-right:.625rem}.nav-feature .nav-item>a>.icon{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.sortable-list .listitem{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));cursor:move;padding-left:.5rem;padding-right:.5rem}.sortable-list .sortable-ghost>.listitem{--tw-bg-opacity:1;background-color:rgba(var(--color-warning-50-rgb),var(--tw-bg-opacity))}:root{--avatar-radius:12.5%;--avatar-bg:var(--color-surface)}.avatar{align-items:center;aspect-ratio:1/1;background:var(--avatar-bg);border-radius:var(--avatar-radius);display:inline-flex;justify-content:center;overflow:hidden;width:2rem}.avatar>img{height:100%;margin:0;-o-object-fit:cover;object-fit:cover;width:100%}.avatar.size-xs{width:1.25rem}.avatar.size-sm,.avatar.size-xs{font-size:.75rem;line-height:1rem}.avatar.size-sm{width:1.5rem}.avatar.size-lg{font-size:1.5rem;line-height:2rem;width:3rem}.avatar.size-xl{font-size:2.25rem;line-height:2.5rem;width:5rem}.avatar-group{display:flex;gap:.625rem}.avatar-group>.avatar{box-shadow:0 0 0 1px var(--color-canvas)}.avatar-group>*+*{margin-left:-1rem}.avatar-group.size-xs>*+*{margin-left:-.75rem}.avatar-group.size-sm>*+*{margin-left:-.875rem}.avatar-group.size-lg>*+*{margin-left:-1.25rem}.avatar-group.size-xl>*+*{margin-left:-1.5rem}.btn-group{display:flex;gap:1px}.btn-group>.btn.active{z-index:1}.btn-group>.btn:focus-within,.btn-group>.btn:hover{z-index:2}.btn-group>.btn.disabled,.btn-group>.btn:disabled{z-index:-1}.btn-group>.btn:not(:first-child){border-bottom-left-radius:var(--radius-none);border-left-color:rgba(var(--color-canvas-rgb),.2);border-left-width:1px;border-top-left-radius:var(--radius-none)}.btn-group>.btn:not(:first-child):before{left:-1px}.btn-group>.btn:not(:last-child){border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none)}.color-picker-heading{align-items:center;font-weight:700;justify-content:space-between;margin-bottom:-.25rem;padding:.5rem}.color-picker-heading,.color-picker-row{display:flex;flex-direction:row}.color-picker-row{flex-wrap:wrap;gap:.5rem;padding:.75rem}.color-picker-item{--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);align-items:center;border-radius:var(--radius-full);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));display:flex;height:1.25rem;justify-content:center;padding-left:.125rem;padding-right:.125rem;width:1.25rem}.pick-container{left:0;pointer-events:none;position:absolute;top:0;z-index:1600}.pick-pop{display:flex;flex-direction:column;opacity:0;pointer-events:auto;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);z-index:1200}.pick-pop.in{opacity:1}.date-picker-menu{--menu-bg:none}.date-picker-menu .mini-calendar{margin-top:-.75rem}.date-pick-menu-month,.date-pick-menu-years{display:flex;flex-direction:row;flex-wrap:wrap;gap:1px;max-height:237px;padding-bottom:.5rem;padding-left:.5rem;padding-right:.5rem}.date-pick-menu-years>.btn{width:2.5rem}.date-pick-menu-years>.btn.is-current{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.date-pick-menu-month>.btn.active,.date-pick-menu-years>.btn.active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.date-pick-menu-month>.btn{width:3rem}.date-picker-menu-footer{border-top-width:1px;display:flex;flex-direction:row;padding:.25rem}.date-picker-menu-footer>.toolbar{flex:1 1 auto;justify-content:center}.date-picker-menu>.menu{border-right-width:1px}.date-picker-menu .menu-item{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.time-picker-menu{max-height:inherit}.time-picker-menu .menu-item>a{justify-content:center}.datetime-picker-menu{max-height:inherit}.mini-calendar{padding:.5rem}.mini-calendar>.row>.col{align-items:center;justify-content:center;width:14.2857%}.mini-calendar-day{height:2rem}.mini-calendar-day.disabled{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-200-rgb),var(--tw-bg-opacity));opacity:.5;pointer-events:none}.mini-calendar-day>.btn{width:2rem}.mini-calendar-day.is-weekend>.btn{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.mini-calendar-day.active>.btn,.mini-calendar-day.is-today>.btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.mini-calendar-day.selected>.btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.mini-calendar-day.is-out-month{opacity:.5}.i-time{border-color:currentColor;border-radius:50%;border-width:.08em;display:inline-block;height:1em;position:relative;width:1em}.i-time:after{--tw-content:"";border-color:currentColor;border-width:0 0 .08em .08em;content:var(--tw-content);height:.385em;left:.3846em;position:absolute;top:.08em;width:.385em}.chevron-down,.chevron-left,.chevron-right,.chevron-up{align-items:center;display:inline-flex;height:1em;justify-content:center;position:relative;width:1em}.chevron-down:before,.chevron-left:before,.chevron-right:before,.chevron-up:before{--tw-translate-y:-0.125rem;--tw-rotate:45deg;--tw-content:"";border-color:currentColor;border-width:0 1px 1px 0;content:var(--tw-content);display:block;height:.6923077em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform-origin:center;width:.6923077em}.chevron-left:before{--tw-translate-y:0px;--tw-translate-x:0.125rem;--tw-rotate:135deg}.chevron-left:before,.chevron-right:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-right:before{--tw-translate-y:0px;--tw-translate-x:-0.125rem;--tw-rotate:-45deg}.chevron-up:before{--tw-translate-y:0.125rem;--tw-rotate:225deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.i-calendar{border-radius:2px;display:inline-block;height:.79em;margin-top:.16em;position:relative;width:1em}.i-calendar,.i-calendar:after,.i-calendar:before{border-color:currentColor;border-width:.08em}.i-calendar:after,.i-calendar:before{--tw-content:"";content:var(--tw-content);position:absolute}.i-calendar:before{border-bottom-width:0;left:.15em;top:.307em;width:.6em}.i-calendar:after{border-bottom-width:0;border-top-width:0;height:.3077em;left:.17em;top:-.154em;width:.538em}:root{--modal-radius:var(--radius-lg);--modal-bg:rgba(var(--color-inverse-rgb),.4);--modal-sm:37.5rem;--modal-base:50rem;--modal-lg:75rem;--modal-xl:90rem}.modal{align-items:center;background-color:var(--modal-bg);display:none;inset:0;justify-content:center;overflow:hidden;position:fixed;z-index:1500}.modal.load-indicator:before{background-color:transparent;transition-property:none}.modal.loading:after{--tw-text-opacity:1;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.modal.loading .modal-dialog{opacity:0!important}.modal.show{display:flex}.modal-no-backdrop{background-color:transparent;pointer-events:none}.modal-hide{opacity:0!important}.modal-dialog{--tw-bg-opacity:0.9;--tw-shadow:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--tw-shadow-colored:0 10px 50px -10px var(--tw-shadow-color),0 8px 20px -10px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--modal-radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);pointer-events:auto;position:relative;width:var(--modal-base)}.modal-content,.modal-dialog{max-height:100vh}.modal-content{display:flex;flex-direction:column;height:100%}.loading>.modal-dialog>.modal-content{opacity:0;visibility:hidden}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.modal-header{align-items:center;display:flex;flex:none;flex-wrap:nowrap;gap:1rem;padding:1rem 1.25rem;position:relative}.modal-title{flex:1 1 auto;font-size:1rem;font-weight:700;line-height:1.5rem}.modal-actions{position:absolute;right:.75rem;top:.75rem;z-index:10}.modal-body{flex:1 1 auto;overflow:auto;padding:1rem 1.25rem}.modal-footer{align-items:center;display:flex;flex:none;gap:.75rem;padding:1.25rem}.modal-dialog.size-full,.modal-dialog[data-size=full]{height:100vh;width:100vw}.modal-dialog.size-sm,.modal-dialog[data-size=sm]{width:var(--modal-sm)}.modal-dialog.size-lg,.modal-dialog[data-size=lg]{width:var(--modal-lg)}.modal-dialog.size-xl,.modal-dialog[data-size=xl]{width:var(--modal-xl)}.modal-iframe{flex:1 1 auto;width:100%}.modal-trans{opacity:0;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.modal-trans.in{opacity:1}.modal-trans>.modal-dialog{--tw-scale-x:.95;--tw-scale-y:.95;opacity:0;transition-duration:.3s;transition-property:transform,opacity}.modal-trans.in>.modal-dialog,.modal-trans>.modal-dialog{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.modal-trans.in>.modal-dialog{--tw-scale-x:1;--tw-scale-y:1;opacity:1}.modal-alert .modal-footer{justify-content:flex-end}.modal-alert .modal-header{margin-bottom:-1rem}.modal-alert .modal-body{white-space:pre-line}.modal-alert .modal-actions+.modal-body{padding-right:3rem}.modal-alert .modal-header+.modal-actions+.modal-body{padding-right:1.25rem}.file-selector{gap:.5rem;width:100%}.file-selector,.file-selector-box{display:flex;flex-direction:column}.file-selector-box{--tw-border-opacity:1;--tw-ring-color:transparent;--state-color:rgba(var(--color-primary-500-rgb),.05);background-color:rgba(var(--color-primary-50-rgb),.3);border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-style:dashed;border-width:1px;gap:0;height:auto;justify-content:center;padding:.5rem .75rem;position:relative}.file-selector-box .text{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.is-dragging .file-selector-box{border-style:solid}.file-selector-btn{align-items:center;display:flex;gap:.5rem;position:relative}.is-dragging .file-selector-btn{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.file-selector-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;inset:0;opacity:.1;position:absolute}.file-selector-tip{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.file-selector.is-mode-button{flex-direction:column-reverse}.file-selector-list.is-empty{display:none}.file-selector-item .item-avatar{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.file-selector-item .item-subtitle{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.file-selector-item .item-content{flex:none;margin-right:.25rem;max-width:100%}.file-selector-item>.listitem:hover{background-color:rgba(var(--color-gray-500-rgb),.05)}.file-selector-item.is-renaming .item-avatar+.item-content{max-width:calc(100% - 32px)}.file-selector-rename-text{max-width:100%;min-width:100px;position:relative}.file-selector-rename-text>div{overflow:hidden;pointer-events:none;visibility:hidden;white-space:nowrap}.file-selector-rename-input{inset:0;position:absolute}.file-selector-grid{--tw-bg-opacity:1;align-items:flex-start;background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity));border-color:transparent;border-radius:var(--radius);border-width:1px;display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--file-selector-grid-gap);padding:.5rem}.file-selector-grid-item{height:var(--file-selector-grid-height)}.file-selector-grid-btn,.file-selector-grid-item{width:var(--file-selector-grid-width)}.file-selector-grid-btn{--tw-border-opacity:1;--tw-ring-color:transparent;--state-color:rgba(var(--color-primary-500-rgb),.05);aspect-ratio:1/1;background-color:rgba(var(--color-primary-50-rgb),.3);border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-style:dashed;border-width:1px;display:flex;flex-direction:column;gap:0;height:auto;justify-content:center;padding:.5rem}.file-selector-grid-btn .text{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.file-selector-grid-item .listitem{flex-direction:column;height:100%;padding:0;position:relative;width:100%}.file-selector-grid-item .item-avatar{--tw-text-opacity:1;border-radius:var(--radius);border-width:1px;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));width:100%}.file-selector-grid-item .item-avatar.has-icon>.icon{font-size:calc(var(--file-selector-grid-width)/2)}.file-selector-grid-item .item-content,.file-selector-grid-item .toolbar{aspect-ratio:1/1;left:0;position:absolute;right:0;top:0;width:100%}.file-selector-grid-item .item-title{bottom:-1.25rem;font-size:.75rem;left:0;line-height:1rem;overflow:hidden;position:absolute;right:1.5rem;white-space:nowrap}.file-selector-grid-item .item-subtitle{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);bottom:.25rem;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));font-size:.75rem;left:.25rem;line-height:1rem;opacity:0;padding-left:.25rem;padding-right:.25rem;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.file-selector-grid-item:hover .item-subtitle{opacity:1}.file-selector-grid-item .toolbar .btn[data-remove-file]{--tw-text-opacity:1;background-color:rgba(var(--color-inverse-rgb),.5);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));padding:.375rem;position:absolute;right:1px;top:1px}.file-selector-grid-item .toolbar .btn[data-rename-file]{bottom:-1.5rem;padding:0;position:absolute;right:0}.file-selector-grid .file-selector-rename{bottom:0;height:1.5rem;position:absolute;top:auto}.file-selector-grid .file-selector-rename-text{width:100%}.is-dragging .file-selector-grid{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-width:1px}:root{--nav-radius:var(--radius);--nav-active-color:var(--color-primary-500);--nav-active-bg:var(--color-inherit);--nav-heading-color:var(--color-gray-500)}.nav{list-style-type:none;padding-left:0}.nav,.nav-item{align-items:center;display:flex;position:relative}.nav-item{gap:.75rem}.nav-item>a{align-items:center;color:inherit;cursor:pointer;display:flex;gap:.25rem;height:2rem;justify-content:center;padding-left:1rem;padding-right:1rem}.nav-item>.active{background:var(--nav-active-bg);color:var(--nav-active-color);font-weight:700}.nav-item>.disabled{opacity:1}.nav-item>.disabled>*{opacity:var(--disabled-opacity)}.nav-divider,.nav>.divider{margin:.5rem}.nav-heading{align-items:center;color:var(--nav-heading-color);display:flex;font-weight:700;gap:.25rem;height:2rem;justify-content:center;padding-left:1rem;padding-right:1rem}.nav-space{flex:1 1 auto;width:1rem}.nav-primary>.nav-item{position:relative}.nav-primary>.nav-item:hover{z-index:10}.nav-primary>.nav-item+.nav-item{margin-left:-1px}.nav-primary>.nav-item>a{border-radius:var(--radius-none);border-width:1px}.nav-primary>.nav-item:first-child>a,.nav-primary>.nav-item:has(.nav-heading)+.nav-item>a{border-bottom-left-radius:var(--nav-radius);border-top-left-radius:var(--nav-radius)}.nav-primary>.nav-item:last-child>a{border-bottom-right-radius:var(--nav-radius);border-top-right-radius:var(--nav-radius)}.nav-primary>.nav-item>.active{--tw-text-opacity:1;background:var(--nav-active-color);border-color:var(--nav-active-color);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.nav-primary>.nav-divider{display:none}.nav-secondary>.nav-item>a{border-radius:var(--radius-none);position:relative}.nav-secondary>.nav-item>a:after{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:-2px;content:var(--tw-content);display:block;height:2px;left:0;position:absolute;right:0}.nav-secondary>.nav-item>.active:after{background-color:currentColor}.nav-secondary>.nav-divider{margin:0 0 0 -1px}.nav-tabs>.nav-item>a{border-bottom-left-radius:var(--radius-none);border-bottom-right-radius:var(--radius-none);position:relative}.nav-tabs>.nav-item>a:after{--tw-border-opacity:1;--tw-content:"";border-color:transparent;border-bottom-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-top-left-radius:inherit;border-top-right-radius:inherit;border-width:1px;content:var(--tw-content);display:block;inset:-1px;pointer-events:none;position:absolute}.nav-tabs>.nav-item>.active:after{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-bottom-color:transparent}.nav-tabs>.nav-divider{margin:0 0 0 -1px}.nav-pills>.nav-item>a{border-radius:var(--radius-full)}.nav-pills>.nav-item>.active{--tw-text-opacity:1;background:var(--nav-active-color);border-color:var(--nav-active-color);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.nav-stacked{flex-direction:column}.nav-stacked>.nav-item{width:100%}.nav-stacked>.nav-heading,.nav-stacked>.nav-item>a{justify-content:flex-start;width:100%}.nav-stacked>.nav-divider{height:1px;margin:.5rem 0;width:100%}.nav-primary.nav-stacked>.nav-item>a{height:2.5rem}.nav-primary.nav-stacked>.nav-item+.nav-item{margin-left:0;margin-top:-1px}.nav-primary.nav-stacked>.nav-item:first-child>a{border-bottom-left-radius:0;border-top-left-radius:var(--nav-radius);border-top-right-radius:var(--nav-radius)}.nav-primary.nav-stacked>.nav-item:last-child>a{border-bottom-left-radius:var(--nav-radius);border-bottom-right-radius:var(--nav-radius);border-top-right-radius:0}.nav-secondary.nav-stacked>.nav-item>a:after{--tw-bg-opacity:1;background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:0;height:100%;left:auto;right:0;top:0;width:2px}.nav-secondary.nav-stacked>.nav-item>.active:after{background-color:currentColor}.nav-secondary.nav-stacked>.nav-divider{margin:0}.nav-tabs.nav-stacked>.nav-item>a{border-bottom-left-radius:var(--nav-radius);border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none);position:relative}.nav-tabs.nav-stacked>.nav-item>a:after{--tw-border-opacity:1;border-bottom-color:transparent;border-bottom-left-radius:inherit;border-right-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-top-left-radius:inherit}.nav-tabs.nav-stacked>.nav-item>a.active:after{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-right-color:transparent}.nav-tabs.nav-stacked>.nav-divider{margin:0}.nav-pills.nav-stacked>.nav-item+.nav-item{margin-top:.25rem}.nav-justified>.nav-item:not(.flex-none,.nav-divider){flex:1 1 auto}.nav-justified>.nav-item>a{width:100%}.arrow,.arrow:before{background:inherit;height:calc(var(--arrow-size)*1.4142);position:absolute;width:calc(var(--arrow-size)*1.4142)}.arrow{--arrow-size:5px;visibility:hidden}.arrow:before{--tw-rotate:45deg;border:inherit;content:"";transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));visibility:visible}.arrow-top,.arrow-up{border-bottom:inherit;border-right:inherit;border-width:1px 0 0 1px;top:calc(1px - var(--arrow-size))}.white>.arrow-top,.white>.arrow-up{top:calc(0px - var(--arrow-size))}.arrow-bottom,.arrow-down{border-left:inherit;border-top:inherit;border-width:0 1px 1px 0;bottom:calc(1px - var(--arrow-size))}.white>.arrow-bottom,.white>.arrow-down{bottom:calc(0px - var(--arrow-size))}.arrow-left{border-right:inherit;border-top:inherit;border-width:0 0 1px 1px;left:calc(1px - var(--arrow-size))}.white>.arrow-left{left:calc(0px - var(--arrow-size))}.arrow-right{border-bottom:inherit;border-left:inherit;border-width:1px 1px 0 0;right:calc(1px - var(--arrow-size))}.white>.arrow-right{right:calc(0px - var(--arrow-size))}.popover{display:none;position:absolute;width:-moz-max-content;width:max-content}.popover.show{display:block}.popover-heading{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-top-left-radius:inherit;border-top-right-radius:inherit;display:flex;gap:1rem;height:2.5rem;justify-content:space-between;padding-left:.75rem;padding-right:.5rem}.popover-title{flex:1 1 auto;font-weight:700}.popover-content{padding:.75rem}.popover-arrow.arrow-top,.popover-arrow.arrow-up{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.popover>.btn-close{position:absolute;right:.5rem;top:.625rem}.btn-close+.popover-content{padding-right:3rem}.btn.with-popover-show{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.with-popover-show[data-pop-placement=top]>.caret{--tw-rotate:180deg}.with-popover-show[data-pop-placement=left]>.caret,.with-popover-show[data-pop-placement=top]>.caret{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.with-popover-show[data-pop-placement=left]>.caret{--tw-rotate:90deg}.with-popover-show[data-pop-placement=right]>.caret{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pager{align-items:center;display:flex;gap:.25rem;white-space:nowrap}.menu.pager-size-menu{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center}.menu.pager-size-menu>.menu-item>a{margin:.125rem}.pager .pager-goto-group>.form-control{width:3rem}.pager .pager-goto-group>.input-group-addon{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-300-rgb),var(--tw-border-opacity));border-width:1px}.pager>.pager-nav.active{--tw-text-opacity:1;box-shadow:0 0 0 1px var(--color-primary-500);color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.panel{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);overflow:hidden}.panel-heading{background-color:var(--panel-heading-bg);flex-wrap:nowrap;gap:1rem;justify-content:space-between;padding:.5rem 1rem}.panel-heading,.panel-title{align-items:center;display:flex}.panel-title{font-weight:700;gap:.5rem;margin:0}.panel-actions{align-items:center;display:flex;margin-right:-.5rem}.panel-body{padding:.75rem 1rem}.panel-footer{align-items:center;background-color:var(--panel-footer-bg);display:flex;gap:.5rem;padding:.5rem 1rem}.size-sm .panel-body,.size-sm .panel-footer,.size-sm .panel-heading{padding:.375rem .75rem}.size-lg .panel-body,.size-lg .panel-footer,.size-lg .panel-heading{padding:1rem 1.25rem}.picker{position:relative}.picker-select{align-items:center;gap:.25rem;justify-content:space-between}.picker-select,.picker-select.form-control{display:flex}.picker-select-placeholder{--tw-text-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-text-opacity));flex:1 1 auto}.picker-select-multi .picker-select-placeholder{padding-left:.25rem;padding-right:.25rem}.picker-single-selection{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap}.picker-deselect-btn{border-radius:var(--radius-full);padding:.25rem}.picker-deselect-btn:not(:hover){opacity:.7}.picker-select-multi.form-control{height:auto;min-height:32px;padding-left:.25rem}.picker-multi-selections{display:flex;flex-wrap:wrap;gap:.25rem;min-width:0}.picker-multi-selection{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);border-width:1px;display:flex;max-width:100%;padding-left:.5rem}.readonly .picker-multi-selection{padding-right:.5rem}.picker-multi-selection>.text{max-width:180px;overflow:clip;white-space:nowrap}.picker-menu-list{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border-style:none;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);flex:1 1 auto;min-height:0;overflow-y:auto}.picker-menu-search+.picker-menu-list.menu{margin-top:-.125rem;padding-top:0}.picker-menu-list.tree{padding:.5rem}.picker-menu .search-menu-footer{border-top-width:1px;padding-bottom:.25rem;padding-top:.25rem}.picker-search-input{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)!important;border-color:transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important;height:1.75rem;outline-width:0!important;padding-left:0;padding-right:2rem}.picker-search{flex:none;position:relative;width:100%}.picker-search>.magnifier{opacity:.5;position:absolute;right:0;top:.5rem}.picker-search-clear.btn{cursor:pointer;height:1.25rem;position:absolute;right:0;top:.25rem;width:1.25rem}.picker-search.is-inline{min-width:64px;width:4rem}.is-inline>.picker-search-input{height:1.25rem;min-width:64px;padding-left:.25rem;padding-right:.25rem}.picker-search-measure{height:0;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap}.split{display:flex;flex-direction:row}.split-vert{flex-direction:column}.split-cell{min-height:0;min-width:0}.has-animation>.split-cell{transition-duration:.15s;transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter{align-items:stretch;border-radius:var(--radius);cursor:col-resize;display:flex;flex:none;flex-direction:row;justify-content:center;position:relative}.gutter-vert{cursor:row-resize;flex-direction:column}.gutter:before{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));content:var(--tw-content);display:block;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter-horz:before{width:1px}.gutter-vert:before{height:1px}.gutter-horz:hover:before{width:75%}.gutter-vert:hover:before{height:75%}.gutter-resize-handler,.gutter-toggle{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-radius:var(--radius-lg);border-width:1px;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity));display:flex;height:1.75rem;justify-content:center;margin-top:-.875rem;position:absolute;top:50%;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.75rem}.gutter-toggle>span{--tw-scale-x:.75;--tw-scale-y:.75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter:hover .gutter-toggle{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-500-rgb),var(--tw-border-opacity));color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.gutter .gutter-toggle:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.is-last>.gutter-toggle{--tw-scale-x:-1}.is-first>.gutter-toggle,.is-last>.gutter-toggle{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.is-first>.gutter-toggle{--tw-scale-x:1}.gutter-vert .gutter-toggle{--tw-rotate:90deg;left:50%;margin-left:-.375rem;margin-top:0;top:auto}.gutter-vert .gutter-toggle,.gutter.is-next-collapsed>.gutter-toggle{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.gutter.is-next-collapsed>.gutter-toggle{--tw-scale-x:1}.gutter.is-prev-collapsed>.gutter-toggle{--tw-scale-x:-1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.gutter-horz.is-first.is-prev-collapsed{transform:translateX(calc(-1px - var(--split-gutter-size)/2))}.gutter-horz.is-last.is-next-collapsed{transform:translateX(calc(1px + var(--split-gutter-size)/2))}.gutter-vert.is-first.is-prev-collapsed{transform:translateY(calc(-1px - var(--split-gutter-size)/2))}.gutter-vert.is-last.is-next-collapsed{transform:translateY(calc(1px + var(--split-gutter-size)/2))}.gutter-resize-handler{background-color:transparent;border-width:0}.gutter-resize-handler:before{--tw-content:"";border-left-width:1px;border-right-width:1px;bottom:0;content:var(--tw-content);left:.25rem;position:absolute;right:.25rem;top:0}.sidebar{--gutter-width:1px;flex:none!important;position:relative}.has-sidebar-animation .sidebar{transition-duration:.15s;transition-property:width,margin;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sidebar-left.is-collapsed{margin-left:calc(var(--gutter-width)*-1)}.sidebar-right.is-collapsed{margin-right:calc(var(--gutter-width)*-1)}.sidebar.is-collapsed>*{display:none}.sidebar.is-collapsed>.sidebar-gutter{display:flex}.sidebar-gutter{bottom:0;left:100%;position:absolute;top:0;width:var(--gutter-width)}.sidebar-right>.sidebar-gutter{left:auto;right:100%}.is-collapsed>.gutter>.gutter-toggle>span{--tw-rotate:-180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sidebar-gutter:before{border-radius:var(--radius-full);opacity:0}.sidebar-gutter:hover:before{opacity:1;width:.5rem}.is-expanded .sidebar-gutter.gutter-border:before{opacity:1}.is-sidebar-resizing{cursor:col-resize}:root{--table-head-bg:var(--color-surface);--table-striped-color:var(--color-gray-50);--table-hover-color:rgba(var(--color-primary-500-rgb),.05);--table-border-color:var(--color-border)}.table{border-color:var(--table-border-color);width:100%}.table>thead{background-color:var(--table-head-bg)}.table>*>tr{border-bottom-width:1px}.table>*>tr>*{padding:.5rem 1rem}.table-striped>tbody>tr:nth-child(2n){background:var(--table-striped-color)}.table-hover>tbody>tr:hover>*{background:var(--table-hover-color)}.table.bordered>*>tr>*{border-width:1px}.table.borderless>*>tr,.table.borderless>*>tr>*{border-style:none}.condensed>*>tr>*{padding:.375rem .75rem}.table-fixed{table-layout:fixed}.table-fixed>*>tr>*{overflow:hidden;white-space:nowrap}.toolbar{align-items:center;display:flex;position:relative}.toolbar>.divider{--tw-bg-opacity:1;background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));margin:.5rem;width:1px}.toolbar-space{flex:1 1 auto;height:1px;width:1px}.toolbar>.dropdown.show{align-items:center;display:flex;position:relative}.tooltip{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-inverse-rgb),var(--tw-border-opacity));border-radius:var(--radius);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem;max-width:28rem;padding:.25rem .5rem;z-index:1800}.tooltip:not(.white)>.arrow{border-width:0}.tooltip.white>.arrow{border-color:inherit}.tooltip-has-title{--tw-bg-opacity:0.8;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding:.5rem .75rem .75rem}.tooltip-has-title>.arrow{opacity:.75}.tooltip-heading{align-items:center;display:flex;font-size:.8125rem;font-weight:700;gap:1rem;justify-content:space-between;line-height:1.25rem;padding:.25rem}.tooltip-heading>.btn-close{margin-right:-.25rem}.tooltip-content{padding:.25rem}.tree-item-inner{flex-direction:row;min-height:24px;padding-left:var(--list-nested-indent)}.tree-item-inner,.tree-toggle{align-items:center;display:flex}.tree-toggle{--caret-size:5px;--caret-opacity:.3;border-radius:var(--radius);flex:none;height:1rem;justify-content:center;margin-right:-.375rem;width:1rem}.tree-item-inner>.item-icon{opacity:.5;width:1rem}.tree-item-inner:hover>.item-icon{opacity:.8}.tree-item-inner.has-hover{border-radius:var(--radius)}.tree-item-inner .item-title:not(:hover),.tree-item-inner>a.item-title:not(:hover){color:inherit}.tree-item-inner>.toolbar{margin-left:1rem;opacity:.6}.tree-item-inner:hover>.toolbar{opacity:1}.tree-item>.active{background:var(--menu-active-bg);color:var(--menu-active-color)}.tree-item>.selected{background:var(--menu-selected-bg)}.tree-item>.selected .item-content{color:var(--menu-selected-color);font-weight:700}.tree.search-menu-on-top>.search-box{left:0;right:0}.upload .upload-tip{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.upload .draggable-area{background-color:rgba(var(--color-primary-50-rgb),.2);border:1px dashed var(--color-primary-300)}.upload .draggable-area.dragover{background-color:rgba(var(--color-primary-500-rgb),.1);border-style:solid}.upload .upload-tip{color:var(--color-slate-500)}.file-item>.img{height:120px;width:120px}.upload .file-item:hover .file-size{display:flex!important}.panel-body>.form-batch{margin-top:-1rem}.form-batch-container{overflow-y:auto}.form-batch-table{--table-head-bg:var(--color-canvas);min-width:100%;table-layout:fixed}.form-batch-table>*>tr>*{padding-left:.375rem;padding-right:.375rem;vertical-align:top}.form-batch-table>*>tr>th{text-align:left;vertical-align:middle}.form-batch-head[data-name=ACTIONS]{width:5rem}.form-batch-label{display:inline}.form-batch-control>textarea.form-control{height:2rem}.form-batch-btn+.btn{margin-left:.25rem}.form-batch-table>tbody[data-count="1"] .form-batch-btn[data-type=delete]{display:none}.form-batch-ditto{position:relative}.form-batch-ditto-btn{bottom:0;height:auto;opacity:.5;padding-left:.5rem;padding-right:.5rem;position:absolute!important;right:0;top:0}.form-batch-ditto-btn:after{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:.5rem;content:var(--tw-content);left:-1px;position:absolute;top:.5rem;width:1px}[data-ditto=on] .form-batch-ditto-btn{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));opacity:1}.form-batch-row-actions{padding-bottom:.75rem!important;padding-top:.75rem!important}.form-batch-ditto-control .form-control{padding-right:calc(var(--form-batch-ditto-width) + 8px)}.form-batch-ditto-control .input-control>.input-control-suffix{right:var(--form-batch-ditto-width)}.form-batch-ditto-control .input-control>.form-control{padding-right:calc(var(--form-batch-ditto-width) + var(--input-control-suffix))}.form-batch-ditto-control .pick-pri>.caret{right:calc(var(--form-batch-ditto-width) + 8px)}.dropmenu-btn{gap:.25rem;padding-left:.5rem;padding-right:.5rem}.dropmenu-btn>.text{max-width:180px;overflow:hidden}.dropmenu-btn>.is-leading{left:-.625rem;position:absolute}.dropmenu-btn>.is-caret{align-items:center;background-color:rgba(var(--color-canvas-rgb),.2);border-radius:var(--radius);display:flex;height:1rem;justify-content:center;width:1rem}.dropmenu-nav{border-bottom-width:1px;margin-left:.75rem;margin-right:.75rem;margin-top:.25rem}.has-search .dropmenu-nav{margin-top:-.5rem}.dropmenu-nav>.nav-secondary{gap:.5rem}.dropmenu-nav>.nav-secondary>.nav-item>a{border-radius:var(--radius);padding-left:.5rem;padding-right:.5rem}.dropmenu-nav>.nav-secondary>.nav-item>a:after{bottom:-1px;left:1rem;opacity:0;right:1rem}.dropmenu-nav>.nav-secondary>.nav-item>.active:after{left:.5rem;opacity:1;right:.5rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dropmenu-title{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;font-weight:700;line-height:1rem;margin-bottom:-.5rem;padding:.75rem}.dropmenu-list{min-height:0;overflow-x:hidden;overflow-y:auto;padding:.5rem .75rem}.dropmenu.loading>*{opacity:0}.dropmenu-item .tree-item-inner{border-radius:var(--radius);cursor:pointer;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dropmenu-item.is-item.active>.tree-item-inner{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.tree-item-inner.is-link:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.tree-item-inner.is-link:hover .item-content,.tree-item-inner.is-link:hover .item-trailing-icon{color:inherit}.tree-item-inner.is-toggle:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity))}.dropmenu-item+.tree-item{margin-top:.125rem}.dropmenu-item .is-match{font-weight:700;text-decoration-line:underline}.dropmenu-item .item-title,.dropmenu-item .label{overflow:hidden;white-space:nowrap}.dropmenu-item .item-content{padding-left:.375rem;padding-right:.375rem}.dropmenu-item *+.item-content{padding-left:0}.tree-item-inner.is-toggle .item-title{opacity:.6}.tree-item-inner.is-toggle:hover .item-title{opacity:1}.dropmenu-item-check{align-items:center;display:flex;flex:1 1 auto;justify-content:flex-end;padding-right:.5rem}.dropmenu-item .nested-toggle-icon.is-empty{width:.25rem}.dropmenu-item .item-icon{margin-right:-.25rem}:root{--form-control-border:var(--color-border-strong)}.checkbox-primary.disabled,.checkbox-primary.disabled>label,.checkbox-primary>input[type=checkbox]:disabled,.checkbox-primary>input[type=checkbox]:disabled+label,.radio-primary.disabled,.radio-primary.disabled>label,.radio-primary>input[type=radio],.radio-primary>input[type=radio]:disabled+label{filter:none!important}.checkbox-primary.disabled>label,.radio-primary.disabled>label{opacity:1}.form-actions{gap:1rem;justify-content:center}.form-actions .btn{min-width:96px}.form-control-static{min-height:32px;padding-bottom:.375rem;padding-top:.375rem}:root{--zt-panel-form-max-width:1000px}.size-sm{--zt-panel-form-max-width:800px}.size-lg{--zt-panel-form-max-width:1200px}.panel-body>.container,.panel-heading>.container{max-width:var(--panel-container-width);min-width:0;padding-left:var(--panel-container-padding);padding-right:var(--panel-container-padding)}.panel-heading>.container{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;gap:1rem;justify-content:space-between;min-height:48px}.panel-form{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius-md);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);margin-bottom:1rem;margin-left:auto;margin-right:auto;max-width:var(--zt-panel-form-max-width);min-width:var(--zt-panel-form-min-width);overflow:visible;padding-bottom:1rem;padding-left:1rem;padding-right:1rem}.panel-form .form-actions{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),.8);bottom:0;padding-bottom:1rem;padding-top:1rem;position:sticky;z-index:1}.panel-form .form-grid{margin:calc(0px - var(--form-grid-gap-y-half)) calc(0px - var(--form-grid-gap-x-half))}.panel-form-toolbar{padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half);width:100%}.panel-form-toolbar>.toolbar{gap:1rem;padding-bottom:.75rem;padding-top:.75rem}.panel-form-divider{margin-bottom:.75rem;margin-top:1rem;padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half);width:100%}.panel-form-divider:before{--tw-content:"";background-color:rgba(var(--color-border-rgb),.7);content:var(--tw-content);display:block;height:1px}.is-full .btn-full-form,.is-lite .btn-lite-form{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-300-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));z-index:1}.btn-toggle-fold:after{content:attr(data-expand-text)}.show-fold-items .btn-toggle-fold:after{content:attr(data-collapse-text)}.is-foldable,.is-full .full\:hidden,.is-full .lite\:visible,.is-full .panel-form-divider,.is-full .panel-form-toolbar,.is-lite .full\:visible,.is-lite .lite\:hidden{display:none}.is-foldable.is-pinned,.is-full .full\:visible,.is-full .is-foldable,.is-full .lite\:hidden,.is-lite .full\:hidden,.is-lite .lite\:visible,.show-fold-items .is-foldable{display:block}.is-full .full\:w-1\/2,.is-lite .lite\:w-1\/2{width:50%}.is-full .full\:w-1\/3,.is-lite .lite\:w-1\/3{width:33.333333%}.is-full .full\:w-2\/3,.is-lite .lite\:w-2\/3{width:66.666667%}.is-full .full\:w-1\/4,.is-lite .lite\:w-1\/4{width:25%}.is-full .full\:w-2\/4,.is-lite .lite\:w-2\/4{width:50%}.is-full .full\:w-3\/4,.is-lite .lite\:w-3\/4{width:75%}.is-full .full\:w-1\/5,.is-lite .lite\:w-1\/5{width:20%}.is-full .full\:w-2\/5,.is-lite .lite\:w-2\/5{width:40%}.is-full .full\:w-3\/5,.is-lite .lite\:w-3\/5{width:60%}.is-full .full\:w-4\/5,.is-lite .lite\:w-4\/5{width:80%}.is-full .full\:w-1\/6,.is-lite .lite\:w-1\/6{width:16.666667%}.is-full .full\:w-2\/6,.is-lite .lite\:w-2\/6{width:33.333333%}.is-full .full\:w-3\/6,.is-lite .lite\:w-3\/6{width:50%}.is-full .full\:w-4\/6,.is-lite .lite\:w-4\/6{width:66.666667%}.is-full .full\:w-5\/6,.is-lite .lite\:w-5\/6{width:83.333333%}.is-full .full\:w-full,.is-lite .lite\:w-full{width:100%}.page-form{--panel-container-width:960px;--panel-container-padding:20px;--zt-panel-form-max-width:1200px;--zt-panel-form-min-width:1040px;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-left:0;padding-right:0}.page-form .panel-heading{--tw-border-opacity:0.7;border-bottom-width:1px;padding:0}.page-form .panel-title{font-size:1rem;line-height:1.5rem}@media (max-width:1240px){.page-form{--zt-panel-form-max-width:1100px}}@media (max-width:1110px){.page-form{--zt-panel-form-max-width:1040px}}.modal-body>.page-form{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);margin:-1.5rem -2rem!important}.modal-body>.page-form>.panel-heading{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);padding-bottom:.375rem;padding-top:.375rem;position:sticky;top:-1.5rem;z-index:2}.modal-body>.panel-form .form-actions{bottom:-1.5rem}.dropdown.popover{display:flex;flex-direction:column;position:absolute;z-index:1200}.dropdown.show{display:flex}.dropdown-menu{--menu-min-width:7rem;--menu-max-width:20rem;display:none}.dropdown-menu.show,.menu-wrapper>.dropdown-menu,.show>.dropdown-menu{display:block}.dropdown>.dropdown-menu,.menu-wrapper .dropdown-menu{position:relative}.show>.menu-wrapper{display:flex}.dropdown>.menu-wrapper{height:100%}.dropdown>.menu-wrapper .menu-wrapper{position:absolute}.is-contextmenu .is-nested-show>a:not(:hover){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity))}.is-contextmenu .menu-item.is-nested>.item-inner>.nested-toggle-icon{position:absolute;right:.25rem;top:.375rem}.is-contextmenu .menu-nested .menu-item>.item-inner{padding-left:.5rem;padding-right:1.25rem}.is-contextmenu .menu-nested .menu-item>.item-inner>.item-content{overflow:hidden}.dropdown>.arrow{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.global-search-panel li:not(.order-first):hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.global-search-panel li a{width:100%}.global-search-panel li{cursor:pointer}.history-panel>.panel-heading+.panel-body{margin-top:-.75rem}.history-panel-action{position:relative}.history-panel-action:before{--tw-border-opacity:1;--tw-content:"";border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-left-width:1px;bottom:-.375rem;content:var(--tw-content);left:.5rem;position:absolute;top:22px}.col-reverse>.history-panel-action:first-child:before,.col>.history-panel-action:last-child:before{display:none}.history-panel-action>.item-inner{padding-left:1.5rem}.history-panel-action>.item-inner>.avatar{left:0;position:absolute;top:.375rem}.img-cutter{background:var(--color-gray-100);border:1px solid #ddd;margin-bottom:20px;padding:10px}.img-cutter .canvas{margin:0 auto;max-width:100%;min-width:50px;position:relative}.img-cutter .cover{inset:0;position:absolute;z-index:1}.img-cutter .controller{background:none;border:1px dashed hsla(0,0%,100%,.7);cursor:move;position:absolute;z-index:5}.img-cutter .control{background:#000;background:rgba(0,0,0,.6);border:1px solid hsla(0,0%,100%,.6);height:6px;position:absolute;width:6px}.img-cutter .control[data-type=left]{cursor:w-resize;left:-4px;margin-top:-3px;top:50%}.img-cutter .control[data-type=top]{cursor:n-resize;left:50%;margin-left:-3px;top:-4px}.img-cutter .control[data-type=right]{cursor:e-resize;margin-top:-3px;right:-4px;top:50%}.img-cutter .control[data-type=bottom]{bottom:-4px;cursor:s-resize;left:50%;margin-left:-3px}.img-cutter .control[data-type=top-left]{cursor:nw-resize;left:-4px;top:-4px}.img-cutter .control[data-type=top-right]{cursor:ne-resize;right:-4px;top:-4px}.img-cutter .control[data-type=bottom-left]{bottom:-4px;cursor:sw-resize;left:-4px}.img-cutter .control[data-type=bottom-right]{bottom:-4px;cursor:se-resize;right:-4px}.img-cutter .cliper{inset:0;position:absolute;z-index:2}.messager-fail .toolbar,.messager-success .toolbar{padding-left:72px}.modal-reconfirm .modal-body{font-size:14px;font-weight:700;padding:24px 32px}.modal-reconfirm .modal-footer{justify-content:center;padding:24px}.picker-deselect-btn{opacity:.6;transition-duration:.15s;transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.picker-multi-selection{cursor:pointer;padding-right:.5rem;position:relative}.picker-multi-selection .picker-deselect-btn{--tw-scale-x:0;--tw-scale-y:0;background-color:rgba(var(--color-surface-rgb),.8);inset:0;opacity:0;position:absolute}.picker-deselect-btn:hover,.picker-multi-selection .picker-deselect-btn,.picker-multi-selection:hover .picker-deselect-btn{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.picker-deselect-btn:hover,.picker-multi-selection:hover .picker-deselect-btn{--tw-scale-x:1;--tw-scale-y:1;--state-color:rgba(var(--color-surface-rgb),.9);opacity:1}.pick-pri{align-items:center;display:flex;flex-direction:row;justify-content:flex-start;position:relative}.pick-pri>.caret{position:absolute;right:.5rem;top:.875rem}.pick-pri .placeholder{--tw-text-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-text-opacity))}.pick-pri-list>.btn{justify-content:flex-start}.disabled.pick-pri,.disabled.pick-pri>*{filter:none}.search-form{--gutter-width:12px;padding-bottom:.75rem}.search-form-container{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);min-height:116px;position:relative}.is-simple .search-form-container{min-height:56px}.search-form-field td{padding:.375rem}.search-form .sidebar-right.is-collapsed{margin-right:-.375rem}.search-form-toggle.active,.show-search-form #featureBar .search-form-toggle{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.show-search-form #featureBar .search-form-toggle{font-weight:700}.is-simple .search-form-wrapper{display:flex}.is-simple .search-form-wrapper>.row{flex:1 1 auto}.is-simple .search-form-wrapper>.toolbar{flex:none;margin-top:0}.zinbar [data-hint]{position:relative}.zinbar [data-hint]:after{--tw-bg-opacity:0.9;--tw-text-opacity:1;--tw-content:attr(data-hint);background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);bottom:100%;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));content:var(--tw-content);display:block;font-size:.75rem;line-height:1rem;opacity:0;padding:.125rem .25rem;pointer-events:none;position:absolute;right:0;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);white-space:nowrap;z-index:50}.zinbar [data-hint]:hover:after{opacity:1}.zin-perf-btn-list .text-danger{color:var(--color-danger-400)}.zinbar .state{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.zinbar .state:active{--tw-scale-x:1.05;--tw-scale-y:1.05}.zinbar .state:active,.zinbar.collapse{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.zinbar.collapse{--tw-translate-x:100%}.zinbar.collapse>div{pointer-events:none}.zinbar{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.7s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);min-height:28px;position:relative;transition-duration:.15s;transition-property:shadow,border,color,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.card-content,.card-footer,.card-header,.card-heading{padding:.25rem .5rem}.card-heading{align-items:center;display:flex;gap:.5rem}.card-icon{opacity:.5}.card-header{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.card-content{display:flex;flex-direction:column;gap:.25rem}.card-actions{position:absolute;right:.125rem;top:.125rem}.card-actions+.card-heading{padding-right:1.75rem}.card-subtitle{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.card-list{--list-gap:.625rem;--list-count-per-row:1}.card-list,.card-list-item{padding:calc(var(--list-gap)/2)}.card-list-item{width:calc(100%/var(--list-count-per-row))}.card-grid{display:flex;flex-wrap:wrap}.card-grid .card{height:100%}.contextmenu{display:none}.contextmenu.show{display:block}.contextmenu .popup .popup,.contextmenu.popup{position:absolute}.more,.more-vert{margin:.5rem;position:relative}.more,.more-vert,.more-vert:after,.more-vert:before,.more:after,.more:before{background-color:currentColor;border-radius:var(--radius-full);height:.125rem;width:.125rem}.more-vert:after,.more-vert:before,.more:after,.more:before{--tw-content:"";content:var(--tw-content);display:block;left:-5px;position:absolute;top:0}.more-vert:after,.more:after{left:5px}.more-vert{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dashboard-blocks{position:relative}.dashboard-block-cell{position:absolute;transition-duration:.15s;transition-property:left,top;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-block{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);inset:.5rem;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-block.is-dragging{opacity:0;z-index:1600}.dashboard-block-header{align-items:center;border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);display:flex;flex-direction:row;justify-content:space-between;left:0;padding:.75rem;pointer-events:none;position:absolute;right:0;top:0;z-index:10}.dashboard-block-header>*{pointer-events:auto}.dashboard-block-title{font-size:.875rem;font-weight:700;line-height:1.3rem}.dashboard-block-body{inset:0;position:absolute}.dashboard-block-body>.panel{--tw-shadow:0px 6px 16px rgba(202,215,235,.25);display:flex;flex-direction:column;height:100%;width:100%}.dashboard-block-body .panel-heading{cursor:move;flex:none}.dashboard-block-body .panel-body{flex:1 1 auto;overflow-y:auto}.has-more-menu>.dashboard-block-body .panel-heading{padding-right:3rem}.dashboard-block-body .panel-title{font-size:.875rem;height:2rem;line-height:1.3rem}.dashboard-block-actions .btn{opacity:.6}.dashboard-block-actions .btn:hover{opacity:1}.dashboard-drop-shadow{position:absolute;transition-duration:.15s;transition-property:left,top;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-drop-shadow:before{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);--tw-content:"";background-color:rgba(var(--color-inverse-rgb),.05);border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);content:var(--tw-content);inset:.5rem;position:absolute}:root{--scrollbar-size:10px;--scrollbar-opacity:.6;--scrollbar-bg:rgba(var(--color-inverse-rgb),.15);--scrollbar-inset:inset 0 0 0 1px rgba(var(--color-inverse-rgb),.05);--scrollbar-bar-bg:rgba(var(--color-inverse-rgb),.3);--scrollbar-hover-bg:rgba(var(--color-inverse-rgb),.4);--scrollbar-drag-bg:rgba(var(--color-inverse-rgb),.5);--scrollbar-radius:var(--radius-sm);--scrollbar-duration:.7s}.scrollbar{background:var(--scrollbar-bg);box-shadow:var(--scrollbar-shadow);opacity:var(--scrollbar-opacity);position:absolute;transition-duration:.15s;transition-duration:var(--scrollbar-duration);transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.scrollbar-hover .scrollbar{opacity:0}.scrollbar-hover:hover .scrollbar{opacity:var(--scrollbar-opacity)}.scrollbar.is-dragging,.scrollbar:hover{opacity:1!important}.scrollbar-bar{background:var(--scrollbar-bar-bg);border-radius:var(--scrollbar-radius);position:absolute}.scrollbar-bar:hover{background:var(--scrollbar-hover-bg)}.is-dragging>.scrollbar-bar{background:var(--scrollbar-drag-bg)}.is-horz>.scrollbar-bar{height:100%;z-index:20}.is-vert>.scrollbar-bar{width:100%;z-index:20}:root{--dtable-checked-bg:var(--color-warning-50);--dtable-checked-bg-hover:var(--color-warning-100);--dtable-checked-border:var(--color-border-strong)}.dtable-cell.is-checked,.dtable-striped .dtable-cell.is-odd-row.is-checked{background-color:var(--dtable-checked-bg)}.checkbox-primary.dtable-checkbox{margin-right:-.375rem}.dtable-checkbox{order:-5}.dtable-hover-col .dtable-cell.is-hover-col.is-checked,.dtable-hover-row .dtable-cell.is-hover-row.is-checked{background-color:var(--dtable-checked-bg-hover)}.dtable-cell.is-checked{--dtable-border-color:var(--dtable-checked-border)}.dtable-check-info{flex-shrink:1;margin-right:.5rem;overflow:hidden;white-space:nowrap}:root{--toggle-icon-size:calc(var(--font-size-root)*3/4 + 1px)}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-color:currentColor;border-width:1px;display:block;opacity:.5;position:relative}.toggle-icon-collapse:hover,.toggle-icon-expand:hover,.toggle-icon:hover{opacity:.9}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-radius:inherit;height:var(--toggle-icon-size);width:var(--toggle-icon-size)}.is-collapsed .toggle-icon:after,.is-collapsed .toggle-icon:before,.is-expanded .toggle-icon:before,.toggle-icon-collapse:after,.toggle-icon-collapse:before,.toggle-icon-expand:before{background-color:currentColor;content:" ";display:block;height:1px;left:2px;position:absolute;right:2px;top:calc((var(--toggle-icon-size) - 3px)/2)}.is-collapsed .toggle-icon:after,.toggle-icon-collapse:after{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:root{--dtable-nt-size:calc(var(--font-size-root)*3/4 + 1px)}.dtable-nested-indent{flex:none;margin-right:-.25rem;order:-100}.dtable-nested-toggle{align-items:center;border-radius:var(--radius-sm);display:flex;flex:none;height:1.25rem;justify-content:center;margin-left:-.25rem;order:-6;width:1.25rem}.dtable-nested-toggle.is-no-child{margin-right:-.25rem;opacity:0;pointer-events:none}.dtable-header-group{align-items:center;background:var(--dtable-header-bg);cursor:default;display:flex;justify-content:center;left:0;position:absolute;top:1px;z-index:30}.dtable-bordered .dtable-header-group{border-bottom:1px solid var(--dtable-border-color);border-left:1px solid var(--dtable-border-color)}.dtable-header-as-group{contain:style;content-visibility:visible;overflow:visible!important}.dtable-sorting{cursor:move}.dtable-cell.is-sorting-from{background-color:var(--dtable-bg);z-index:20}.dtable-cell.is-sorting-from:before{border-top-width:1px}.dtable-sorting .dtable-cell.is-sorting-after{--tw-translate-y:-100%}.dtable-sorting .dtable-cell.is-sorting-after,.dtable-sorting .dtable-cell.is-sorting-before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dtable-sorting .dtable-cell.is-sorting-before{--tw-translate-y:100%}.dtable-cell.is-sorting-before:before,.dtable-cell.is-sorting-from:before{border-bottom-width:1px;border-top-width:1px}:root{--dtable-bg:var(--color-canvas);--dtable-striped-bg:var(--color-gray-50);--dtable-hover-bg:rgba(var(--color-primary-500-rgb),.05);--dtable-header-bg:var(--color-surface);--dtable-footer-bg:var(--color-surface);--dtable-border-color:var(--color-border);--dtable-sorter-size:0.3125rem}.dtable{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));position:relative}.dtable.no-animation *{transition-property:none!important}.dtable-block{overflow:hidden;position:absolute;width:100%}.dtable-header{background-color:var(--dtable-header-bg);border-top-left-radius:inherit;border-top-right-radius:inherit}.dtable-body{overflow:hidden}.dtable-cells{background-color:var(--dtable-bg);height:100%;position:absolute;z-index:0}.dtable-cells-container{height:100%;position:absolute;width:100%}.dtable-header .dtable-cells{background-color:var(--dtable-header-bg)}.dtable-cells.dtable-fixed-left,.dtable-cells.dtable-fixed-right{z-index:10}.dtable-cell{position:absolute;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-cell:after,.dtable-cell:before{bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:-1px;z-index:2}.dtable-cell:before{border-bottom-width:1px;border-color:var(--dtable-border-color);opacity:1}.dtable-header .dtable-cell{align-items:center;display:flex;font-weight:700}.dtable-header .dtable-cell:after,.dtable-header .dtable-cell:before{top:0}.dtable-cell-content{align-items:center;display:flex;gap:.25rem;height:100%;overflow:hidden;padding-left:.75rem;padding-right:.75rem;position:relative;white-space:nowrap;width:100%;z-index:5}.dtable-body .dtable-cell.is-last-row:before{border-bottom-width:0}.dtable-footer{align-items:center;background-color:var(--dtable-footer-bg);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;border-color:var(--dtable-border-color);border-top-width:1px;display:flex;padding-left:.75rem;padding-right:.75rem;position:absolute;width:100%;z-index:10}.dtable-empty-tip{align-items:center;display:flex;height:100%;justify-content:center}.dtable .scrollbar{z-index:20}.dtable-header{transition-duration:1s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-scrolled-down .dtable-header{border-bottom-color:rgba(var(--color-inverse-rgb),.2);border-bottom-width:1px}.dtable-scroll-shadow{background-image:linear-gradient(90deg,rgba(0,0,0,.03),transparent),linear-gradient(90deg,rgba(0,0,0,.03),transparent 50%);opacity:0;pointer-events:none;position:absolute;top:0;transition-duration:1s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:8px;z-index:20}.dtable:hover .dtable-scroll-shadow{opacity:1}.dtable-scroll-shadow.is-right{--tw-rotate:180deg;margin-left:-7px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dtable-scroll-shadow.is-left,.dtable-scrolled-end .dtable-scroll-shadow.is-right{visibility:hidden}.dtable-scroll-shadow.is-right,.dtable-scrolled-right .dtable-scroll-shadow.is-left{visibility:visible}.dtable-sort{display:inline-flex;height:calc(var(--dtable-sorter-size)*12/5);margin-left:.25rem;opacity:.8;position:relative}.dtable-cell:hover .dtable-sort{opacity:1}.dtable-sort:after,.dtable-sort:before{--tw-content:"";border-color:transparent;border-style:solid;border-width:var(--dtable-sorter-size);content:var(--tw-content);height:0;left:0;opacity:.4;position:absolute;width:0}.dtable-sort:before{border-bottom-color:currentColor;border-top-width:0;top:0}.dtable-sort:after{border-bottom-width:0;border-top-color:currentColor;bottom:0}.dtable-sort.dtable-sort-asc:before,.dtable-sort.dtable-sort-desc:after{opacity:.9}.dtable-sort-link{align-items:center;cursor:pointer;display:inline-flex}.dtable-cells.dtable-fixed-left:before,.dtable-cells.dtable-fixed-right:before{border-color:var(--dtable-border-color);content:"";height:100%;pointer-events:none;position:absolute;width:100%;z-index:5}.dtable-cells.dtable-fixed-left:before{border-right-width:1px;right:-1px}.dtable-cells.dtable-fixed-right:before{border-left-width:1px;left:0}.dtable-bordered:before{border-color:var(--dtable-border-color);border-radius:inherit;border-width:1px;content:"";display:block;inset:0;pointer-events:none;position:absolute;z-index:15}.dtable-bordered .dtable-cell:before{border-width:1px;right:-1px}.dtable-cell.has-border-left:before{border-left-width:1px}.dtable-cell.has-border-right:before{border-right-width:1px;right:-1px}.dtable-striped .dtable-cell.is-odd-row{background-color:var(--dtable-striped-bg)}.dtable-hover-cell .dtable-cell:hover:after,.dtable-hover-col .dtable-cell.is-hover-col:before,.dtable-hover-row .dtable-body .dtable-cell.is-hover-row:before{background-color:var(--dtable-hover-bg)}:root{--kanban-lane-name-width:20px;--kanban-col-width:280px;--kanban-cols-gap:8px;--kanban-lanes-gap:8px;--kanban-header-height:32px;--kanban-lane-height:auto;--kanban-lane-color:var(--color-primary-500);--kanban-link-color:var(--color-secondary-500)}.kanban{align-items:flex-start;display:flex;flex-direction:column;min-width:-moz-fit-content;min-width:fit-content;position:relative}.kanban-header{display:flex;flex-direction:row;height:var(--kanban-header-height)}.kanban.has-sub-cols .kanban-header{height:calc(var(--kanban-header-height)*2)}.kanban-header-lane-name{background-color:rgba(var(--color-fore-rgb),.05);flex:none;width:var(--kanban-lane-name-width)}.kanban-header-cols,.kanban-header-sub-cols{display:flex;flex:1 1 0%;flex-direction:row;gap:var(--kanban-cols-gap)}.kanban-header-sub-cols{--tw-border-opacity:1;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));border-top-width:2px}.kanban-header-col{align-items:center;border-bottom-width:1px;display:flex;flex:1 1 0%;flex-direction:column;height:100%;width:var(--kanban-col-width)}.kanban-header-col.has-subs{width:auto}.kanban-header-col-wrapper{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));display:flex;flex:1 1 0%;flex-direction:row;padding-left:3.5rem;padding-right:3.5rem;position:relative;width:100%}.kanban-header-col-wrapper.is-align-left{justify-content:flex-start;padding-left:.5rem}.kanban-header-col-wrapper.is-align-left>.kanban-header-title{justify-content:flex-start}.kanban-header-title{align-items:center;display:flex;flex:1 1 auto;flex-direction:row;justify-content:center;overflow:hidden}.kanban-header-title>.as-title{color:var(--kanban-col-color);font-weight:700;overflow:hidden;white-space:nowrap}.kanban-header-col-actions{bottom:.25rem;position:absolute;right:.25rem;top:.25rem}.kanban-header-col-actions>.btn{opacity:.6}.kanban-header-col-actions>.btn:hover{opacity:1}.kanban-body{display:flex;flex-direction:column;gap:var(--kanban-lanes-gap)}.kanban-lane{display:flex;flex-direction:row;height:var(--kanban-lane-height);min-height:96px}.kanban-lane-name{--tw-text-opacity:1;align-items:center;background-color:var(--kanban-lane-color);color:rgba(var(--color-white-rgb),var(--tw-text-opacity));display:flex;justify-content:center;width:var(--kanban-lane-name-width);writing-mode:vertical-rl}.kanban-lane-actions,.kanban-lane-name{flex:none;position:relative}.kanban-lane.is-first .kanban-lane-actions{margin-top:calc(4px - var(--kanban-header-height))}.has-sub-cols .kanban-lane.is-first .kanban-lane-actions{margin-top:calc(4px - var(--kanban-header-height)*2)}.kanban-lane-actions>.btn.square{width:var(--kanban-lane-name-width)}.kanban-lane-title{align-items:center;display:flex;flex:1 1 auto;justify-content:center;overflow:hidden;white-space:nowrap}.kanban-lane-cols{display:flex;flex-direction:row;gap:var(--kanban-cols-gap)}.kanban-lane-col{background-color:rgba(var(--color-inverse-rgb),.05);display:flex;flex-direction:column;height:100%;width:var(--kanban-col-width)}.kanban-header-col,.kanban-lane-col{margin-left:calc(var(--kanban-col-gap-left) - var(--kanban-cols-gap));margin-right:calc(var(--kanban-col-gap-right) - var(--kanban-cols-gap))}.kanban-col-content{position:relative;z-index:5}.kanban-lane.is-first>.kanban-lane-name:before{--tw-content:"";background-color:var(--kanban-lane-color);bottom:100%;content:var(--tw-content);display:block;height:var(--kanban-header-height);left:0;position:absolute;right:0}.kanban.has-sub-cols .kanban-lane.is-first>.kanban-lane-name:before{height:calc(var(--kanban-header-height)*2)}.kanban-items{flex:1 1 auto;overflow:auto;scrollbar-gutter:both-edges stable}.kanban-lane.is-auto-height .kanban-items{scrollbar-gutter:auto}.kanban-item .card-actions{z-index:5}.kanban-heading{width:100%}.kanban-heading .listitem{height:2.25rem}.kanban-heading .item-title{font-weight:700}.kanban.has-dragging{cursor:move}.kanban-item.is-dragging{cursor:move;opacity:.1}.kanban-sticky .kanban-header{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));position:sticky;top:0;z-index:10}.kanban-sticky .kanban-lane-name{left:0;position:sticky;z-index:10}.kanban-region{--tw-bg-opacity:1;--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);min-width:-moz-fit-content;min-width:fit-content;padding:.75rem}.kanban-region>.kanban+.kanban{margin-top:.75rem}.kanban-region.has-heading{padding-top:0}.kanban-heading>.listitem{left:.75rem;position:sticky;width:calc(var(--kanban-list-width) - 24px)}.kanban-list{display:flex;flex-direction:column;gap:.75rem;height:100vh;overflow:auto;scrollbar-gutter:stable}.kanban-list.is-moving{cursor:grabbing}.kanban-items.is-dropping{position:relative}.kanban-item.is-dropping{position:relative;transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.kanban-item.is-dropping:after,.kanban-items.is-dropping>.card-list:after{--tw-content:"";background-color:rgba(var(--color-warning-500-rgb),.5);border-radius:var(--radius-full);content:var(--tw-content);display:block;height:.25rem}.kanban-item.is-dropping:after{left:.25rem;position:absolute;right:.25rem;top:-.25rem}.kanban-item.is-dropping[z-drop-side=before]{--tw-translate-y:0.25rem}.kanban-item.is-dropping[z-drop-side=after],.kanban-item.is-dropping[z-drop-side=before]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-item.is-dropping[z-drop-side=after]{--tw-translate-y:-0.25rem}.kanban-item.is-dropping[z-drop-side=after]:after{bottom:-.25rem;top:auto}.kanban-links{inset:0;pointer-events:none;position:absolute;z-index:20}.kanban-link{align-items:center;color:var(--kanban-link-color);display:flex;justify-content:center}.kanban-link,.kanban-link>svg{position:absolute}.kanban-link-text{border-radius:var(--radius);height:1em;line-height:1;padding-left:.125rem;padding-right:.125rem;pointer-events:auto;position:relative;text-align:center;white-space:nowrap}.kanban-link-start-point{--tw-translate-x:-0.25rem;--tw-translate-y:-0.25rem;height:.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5rem}.kanban-link-start-point,.kanban-link-start-point:before{background-color:currentColor;border-radius:var(--radius-full);position:absolute}.kanban-link-start-point:before{--tw-content:"";content:var(--tw-content);display:block;inset:-.25rem;opacity:.2}.kanban-link path{pointer-events:auto}.kanban-link path+path{opacity:.6}.kanban-link.is-hover path+path{opacity:1}.kanban-link-delete-btn{--tw-scale-x:.75;--tw-scale-y:.75;opacity:0;pointer-events:auto;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.is-hover .kanban-link-delete-btn,.kanban-link-delete-btn{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.is-hover .kanban-link-delete-btn{--tw-scale-x:1;--tw-scale-y:1;opacity:1}.kanban.is-adding-link{cursor:crosshair}.kanban-link-editor{inset:0;pointer-events:none;position:absolute;z-index:20}.kanban-link-editor-from,.kanban-link-editor-to{--tw-shadow-color:rgb(var(--color-primary-500-rgb));--tw-shadow:var(--tw-shadow-colored);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-500-rgb),var(--tw-ring-opacity));border-radius:var(--radius)}.kanban-link-editor-from,.kanban-link-editor-point,.kanban-link-editor-to{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);position:absolute}.kanban-link-editor-point{--tw-translate-x:-0.25rem;--tw-translate-y:-0.25rem;--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-primary-500-rgb),0.1);background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);cursor:move;height:.5rem;opacity:.5;pointer-events:auto;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.5rem}.kanban-link-editor-point.is-left{left:0;top:50%}.kanban-link-editor-point.is-right{--tw-translate-x:0.25rem;right:0;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-link-editor-point.is-top{left:50%;top:0}.kanban-link-editor-point.is-bottom{--tw-translate-y:0.25rem;bottom:0;left:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-link-editor-point:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-primary-500-rgb),0.5);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:1}.tab-pane{display:none}.tab-pane.active{display:block}:root{--dtable-header-bg:var(--color-surface-light);--dtable-footer-bg:var(--color-surface-light);--dtable-border-color:var(--color-border-light);--dtable-checked-border:var(--color-border);--dtable-link-color:var(--color-link);--dtable-link-hover-color:var(--color-link-hover);--dtable-link-visited-color:var(--color-link-visited)}.dtable-header .dtable-cell{font-weight:400}.dtable-cell-content[style*="--color-link"]{--dtable-link-hover-color:var(--color-link);--dtable-link-visited-color:var(--color-link)}.dtable-body .dtable-cell a:not(.btn){color:var(--dtable-link-color)}.dtable-body .dtable-cell a:not(.btn):visited{color:var(--dtable-link-visited-color)}.dtable-body .dtable-cell a:not(.btn):hover{color:var(--dtable-link-hover-color)}.dtable .btn-avatar{--tw-bg-opacity:1;--tw-ring-color:transparent;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);gap:.25rem;height:1.25rem;padding-left:0;padding-right:.5rem}.dtable .btn-avatar:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dtable .toggle-icon{border-radius:var(--radius-full)}.dtable .toggle-icon:after,.dtable .toggle-icon:before{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity))}.dtable-footer>.toolbar{margin-right:.5rem}.dtable-header .dtable-cell[data-sort]>.dtable-cell-content>a:not(:hover){color:inherit}.dtable-assign-btn{align-items:center;border-radius:var(--radius-full);display:flex;flex-direction:row;height:1.25rem;padding-left:.375rem;padding-right:.375rem}.dtable-assign-btn:not(:hover){color:inherit}.dtable-assign-btn.is-me{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.dtable-assign-btn:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.dtable-assign-btn>span{border-radius:var(--radius-full);line-height:20px;padding-left:.375rem;padding-right:.375rem}.dtable-assign-btn.is-unassigned>span{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}.dtable-assign-btn.is-unassigned:hover>span{background-color:inherit}.dtable-assign-btn>.icon{opacity:0;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-assign-btn:not(.disabled):hover>.icon{opacity:1}.dtable-header .dtable-cell[data-type=assign]{padding-left:1.5rem}.dtable-cell-icon{order:-5}.dtable-custom-cell[data-type=control]{align-items:center;display:flex;justify-content:center;padding-left:.125rem;padding-right:.125rem;z-index:1}.dtable-empty-tip{min-height:212px}.menu.menu-dtable-actions{--menu-icon-opacity:1;display:flex;gap:.25rem;min-width:auto}.menu.menu-dtable-actions>.menu-item>a{padding-left:.25rem;padding-right:.25rem}.menu.menu-dtable-actions>.menu-item>a>.item-content{display:none}:root{--zt-page-bg:var(--color-gray-100);--zt-header-bg:var(--color-canvas);--zt-header-color:var(--color-fore);--zt-sidebar-width:160px;--zt-navbar-active-color:var(--color-primary-500)}body{background-color:var(--zt-page-bg)}.page-app{overflow:overlay}.container{min-width:1200px}#header{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background:var(--zt-header-bg);border-bottom:1px solid var(--zt-header-border,rgba(var(--color-inverse-rgb),.05));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:var(--zt-header-color);height:3rem}#header>.container{height:100%;position:relative}#heading{align-items:center;bottom:0;display:flex;gap:.25rem;left:1rem;position:absolute;top:0}#heading>.toolbar{margin-left:-.75rem}#heading .dropmenu-btn>.text{max-width:142px}#heading>[data-zui-dropmenu]+div .dropmenu-btn>.text,#heading>[data-zui-dropmenu]+div+div .dropmenu-btn>.text{max-width:78px}#navbar{align-items:center;display:flex;font-size:.875rem;height:100%;justify-content:center;line-height:1.3rem}#navbar>.nav{--nav-active-color:var(--zt-navbar-active-color,var(--color-current));--nav-item-padding:12px;--nav-divider-margin:8px;margin-left:var(--nav-offset-left)}#navbar>.nav>.nav-item>a{height:3rem;padding-left:var(--nav-item-padding);padding-right:var(--nav-item-padding)}#navbar>.nav>.nav-item>a:after{--tw-scale-x:.5;background-color:currentColor;bottom:.5rem;content:"";height:.125rem;left:.75rem;opacity:0;position:absolute;right:.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}#navbar>.nav>.nav-item>a:hover:after{opacity:.5}#navbar>.nav>.nav-item>a.active:after,#navbar>.nav>.nav-item>a:hover:after{--tw-scale-x:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#navbar>.nav>.nav-item>a.active:after{opacity:.9}#navbar>.nav>.divider{align-self:center;height:1.25rem;margin-left:var(--nav-divider-margin);margin-right:var(--nav-divider-margin)}#navbar>.nav.compact{font-size:.8125rem;line-height:1.25rem}#navbar>.nav.compact-extra{font-size:.75rem;line-height:1rem}#toolbar{align-items:center;bottom:0;display:flex;gap:.25rem;position:absolute;right:1rem;top:0}#main{min-height:100vh}#header+#main{min-height:calc(100vh - 3rem)}#main>.container{padding-left:1rem;padding-right:1rem;position:relative}@media (min-width:1400px){#header>.container,#main>.container,#mainNavbar>.container{padding-left:2.5rem;padding-right:2.5rem}#heading{left:2.5rem}#toolbar{right:2.5rem}}#mainNavbar{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));height:2.75rem}#mainNavbar>.container{position:relative}#mainNavbar .nav{height:2.75rem;inset:0;justify-content:center;position:absolute}#mainNavbar .nav-item{font-size:.875rem;line-height:1.3rem}#mainNavbar .nav-item>a{border-radius:var(--radius)}#mainMenu{gap:1rem;justify-content:space-between;padding-bottom:.75rem;padding-top:.75rem}#featureBar,#mainMenu{align-items:center;display:flex}#featureBar{flex:1 1 auto;gap:.5rem}#featureBar .nav .btn>.icon{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}#actionBar{gap:.5rem}#actionBar>.nav-divider{margin-left:-.25rem;margin-right:-.25rem}#mainContent{padding-top:.75rem}#mainMenu+#mainContent{padding-top:0}#mainContent.row{align-items:stretch;display:flex;gap:1rem;justify-content:space-between}#mainContent.row>*{flex:1 1 auto;min-width:0}#mainContainer.has-sidebar-left{--gutter-left-size:16px}#mainContainer.is-sidebar-left-collapsed{--gutter-left-size:0}.has-sidebar-animation.has-sidebar-left #mainMenu{transition-duration:.15s;transition-property:padding-left;transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--modal-radius:var(--radius);--avatar-bg:var(--color-gray-200)}.modal-alert .modal-footer{justify-content:center}.modal-dialog{--tw-bg-opacity:1}.modal-body,.modal-footer,.modal-header{padding:1.5rem 2rem}.modal-header{padding-right:3rem}.modal-actions{top:1rem}.modal-body+.modal-footer,.modal-header+.modal-actions+.modal-body,.modal-header+.modal-body{padding-top:0}.modal-condensed .modal-body,.modal-condensed .modal-header{padding:1rem 1.25rem}.modal-condensed .modal-actions{top:.75rem}:root{--label-bg:var(--color-gray-100);--label-color:var(--color-gray-800)}.label[class$=-pale],.label[class*="-pale "]{--tw-bg-opacity:0.4;--tw-ring-opacity:0.4}.tree{--tree-indent:14px}.body-modal .panel-form,.modal .panel-form{margin:0;padding:0}.modal .panel-body{padding:1px}.modal-body>.form{padding-top:1px}.modal .history,.modal .panel-body>.form{padding:0}.arrow,.arrow:before{background:inherit;height:calc(var(--arrow-size)*1.4142);position:absolute;width:calc(var(--arrow-size)*1.4142)}.arrow{--arrow-size:5px;visibility:hidden}.arrow:before{--tw-rotate:45deg;border:inherit;content:"";transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));visibility:visible}.arrow-top,.arrow-up{border-bottom:inherit;border-right:inherit;border-width:1px 0 0 1px;top:calc(1px - var(--arrow-size))}.white>.arrow-top,.white>.arrow-up{top:calc(0px - var(--arrow-size))}.arrow-bottom,.arrow-down{border-left:inherit;border-top:inherit;border-width:0 1px 1px 0;bottom:calc(1px - var(--arrow-size))}.white>.arrow-bottom,.white>.arrow-down{bottom:calc(0px - var(--arrow-size))}.arrow-left{border-right:inherit;border-top:inherit;border-width:0 0 1px 1px;left:calc(1px - var(--arrow-size))}.white>.arrow-left{left:calc(0px - var(--arrow-size))}.arrow-right{border-bottom:inherit;border-left:inherit;border-width:1px 1px 0 0;right:calc(1px - var(--arrow-size))}.white>.arrow-right{right:calc(0px - var(--arrow-size))}.caret,.caret-down,.caret-left,.caret-right,.caret-up{border:var(--caret-size,4px) solid transparent;display:inline-block;height:0;opacity:var(--caret-opacity,.5);width:0}:focus>.caret,:hover>.caret{opacity:inherit}.disabled .caret,.readonly .caret{opacity:var(--caret-opacity,.5)}.caret,.caret-down{border-bottom-width:0;border-top-color:currentColor}.caret-up{border-bottom-color:currentColor;border-top-width:0}.caret-right{border-left-color:currentColor;border-right-width:0}.caret-left{border-left-width:0;border-right-color:currentColor}:root{--toggle-icon-size:calc(var(--font-size-root)*3/4 + 1px)}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-color:currentColor;border-width:1px;display:block;opacity:.5;position:relative}.toggle-icon-collapse:hover,.toggle-icon-expand:hover,.toggle-icon:hover{opacity:.9}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-radius:inherit;height:var(--toggle-icon-size);width:var(--toggle-icon-size)}.is-collapsed .toggle-icon:after,.is-collapsed .toggle-icon:before,.is-expanded .toggle-icon:before,.toggle-icon-collapse:after,.toggle-icon-collapse:before,.toggle-icon-expand:before{background-color:currentColor;content:" ";display:block;height:1px;left:2px;position:absolute;right:2px;top:calc((var(--toggle-icon-size) - 3px)/2)}.is-collapsed .toggle-icon:after,.toggle-icon-collapse:after{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.spinner,.spinner:after,.spinner:before{display:block;height:1em;position:relative;width:1em}.spinner:after,.spinner:before{border-radius:var(--radius-full);content:" ";position:absolute}.spinner:before{animation:-spin 1s cubic-bezier(.6,0,.4,1) infinite;border:.16667em solid transparent;border-top-color:currentcolor}.spinner:after{border:.16667em solid;opacity:.2}.magnifier{display:inline-block;height:1em;position:relative;width:1em}.magnifier:after,.magnifier:before{border-radius:var(--radius-full);content:"";display:block;position:absolute}.magnifier:before{border:1px solid;height:.75em;width:.75em}.magnifier:after{--tw-rotate:45deg;background-color:currentColor;height:1px;left:.55em;top:.7em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5em}.more,.more-vert{margin:.5rem;position:relative}.more,.more-vert,.more-vert:after,.more-vert:before,.more:after,.more:before{background-color:currentColor;border-radius:var(--radius-full);height:.125rem;width:.125rem}.more-vert:after,.more-vert:before,.more:after,.more:before{--tw-content:"";content:var(--tw-content);display:block;left:-5px;position:absolute;top:0}.more-vert:after,.more:after{left:5px}.more-vert{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-down,.chevron-left,.chevron-right,.chevron-up{align-items:center;display:inline-flex;height:1em;justify-content:center;position:relative;width:1em}.chevron-down:before,.chevron-left:before,.chevron-right:before,.chevron-up:before{--tw-translate-y:-0.125rem;--tw-rotate:45deg;--tw-content:"";border-color:currentColor;border-width:0 1px 1px 0;content:var(--tw-content);display:block;height:.6923077em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform-origin:center;width:.6923077em}.chevron-left:before{--tw-translate-y:0px;--tw-translate-x:0.125rem;--tw-rotate:135deg}.chevron-left:before,.chevron-right:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-right:before{--tw-translate-y:0px;--tw-translate-x:-0.125rem;--tw-rotate:-45deg}.chevron-up:before{--tw-translate-y:0.125rem;--tw-rotate:225deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.i-time{border-color:currentColor;border-radius:50%;border-width:.08em;display:inline-block;height:1em;position:relative;width:1em}.i-time:after{--tw-content:"";border-color:currentColor;border-width:0 0 .08em .08em;content:var(--tw-content);height:.385em;left:.3846em;position:absolute;top:.08em;width:.385em}.i-calendar{border-color:currentColor;border-radius:2px;border-width:.08em;display:inline-block;height:.79em;margin-top:.16em;position:relative;width:1em}.i-calendar:after,.i-calendar:before{--tw-content:"";border-color:currentColor;border-width:.08em;content:var(--tw-content);position:absolute}.i-calendar:before{border-bottom-width:0;left:.15em;top:.307em;width:.6em}.i-calendar:after{border-bottom-width:0;border-top-width:0;height:.3077em;left:.17em;top:-.154em;width:.538em}:root{--state-color:rgba(0,0,0,.05);--state-scale:.9;--opacity-disabled:.65;--opacity-muted:.5}.btn,.item>a,.state{cursor:pointer;position:relative}.btn:before,.item>a:before,.state:before{background:var(--state-color);border-radius:inherit;content:" ";display:block;inset:0;opacity:0;pointer-events:none;position:absolute;transform:scale(var(--state-scale));transition-duration:.2s;transition-property:opacity,transform,box-shadow,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn.active:not(:hover,:focus-visible,:focus-within,:active):before,.item>a.active:not(:hover,:focus-visible,:focus-within,:active):before,.state.active:not(:hover,:focus-visible,:focus-within,:active):before{--tw-scale-x:1;--tw-scale-y:1;--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);background:var(--state-active-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);opacity:var(--state-active-opacity,0);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.7s}.btn.selected:not(:hover,:focus-visible,:focus-within,:active):before,.item>a.selected:not(:hover,:focus-visible,:focus-within,:active):before,.state.selected:not(:hover,:focus-visible,:focus-within,:active):before{--tw-scale-x:1;--tw-scale-y:1;background:var(--state-selected-color,var(--state-scale));opacity:var(--state-selected-opacity,.1);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn:focus-visible,.item>a:focus-visible,.state:focus-visible{outline:2px solid transparent;outline-offset:2px}.btn:active:before,.btn:focus-visible:before,.btn:hover:before,.item>a:active:before,.item>a:focus-visible:before,.item>a:hover:before,.state:active:before,.state:focus-visible:before,.state:hover:before{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn:hover:before,.item>a:hover:before,.state:hover:before{opacity:var(--state-hover-opacity,1)}.btn:active:before,.item>a:active:before,.state:active:before{--tw-ring-color:var(--state-ring-color,currentColor);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);background:var(--state-pressed-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:var(--state-pressed-opacity,.6);transition-duration:.7s}.btn:focus-visible:before,.item>a:focus-visible:before,.state:focus-visible:before{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-focus-rgb),var(--tw-ring-opacity));background:var(--state-focus-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:var(--state-focus-opacity,1)}.btn.disabled:before,.btn[disabled]:before,.item>a.disabled:before,.item>a[disabled]:before,.state.disabled:before,.state[disabled]:before{display:none}.disabled,.disabled *,[disabled],[disabled] *{--tw-grayscale:grayscale(100%);cursor:not-allowed!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:var(--opacity-disabled)}.load-indicator:after,.load-indicator:before{display:block;opacity:0;position:absolute;transition-delay:0s;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);visibility:hidden}.load-indicator:before{--tw-content:attr(data-loading);align-items:center;background-color:rgba(var(--color-canvas-rgb),.7);border-radius:inherit;content:var(--tw-content);display:flex;font-size:.75rem;inset:0;justify-content:center;line-height:1rem;z-index:99}.load-indicator[data-loading]:before{padding-top:3.5rem}.load-indicator:after{--tw-content:"";border-color:transparent currentcolor currentcolor;border-radius:var(--radius-full);border-style:dotted;border-width:4px 3px 4px 4px;content:var(--tw-content);height:2rem;left:50%;margin-left:-1rem;margin-top:-1rem;top:50%;width:2rem;z-index:100}.load-indicator.loading:after,.load-indicator.loading:before{opacity:1;transition-delay:.5s;visibility:visible}@keyframes -spin{to{transform:rotate(1turn)}}.load-indicator.loading:after{animation:-spin 1s linear infinite;opacity:.5}.events-none,.pointer-events-none{pointer-events:none}.events-auto,.pointer-events-auto{pointer-events:auto}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.cursor-text{cursor:text}.cursor-move{cursor:move}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.active\:opacity-100.active,.active\:opacity-100:active,.group.active .group-active\:opacity-100,.group:active .group-active\:opacity-100,.group:hover .group-hover\:opacity-100,.hover\:opacity-100:hover{opacity:1}.active\:text-primary.active,.active\:text-primary:active,.group.active .group-active\:text-primary,.group:active .group-active\:text-primary,.group:hover .group-hover\:text-primary,.hover\:text-primary:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.active\:border-primary.active,.active\:border-primary:active,.group.active .group-active\:border-primary,.group:active .group-active\:border-primary,.group:hover .group-hover\:border-primary,.hover\:border-primary:hover{--tw-border-opacity:1;border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity))}.active\:primary-pale.active,.active\:primary-pale:active,.group.active .group-active\:primary-pale,.group:active .group-active\:primary-pale,.group:hover .group-hover\:primary-pale,.hover\:primary-pale:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.active\:primary.active,.active\:primary:active,.group.active .group-active\:primary,.group:active .group-active\:primary,.group:hover .group-hover\:primary,.hover\:primary:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.active\:canvas.active,.active\:canvas:active,.group.active .group-active\:canvas,.group:active .group-active\:canvas,.group:hover .group-hover\:canvas,.hover\:canvas:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.active\:font-bold.active,.active\:font-bold:active,.group.active .group-active\:font-bold,.group:active .group-active\:font-bold,.group:hover .group-hover\:font-bold,.hover\:font-bold:hover{font-weight:700}.active\:shadow.active,.active\:shadow:active,.group.active .group-active\:shadow,.group:active .group-active\:shadow,.group:hover .group-hover\:shadow,.hover\:shadow:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.container{width:100%}@media (min-width:1720px){.container{max-width:1720px}}.container{margin-left:auto;margin-right:auto}.popup{--tw-bg-opacity:0.85;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.table-row{display:table-row}.hidden{display:none!important}.pull-right{float:right}.pull-left{float:left}.clearfix:after{clear:both;content:"";display:block}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.object-bottom{-o-object-position:bottom;object-position:bottom}.object-center{-o-object-position:center;object-position:center}.object-left{-o-object-position:left;object-position:left}.object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.object-left-top{-o-object-position:left top;object-position:left top}.object-right{-o-object-position:right;object-position:right}.object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.object-right-top{-o-object-position:right top;object-position:right top}.object-top{-o-object-position:top;object-position:top}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overflow-overlay{overflow:overlay}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-auto{inset:auto}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-full{top:100%}.right-full{right:100%}.bottom-full{bottom:100%}.left-full{left:100%}.top-auto{top:auto}.right-auto{right:auto}.bottom-auto{bottom:auto}.left-auto{left:auto}.top-px{top:1px}.right-px{right:1px}.bottom-px{bottom:1px}.left-px{left:1px}.top-0\.5{top:.125rem}.right-0\.5{right:.125rem}.bottom-0\.5{bottom:.125rem}.left-0\.5{left:.125rem}.top-1{top:.25rem}.right-1{right:.25rem}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.top-1\.5{top:.375rem}.right-1\.5{right:.375rem}.bottom-1\.5{bottom:.375rem}.left-1\.5{left:.375rem}.top-2{top:.5rem}.right-2{right:.5rem}.bottom-2{bottom:.5rem}.left-2{left:.5rem}.top-2\.5{top:.625rem}.right-2\.5{right:.625rem}.bottom-2\.5{bottom:.625rem}.left-2\.5{left:.625rem}.top-3{top:.75rem}.right-3{right:.75rem}.bottom-3{bottom:.75rem}.left-3{left:.75rem}.top-3\.5{top:.875rem}.right-3\.5{right:.875rem}.bottom-3\.5{bottom:.875rem}.left-3\.5{left:.875rem}.top-4{top:1rem}.right-4{right:1rem}.bottom-4{bottom:1rem}.left-4{left:1rem}.top-5{top:1.25rem}.right-5{right:1.25rem}.bottom-5{bottom:1.25rem}.left-5{left:1.25rem}.top-6{top:1.5rem}.right-6{right:1.5rem}.bottom-6{bottom:1.5rem}.left-6{left:1.5rem}.top-7{top:1.75rem}.right-7{right:1.75rem}.bottom-7{bottom:1.75rem}.left-7{left:1.75rem}.top-8{top:2rem}.right-8{right:2rem}.bottom-8{bottom:2rem}.left-8{left:2rem}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.m-0{margin:0}.mx-0{margin-left:0;margin-right:0}.my-0{margin-bottom:0}.mt-0,.my-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.ml-0{margin-left:0}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-bottom:auto}.mt-auto,.my-auto{margin-top:auto}.mr-auto{margin-right:auto}.mb-auto{margin-bottom:auto}.ml-auto{margin-left:auto}.m-px{margin:1px}.mx-px{margin-left:1px;margin-right:1px}.my-px{margin-bottom:1px}.mt-px,.my-px{margin-top:1px}.mr-px{margin-right:1px}.mb-px{margin-bottom:1px}.ml-px{margin-left:1px}.m-0\.5{margin:.125rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.my-0\.5{margin-bottom:.125rem}.mt-0\.5,.my-0\.5{margin-top:.125rem}.mr-0\.5{margin-right:.125rem}.mb-0\.5{margin-bottom:.125rem}.ml-0\.5{margin-left:.125rem}.m-1{margin:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-1{margin-bottom:.25rem}.mt-1,.my-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.m-1\.5{margin:.375rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.my-1\.5{margin-bottom:.375rem}.mt-1\.5,.my-1\.5{margin-top:.375rem}.mr-1\.5{margin-right:.375rem}.mb-1\.5{margin-bottom:.375rem}.ml-1\.5{margin-left:.375rem}.m-2{margin:.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-2{margin-bottom:.5rem}.mt-2,.my-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.m-2\.5{margin:.625rem}.mx-2\.5{margin-left:.625rem;margin-right:.625rem}.my-2\.5{margin-bottom:.625rem}.mt-2\.5,.my-2\.5{margin-top:.625rem}.mr-2\.5{margin-right:.625rem}.mb-2\.5{margin-bottom:.625rem}.ml-2\.5{margin-left:.625rem}.m-3{margin:.75rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.my-3{margin-bottom:.75rem}.mt-3,.my-3{margin-top:.75rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.m-3\.5{margin:.875rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.my-3\.5{margin-bottom:.875rem}.mt-3\.5,.my-3\.5{margin-top:.875rem}.mr-3\.5{margin-right:.875rem}.mb-3\.5{margin-bottom:.875rem}.ml-3\.5{margin-left:.875rem}.m-4{margin:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-4{margin-bottom:1rem}.mt-4,.my-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.m-5{margin:1.25rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.my-5{margin-bottom:1.25rem}.mt-5,.my-5{margin-top:1.25rem}.mr-5{margin-right:1.25rem}.mb-5{margin-bottom:1.25rem}.ml-5{margin-left:1.25rem}.m-6{margin:1.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-6{margin-bottom:1.5rem}.mt-6,.my-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.m-7{margin:1.75rem}.mx-7{margin-left:1.75rem;margin-right:1.75rem}.my-7{margin-bottom:1.75rem}.mt-7,.my-7{margin-top:1.75rem}.mr-7{margin-right:1.75rem}.mb-7{margin-bottom:1.75rem}.ml-7{margin-left:1.75rem}.m-8{margin:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.my-8{margin-bottom:2rem}.mt-8,.my-8{margin-top:2rem}.mr-8{margin-right:2rem}.mb-8{margin-bottom:2rem}.ml-8{margin-left:2rem}.m-9{margin:2.25rem}.mx-9{margin-left:2.25rem;margin-right:2.25rem}.my-9{margin-bottom:2.25rem}.mt-9,.my-9{margin-top:2.25rem}.mr-9{margin-right:2.25rem}.mb-9{margin-bottom:2.25rem}.ml-9{margin-left:2.25rem}.m-10{margin:2.5rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.my-10{margin-bottom:2.5rem}.mt-10,.my-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mb-10{margin-bottom:2.5rem}.ml-10{margin-left:2.5rem}.p-0{padding:0}.p-px{padding:1px}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.p-9{padding:2.25rem}.p-10{padding:2.5rem}.px-0{padding-left:0;padding-right:0}.py-0{padding-bottom:0}.pt-0,.py-0{padding-top:0}.pr-0{padding-right:0}.pb-0{padding-bottom:0}.pl-0{padding-left:0}.px-px{padding-left:1px;padding-right:1px}.py-px{padding-bottom:1px}.pt-px,.py-px{padding-top:1px}.pr-px{padding-right:1px}.pb-px{padding-bottom:1px}.pl-px{padding-left:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.py-0\.5{padding-bottom:.125rem}.pt-0\.5,.py-0\.5{padding-top:.125rem}.pr-0\.5{padding-right:.125rem}.pb-0\.5{padding-bottom:.125rem}.pl-0\.5{padding-left:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-1{padding-bottom:.25rem}.pt-1,.py-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.py-1\.5{padding-bottom:.375rem}.pt-1\.5,.py-1\.5{padding-top:.375rem}.pr-1\.5{padding-right:.375rem}.pb-1\.5{padding-bottom:.375rem}.pl-1\.5{padding-left:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-2{padding-bottom:.5rem}.pt-2,.py-2{padding-top:.5rem}.pr-2{padding-right:.5rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-2\.5{padding-bottom:.625rem}.pt-2\.5,.py-2\.5{padding-top:.625rem}.pr-2\.5{padding-right:.625rem}.pb-2\.5{padding-bottom:.625rem}.pl-2\.5{padding-left:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-bottom:.75rem}.pt-3,.py-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.py-3\.5{padding-bottom:.875rem}.pt-3\.5,.py-3\.5{padding-top:.875rem}.pr-3\.5{padding-right:.875rem}.pb-3\.5{padding-bottom:.875rem}.pl-3\.5{padding-left:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.py-4{padding-bottom:1rem}.pt-4,.py-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-5{padding-bottom:1.25rem}.pt-5,.py-5{padding-top:1.25rem}.pr-5{padding-right:1.25rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-6{padding-bottom:1.5rem}.pt-6,.py-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-7{padding-bottom:1.75rem}.pt-7,.py-7{padding-top:1.75rem}.pr-7{padding-right:1.75rem}.pb-7{padding-bottom:1.75rem}.pl-7{padding-left:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-8{padding-bottom:2rem}.pt-8,.py-8{padding-top:2rem}.pr-8{padding-right:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-9{padding-bottom:2.25rem}.pt-9,.py-9{padding-top:2.25rem}.pr-9{padding-right:2.25rem}.pb-9{padding-bottom:2.25rem}.pl-9{padding-left:2.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-10{padding-bottom:2.5rem}.pt-10,.py-10{padding-top:2.5rem}.pr-10{padding-right:2.5rem}.pb-10{padding-bottom:2.5rem}.pl-10{padding-left:2.5rem}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(0px*(1 - var(--tw-space-x-reverse)));margin-right:calc(0px*var(--tw-space-x-reverse))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.125rem*var(--tw-space-x-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.125rem*var(--tw-space-y-reverse));margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.375rem*var(--tw-space-x-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-2\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.625rem*var(--tw-space-x-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.625rem*var(--tw-space-y-reverse));margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-x-3\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.875rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.875rem*var(--tw-space-x-reverse))}.space-y-3\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.875rem*var(--tw-space-y-reverse));margin-top:calc(.875rem*(1 - var(--tw-space-y-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.25rem*var(--tw-space-x-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-7>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.75rem*var(--tw-space-x-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.75rem*var(--tw-space-y-reverse));margin-top:calc(1.75rem*(1 - var(--tw-space-y-reverse)))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.space-x-9>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.25rem*var(--tw-space-x-reverse))}.space-y-9>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.25rem*var(--tw-space-y-reverse));margin-top:calc(2.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.5rem*var(--tw-space-y-reverse));margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1px*(1 - var(--tw-space-x-reverse)));margin-right:calc(1px*var(--tw-space-x-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1px*var(--tw-space-y-reverse));margin-top:calc(1px*(1 - var(--tw-space-y-reverse)))}.w-0{width:0}.w-px{width:1px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-32{width:8rem}.w-36{width:9rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-52{width:13rem}.w-56{width:14rem}.w-60{width:15rem}.w-64{width:16rem}.w-72{width:18rem}.w-80{width:20rem}.w-96{width:24rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-1\/6{width:16.666667%}.w-2\/6{width:33.333333%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.w-min{width:-moz-min-content;width:min-content}.w-max{width:-moz-max-content;width:max-content}.w-fit{width:-moz-fit-content;width:fit-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.min-w-min{min-width:-moz-min-content;min-width:min-content}.min-w-max{min-width:-moz-max-content;min-width:max-content}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.max-w-0{max-width:0}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.max-w-min{max-width:-moz-min-content;max-width:min-content}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.h-0{height:0}.h-px{height:1px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-32{height:8rem}.h-36{height:9rem}.h-40{height:10rem}.h-44{height:11rem}.h-48{height:12rem}.h-52{height:13rem}.h-56{height:14rem}.h-60{height:15rem}.h-64{height:16rem}.h-72{height:18rem}.h-80{height:20rem}.h-96{height:24rem}.h-1\/2{height:50%}.h-1\/3{height:33.333333%}.h-2\/3{height:66.666667%}.h-1\/4{height:25%}.h-2\/4{height:50%}.h-3\/4{height:75%}.h-1\/5{height:20%}.h-2\/5{height:40%}.h-3\/5{height:60%}.h-4\/5{height:80%}.h-1\/6{height:16.666667%}.h-2\/6{height:33.333333%}.h-3\/6{height:50%}.h-4\/6{height:66.666667%}.h-5\/6{height:83.333333%}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h-min{height:-moz-min-content;height:min-content}.h-max{height:-moz-max-content;height:max-content}.h-fit{height:-moz-fit-content;height:fit-content}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-min{min-height:-moz-min-content;min-height:min-content}.min-h-max{min-height:-moz-max-content;min-height:max-content}.min-h-fit{min-height:-moz-fit-content;min-height:fit-content}.max-h-0{max-height:0}.max-h-px{max-height:1px}.max-h-none{max-height:none}.max-h-full{max-height:100%}.max-h-min{max-height:-moz-min-content;max-height:min-content}.max-h-max{max-height:-moz-max-content;max-height:max-content}.max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.canvas,.surface,.surface-light,.surface-strong{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}.canvas{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.surface-light{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-light-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity))}.surface{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.surface-strong{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-strong-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-strong-rgb),var(--tw-bg-opacity))}.inverse{background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.inverse,.white{--tw-bg-opacity:1;--tw-text-opacity:1}.white{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-white-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-white-rgb),var(--tw-bg-opacity));color:rgba(var(--color-fore-in-light-rgb),var(--tw-text-opacity))}.black{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-black-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-black-rgb),var(--tw-bg-opacity));color:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity))}.transparent{--tw-ring-color:transparent;background-color:transparent}.skin{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.skin:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger,.darken,.darker,.darkest,.gray,.gray-100,.gray-200,.gray-300,.gray-400,.gray-50,.gray-500,.gray-600,.gray-700,.gray-800,.gray-900,.gray-950,.important,.lighten,.lighter,.lightest,.primary,.secondary,.special,.success,.warning{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger:hover,.darken:hover,.darker:hover,.darkest:hover,.gray-100:hover,.gray-200:hover,.gray-300:hover,.gray-400:hover,.gray-500:hover,.gray-50:hover,.gray-600:hover,.gray-700:hover,.gray-800:hover,.gray-900:hover,.gray-950:hover,.gray:hover,.important:hover,.lighten:hover,.lighter:hover,.lightest:hover,.primary:hover,.secondary:hover,.special:hover,.success:hover,.warning:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger,.darken,.darker,.darkest,.gray,.gray-100,.gray-200,.gray-300,.gray-400,.gray-50,.gray-500,.gray-600,.gray-700,.gray-800,.gray-900,.gray-950,.important,.lighten,.lighter,.lightest,.primary,.secondary,.special,.success,.warning{--skin-text:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity));--skin-color:rgba(var(--skin-solid-rgb),1);--state-ring-color:var(--skin-color);--state-active-color:rgba(0,0,0,.1);--state-pressed-color:rgba(0,0,0,.1);--state-color:hsla(0,0%,100%,.1);--state-focus-color:rgba(0,0,0,.1)}.primary{--skin-solid-rgb:var(--color-primary-500-rgb)}.secondary{--skin-solid-rgb:var(--color-secondary-500-rgb)}.success{--skin-solid-rgb:var(--color-success-500-rgb)}.warning{--skin-solid-rgb:var(--color-warning-500-rgb)}.danger{--skin-solid-rgb:var(--color-danger-500-rgb)}.important{--skin-solid-rgb:var(--color-important-500-rgb)}.special{--skin-solid-rgb:var(--color-special-500-rgb)}.gray-50{--skin-bg:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-100{--skin-solid-rgb:var(--color-gray-100-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-200,.lightest{--skin-solid-rgb:var(--color-gray-200-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-300,.lighter{--skin-solid-rgb:var(--color-gray-300-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-400,.lighten{--skin-solid-rgb:var(--color-gray-400-rgb)}.gray,.gray-500{--skin-solid-rgb:var(--color-gray-500-rgb)}.darken,.gray-600{--skin-solid-rgb:var(--color-gray-600-rgb)}.darker,.gray-700{--skin-solid-rgb:var(--color-gray-700-rgb)}.darkest,.gray-800{--skin-solid-rgb:var(--color-gray-800-rgb)}.gray-900{--skin-solid-rgb:var(--color-gray-900-rgb)}.gray-950{--skin-solid-rgb:var(--color-gray-950-rgb)}.danger-pale,.gray-100-pale,.gray-200-pale,.gray-300-pale,.gray-400-pale,.gray-50-pale,.gray-500-pale,.gray-600-pale,.gray-700-pale,.gray-800-pale,.gray-900-pale,.gray-950-pale,.gray-pale,.important-pale,.pale,.primary-pale,.secondary-pale,.special-pale,.success-pale,.warning-pale{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-pale:hover,.gray-100-pale:hover,.gray-200-pale:hover,.gray-300-pale:hover,.gray-400-pale:hover,.gray-50-pale:hover,.gray-500-pale:hover,.gray-600-pale:hover,.gray-700-pale:hover,.gray-800-pale:hover,.gray-900-pale:hover,.gray-950-pale:hover,.gray-pale:hover,.important-pale:hover,.pale:hover,.primary-pale:hover,.secondary-pale:hover,.special-pale:hover,.success-pale:hover,.warning-pale:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-pale,.gray-100-pale,.gray-200-pale,.gray-300-pale,.gray-400-pale,.gray-50-pale,.gray-500-pale,.gray-600-pale,.gray-700-pale,.gray-800-pale,.gray-900-pale,.gray-950-pale,.gray-pale,.important-pale,.pale,.primary-pale,.secondary-pale,.special-pale,.success-pale,.warning-pale{--skin-color:rgba(var(--skin-pale-rgb),.1);--skin-text:rgba(var(--skin-pale-rgb),1);--state-color:rgba(var(--skin-pale-rgb),.1)}.pale{--skin-pale-rgb:var(--color-gray-500-rgb)}.primary-pale{--skin-pale-rgb:var(--color-primary-500-rgb)}.secondary-pale{--skin-pale-rgb:var(--color-secondary-500-rgb)}.success-pale{--skin-pale-rgb:var(--color-success-500-rgb)}.warning-pale{--skin-pale-rgb:var(--color-warning-500-rgb)}.danger-pale{--skin-pale-rgb:var(--color-danger-500-rgb)}.important-pale{--skin-pale-rgb:var(--color-important-500-rgb)}.special-pale{--skin-pale-rgb:var(--color-special-500-rgb)}.gray-50-pale{--skin-pale-rgb:var(--color-gray-50-rgb);--skin-text:var(--color-gray-400)}.gray-100-pale{--skin-pale-rgb:var(--color-gray-100-rgb);--skin-text:var(--color-gray-400)}.gray-200-pale{--skin-pale-rgb:var(--color-gray-200-rgb);--skin-text:var(--color-gray-400)}.gray-300-pale{--skin-pale-rgb:var(--color-gray-300-rgb);--skin-text:var(--color-gray-500)}.gray-400-pale{--skin-pale-rgb:var(--color-gray-400-rgb);--skin-text:var(--color-gray-500)}.gray-500-pale,.gray-pale{--skin-pale-rgb:var(--color-gray-500-rgb)}.gray-600-pale{--skin-pale-rgb:var(--color-gray-600-rgb)}.gray-700-pale{--skin-pale-rgb:var(--color-gray-700-rgb)}.gray-800-pale{--skin-pale-rgb:var(--color-gray-800-rgb)}.gray-900-pale{--skin-pale-rgb:var(--color-gray-900-rgb)}.gray-950-pale{--skin-pale-rgb:var(--color-gray-950-rgb)}.danger-outline,.gray-300-outline,.gray-400-outline,.gray-600-outline,.gray-outline,.important-outline,.outline,.primary-outline,.secondary-outline,.special-outline,.success-outline,.warning-outline{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-outline:hover,.gray-300-outline:hover,.gray-400-outline:hover,.gray-600-outline:hover,.gray-outline:hover,.important-outline:hover,.outline:hover,.primary-outline:hover,.secondary-outline:hover,.special-outline:hover,.success-outline:hover,.warning-outline:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-outline,.gray-300-outline,.gray-400-outline,.gray-600-outline,.gray-outline,.important-outline,.outline,.primary-outline,.secondary-outline,.special-outline,.success-outline,.warning-outline{--skin-text:var(--skin-color,inherit);--skin-bg:transparent;--skin-color:rgba(var(--skin-outline-rgb),1);--state-color:rgba(var(--skin-outline-rgb),.1)}.outline{--skin-outline-rgb:var(--color-fore-rgb)}.primary-outline{--skin-outline-rgb:var(--color-primary-500-rgb)}.secondary-outline{--skin-outline-rgb:var(--color-secondary-500-rgb)}.success-outline{--skin-outline-rgb:var(--color-success-500-rgb)}.warning-outline{--skin-outline-rgb:var(--color-warning-500-rgb)}.danger-outline{--skin-outline-rgb:var(--color-danger-500-rgb)}.important-outline{--skin-outline-rgb:var(--color-important-500-rgb)}.special-outline{--skin-outline-rgb:var(--color-special-500-rgb)}.gray-300-outline{--skin-text:var(--color-gray-500);--skin-outline-rgb:var(--color-gray-300-rgb)}.gray-400-outline{--skin-text:var(--color-gray-500);--skin-outline-rgb:var(--color-gray-400-rgb)}.gray-outline{--skin-outline-rgb:var(--color-gray-500-rgb)}.gray-600-outline{--skin-outline-rgb:var(--color-gray-600-rgb)}.danger-ghost,.ghost,.important-ghost,.primary-ghost,.secondary-ghost,.special-ghost,.success-ghost,.warning-ghost{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-ghost:hover,.ghost:hover,.important-ghost:hover,.primary-ghost:hover,.secondary-ghost:hover,.special-ghost:hover,.success-ghost:hover,.warning-ghost:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-ghost,.ghost,.important-ghost,.primary-ghost,.secondary-ghost,.special-ghost,.success-ghost,.warning-ghost{--tw-ring-opacity:0;--tw-bg-opacity:0;--skin-text:var(--skin-color,inherit);--skin-bg:transparent;--skin-ring:transparent;--skin-color:rgba(var(--skin-ghost-rgb),1);--state-color:rgba(var(--skin-ghost-rgb),.1)}.ghost{--skin-ghost-rgb:var(--color-fore-rgb);--skin-text:inherit}.primary-ghost{--skin-ghost-rgb:var(--color-primary-500-rgb)}.secondary-ghost{--skin-ghost-rgb:var(--color-secondary-500-rgb)}.success-ghost{--skin-ghost-rgb:var(--color-success-500-rgb)}.warning-ghost{--skin-ghost-rgb:var(--color-warning-500-rgb)}.danger-ghost{--skin-ghost-rgb:var(--color-danger-500-rgb)}.important-ghost{--skin-ghost-rgb:var(--color-important-500-rgb)}.special-ghost{--skin-ghost-rgb:var(--color-special-500-rgb)}.font-sans{font-family:-apple-system,Noto Sans,Helvetica Neue,Helvetica,Nimbus Sans L,Arial,Liberation Sans,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,Source Han Sans CN,Microsoft YaHei,Wenquanyi Micro Hei,WenQuanYi Zen Hei,ST Heiti,SimHei,WenQuanYi Zen Hei Sharp,sans-serif}.font-serif{font-family:Nimbus Roman No9 L,Songti SC,Noto Serif CJK SC,Source Han Serif SC,Source Han Serif CN,STSong,AR PL New Sung,AR PL SungtiL GB,NSimSun,SimSun,TW-Sung,WenQuanYi Bitmap Song,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR PL UMing TW MBE,PMingLiU,MingLiU,serif}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-root{font-size:16px}.text-sm{font-size:.75rem;line-height:1rem}.text-base{font-size:.8125rem;line-height:1.25rem}.text-md{font-size:.875rem;line-height:1.3rem}.text-lg{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.125rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-thin{font-weight:100}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-black{font-weight:900}.leading-3{line-height:.75rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-9{line-height:2.25rem}.leading-10{line-height:2.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-loose{line-height:2}.line-1{-webkit-line-clamp:1}.line-1,.line-2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-2{-webkit-line-clamp:2}.line-3{-webkit-line-clamp:3}.line-3,.line-4{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-4{-webkit-line-clamp:4}.line-5{-webkit-line-clamp:5}.line-5,.line-6{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-6{-webkit-line-clamp:6}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.align-bottom{vertical-align:bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.text-primary{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.text-secondary{--tw-text-opacity:1;color:rgba(var(--color-secondary-500-rgb),var(--tw-text-opacity))}.text-success{--tw-text-opacity:1;color:rgba(var(--color-success-500-rgb),var(--tw-text-opacity))}.text-warning{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.text-danger{--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity))}.text-important{--tw-text-opacity:1;color:rgba(var(--color-important-500-rgb),var(--tw-text-opacity))}.text-special{--tw-text-opacity:1;color:rgba(var(--color-special-500-rgb),var(--tw-text-opacity))}.text-primary-50{--tw-text-opacity:1;color:rgba(var(--color-primary-50-rgb),var(--tw-text-opacity))}.text-primary-100{--tw-text-opacity:1;color:rgba(var(--color-primary-100-rgb),var(--tw-text-opacity))}.text-primary-200{--tw-text-opacity:1;color:rgba(var(--color-primary-200-rgb),var(--tw-text-opacity))}.text-primary-300{--tw-text-opacity:1;color:rgba(var(--color-primary-300-rgb),var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgba(var(--color-primary-400-rgb),var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgba(var(--color-primary-600-rgb),var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgba(var(--color-primary-700-rgb),var(--tw-text-opacity))}.text-primary-800{--tw-text-opacity:1;color:rgba(var(--color-primary-800-rgb),var(--tw-text-opacity))}.text-primary-900{--tw-text-opacity:1;color:rgba(var(--color-primary-900-rgb),var(--tw-text-opacity))}.text-primary-950{--tw-text-opacity:1;color:rgba(var(--color-primary-950-rgb),var(--tw-text-opacity))}.text-secondary-50{--tw-text-opacity:1;color:rgba(var(--color-secondary-50-rgb),var(--tw-text-opacity))}.text-secondary-100{--tw-text-opacity:1;color:rgba(var(--color-secondary-100-rgb),var(--tw-text-opacity))}.text-secondary-200{--tw-text-opacity:1;color:rgba(var(--color-secondary-200-rgb),var(--tw-text-opacity))}.text-secondary-300{--tw-text-opacity:1;color:rgba(var(--color-secondary-300-rgb),var(--tw-text-opacity))}.text-secondary-400{--tw-text-opacity:1;color:rgba(var(--color-secondary-400-rgb),var(--tw-text-opacity))}.text-secondary-500{--tw-text-opacity:1;color:rgba(var(--color-secondary-500-rgb),var(--tw-text-opacity))}.text-secondary-600{--tw-text-opacity:1;color:rgba(var(--color-secondary-600-rgb),var(--tw-text-opacity))}.text-secondary-700{--tw-text-opacity:1;color:rgba(var(--color-secondary-700-rgb),var(--tw-text-opacity))}.text-secondary-800{--tw-text-opacity:1;color:rgba(var(--color-secondary-800-rgb),var(--tw-text-opacity))}.text-secondary-900{--tw-text-opacity:1;color:rgba(var(--color-secondary-900-rgb),var(--tw-text-opacity))}.text-secondary-950{--tw-text-opacity:1;color:rgba(var(--color-secondary-950-rgb),var(--tw-text-opacity))}.text-gray-50{--tw-text-opacity:1;color:rgba(var(--color-gray-50-rgb),var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(var(--color-gray-100-rgb),var(--tw-text-opacity))}.text-gray-200,.text-lightest{--tw-text-opacity:1;color:rgba(var(--color-gray-200-rgb),var(--tw-text-opacity))}.text-gray-300,.text-lighter{--tw-text-opacity:1;color:rgba(var(--color-gray-300-rgb),var(--tw-text-opacity))}.text-gray-400,.text-lighten{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.text-gray,.text-gray-500{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.text-darken,.text-gray-600{--tw-text-opacity:1;color:rgba(var(--color-gray-600-rgb),var(--tw-text-opacity))}.text-darker,.text-gray-700{--tw-text-opacity:1;color:rgba(var(--color-gray-700-rgb),var(--tw-text-opacity))}.text-darkest,.text-gray-800{--tw-text-opacity:1;color:rgba(var(--color-gray-800-rgb),var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(var(--color-gray-900-rgb),var(--tw-text-opacity))}.text-gray-950{--tw-text-opacity:1;color:rgba(var(--color-gray-950-rgb),var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(var(--color-white-rgb),var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgba(var(--color-black-rgb),var(--tw-text-opacity))}.text-transparent{color:transparent}.text-canvas{--tw-text-opacity:1;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.text-surface-light{--tw-text-opacity:1;color:rgba(var(--color-surface-light-rgb),var(--tw-text-opacity))}.text-surface{--tw-text-opacity:1;color:rgba(var(--color-surface-rgb),var(--tw-text-opacity))}.text-surface-strong{--tw-text-opacity:1;color:rgba(var(--color-surface-strong-rgb),var(--tw-text-opacity))}.text-inverse{--tw-text-opacity:1;color:rgba(var(--color-inverse-rgb),var(--tw-text-opacity))}.text-fore-in-light{--tw-text-opacity:1;color:rgba(var(--color-fore-in-light-rgb),var(--tw-text-opacity))}.text-fore-in-dark{--tw-text-opacity:1;color:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity))}.text-fore{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}.text-focus{--tw-text-opacity:1;color:rgba(var(--color-focus-rgb),var(--tw-text-opacity))}.text-link{--tw-text-opacity:1;color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}.text-link-hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}.text-current{color:currentColor}.text-inherit{color:inherit}.clip,.ellipsis,.text-clip,.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clip,.text-clip{text-overflow:clip}.nowrap,.whitespace-nowrap{white-space:nowrap}.pre,.whitespace-pre{white-space:pre}.pre-line,.whitespace-pre-line{white-space:pre-line}.pre-wrap,.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-opacity-0{--tw-text-opacity:0}.text-opacity-5{--tw-text-opacity:.05}.text-opacity-10{--tw-text-opacity:.1}.text-opacity-20{--tw-text-opacity:.2}.text-opacity-25{--tw-text-opacity:.25}.text-opacity-30{--tw-text-opacity:.3}.text-opacity-40{--tw-text-opacity:.4}.text-opacity-50{--tw-text-opacity:.5}.text-opacity-60{--tw-text-opacity:.6}.text-opacity-70{--tw-text-opacity:.7}.text-opacity-80{--tw-text-opacity:.8}.text-opacity-90{--tw-text-opacity:.9}.text-opacity-95{--tw-text-opacity:.95}.text-opacity-100{--tw-text-opacity:1}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.list-unstyled{list-style-type:none;padding-left:0}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.bg-primary{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity))}.bg-secondary{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-500-rgb),var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity:1;background-color:rgba(var(--color-success-500-rgb),var(--tw-bg-opacity))}.bg-warning{--tw-bg-opacity:1;background-color:rgba(var(--color-warning-500-rgb),var(--tw-bg-opacity))}.bg-danger{--tw-bg-opacity:1;background-color:rgba(var(--color-danger-500-rgb),var(--tw-bg-opacity))}.bg-important{--tw-bg-opacity:1;background-color:rgba(var(--color-important-500-rgb),var(--tw-bg-opacity))}.bg-special{--tw-bg-opacity:1;background-color:rgba(var(--color-special-500-rgb),var(--tw-bg-opacity))}.bg-primary-50{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity))}.bg-primary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-200-rgb),var(--tw-bg-opacity))}.bg-primary-300{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-300-rgb),var(--tw-bg-opacity))}.bg-primary-400{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-400-rgb),var(--tw-bg-opacity))}.bg-primary-500{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600-rgb),var(--tw-bg-opacity))}.bg-primary-700{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-700-rgb),var(--tw-bg-opacity))}.bg-primary-800{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-800-rgb),var(--tw-bg-opacity))}.bg-primary-900{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900-rgb),var(--tw-bg-opacity))}.bg-primary-950{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-950-rgb),var(--tw-bg-opacity))}.bg-secondary-50{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-50-rgb),var(--tw-bg-opacity))}.bg-secondary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-100-rgb),var(--tw-bg-opacity))}.bg-secondary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-200-rgb),var(--tw-bg-opacity))}.bg-secondary-300{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-300-rgb),var(--tw-bg-opacity))}.bg-secondary-400{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-400-rgb),var(--tw-bg-opacity))}.bg-secondary-500{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-500-rgb),var(--tw-bg-opacity))}.bg-secondary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-600-rgb),var(--tw-bg-opacity))}.bg-secondary-700{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-700-rgb),var(--tw-bg-opacity))}.bg-secondary-800{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-800-rgb),var(--tw-bg-opacity))}.bg-secondary-900{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-900-rgb),var(--tw-bg-opacity))}.bg-secondary-950{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-950-rgb),var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity))}.bg-gray-200,.bg-lightest{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-200-rgb),var(--tw-bg-opacity))}.bg-gray-300,.bg-lighter{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-300-rgb),var(--tw-bg-opacity))}.bg-gray-400,.bg-light{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-400-rgb),var(--tw-bg-opacity))}.bg-gray,.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-500-rgb),var(--tw-bg-opacity))}.bg-darken,.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-600-rgb),var(--tw-bg-opacity))}.bg-darker,.bg-gray-700{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-700-rgb),var(--tw-bg-opacity))}.bg-darkest,.bg-gray-800{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-800-rgb),var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-900-rgb),var(--tw-bg-opacity))}.bg-gray-950{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-950-rgb),var(--tw-bg-opacity))}.bg-canvas{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.bg-surface-light{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity))}.bg-surface{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.bg-surface-strong{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-strong-rgb),var(--tw-bg-opacity))}.bg-inverse{--tw-bg-opacity:1;background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity))}.bg-fore-in-light{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-in-light-rgb),var(--tw-bg-opacity))}.bg-fore-in-dark{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-in-dark-rgb),var(--tw-bg-opacity))}.bg-fore{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity))}.bg-focus{--tw-bg-opacity:1;background-color:rgba(var(--color-focus-rgb),var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(var(--color-white-rgb),var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(var(--color-black-rgb),var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-current{background-color:currentColor}.bg-inherit{background-color:inherit}.bg-none{background-image:none}.bg-opacity-0{--tw-bg-opacity:0}.bg-opacity-5{--tw-bg-opacity:.05}.bg-opacity-10{--tw-bg-opacity:.1}.bg-opacity-20{--tw-bg-opacity:.2}.bg-opacity-30{--tw-bg-opacity:.3}.bg-opacity-40{--tw-bg-opacity:.4}.bg-opacity-50{--tw-bg-opacity:.5}.bg-opacity-60{--tw-bg-opacity:.6}.bg-opacity-70{--tw-bg-opacity:.7}.bg-opacity-80{--tw-bg-opacity:.8}.bg-opacity-90{--tw-bg-opacity:.9}.bg-opacity-100{--tw-bg-opacity:1}.bg-auto{background-size:auto}.bg-cover{background-size:cover}.bg-contain{background-size:contain}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-bottom{background-position:bottom}.bg-center{background-position:50%}.bg-left{background-position:0}.bg-left-bottom{background-position:0 100%}.bg-left-top{background-position:0 0}.bg-right{background-position:100%}.bg-right-bottom{background-position:100% 100%}.bg-right-top{background-position:100% 0}.bg-top{background-position:top}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.divider{align-self:stretch;border-color:currentColor;border-left-width:1px;border-top-width:1px;opacity:.1}.border-0{border-width:0}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-t{border-top-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-t-0{border-top-width:0}.border-r-0{border-right-width:0}.border-b-0{border-bottom-width:0}.border-l-0{border-left-width:0}.border-t-2{border-top-width:2px}.border-l-2{border-left-width:2px}.border-r-2{border-right-width:2px}.border-b-2{border-bottom-width:2px}.border-t-4{border-top-width:4px}.border-l-4{border-left-width:4px}.border-r-4{border-right-width:4px}.border-b-4{border-bottom-width:4px}.border-light{--tw-border-opacity:1;border-color:rgba(var(--color-border-light-rgb),var(--tw-border-opacity))}.border-strong{--tw-border-opacity:1;border-color:rgba(var(--color-border-strong-rgb),var(--tw-border-opacity))}.border-primary{--tw-border-opacity:1;border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity))}.border-secondary{--tw-border-opacity:1;border-color:rgba(var(--color-secondary-500-rgb),var(--tw-border-opacity))}.border-success{--tw-border-opacity:1;border-color:rgba(var(--color-success-500-rgb),var(--tw-border-opacity))}.border-warning{--tw-border-opacity:1;border-color:rgba(var(--color-warning-500-rgb),var(--tw-border-opacity))}.border-danger{--tw-border-opacity:1;border-color:rgba(var(--color-danger-500-rgb),var(--tw-border-opacity))}.border-important{--tw-border-opacity:1;border-color:rgba(var(--color-important-500-rgb),var(--tw-border-opacity))}.border-special{--tw-border-opacity:1;border-color:rgba(var(--color-special-500-rgb),var(--tw-border-opacity))}.border-gray-50{--tw-border-opacity:1;border-color:rgba(var(--color-gray-50-rgb),var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgba(var(--color-gray-100-rgb),var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(var(--color-gray-200-rgb),var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(var(--color-gray-300-rgb),var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity))}.border-gray,.border-gray-500{--tw-border-opacity:1;border-color:rgba(var(--color-gray-500-rgb),var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgba(var(--color-gray-600-rgb),var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity:1;border-color:rgba(var(--color-gray-700-rgb),var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgba(var(--color-gray-800-rgb),var(--tw-border-opacity))}.border-gray-900{--tw-border-opacity:1;border-color:rgba(var(--color-gray-900-rgb),var(--tw-border-opacity))}.border-gray-950{--tw-border-opacity:1;border-color:rgba(var(--color-gray-950-rgb),var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgba(var(--color-white-rgb),var(--tw-border-opacity))}.border-black{--tw-border-opacity:1;border-color:rgba(var(--color-black-rgb),var(--tw-border-opacity))}.border-canvas{--tw-border-opacity:1;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity))}.border-surface-light{--tw-border-opacity:1;border-color:rgba(var(--color-surface-light-rgb),var(--tw-border-opacity))}.border-surface{--tw-border-opacity:1;border-color:rgba(var(--color-surface-rgb),var(--tw-border-opacity))}.border-surface-strong{--tw-border-opacity:1;border-color:rgba(var(--color-surface-strong-rgb),var(--tw-border-opacity))}.border-inverse{--tw-border-opacity:1;border-color:rgba(var(--color-inverse-rgb),var(--tw-border-opacity))}.border-fore-in-light{--tw-border-opacity:1;border-color:rgba(var(--color-fore-in-light-rgb),var(--tw-border-opacity))}.border-fore-in-dark{--tw-border-opacity:1;border-color:rgba(var(--color-fore-in-dark-rgb),var(--tw-border-opacity))}.border-fore{--tw-border-opacity:1;border-color:rgba(var(--color-fore-rgb),var(--tw-border-opacity))}.border-focus{--tw-border-opacity:1;border-color:rgba(var(--color-focus-rgb),var(--tw-border-opacity))}.border-link{--tw-border-opacity:1;border-color:rgba(var(--color-link-rgb),var(--tw-border-opacity))}.border-link-hover{--tw-border-opacity:1;border-color:rgba(var(--color-link-hover-rgb),var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-current{border-color:currentColor}.border-inherit{border-color:inherit}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-opacity-0{--tw-border-opacity:0}.border-opacity-5{--tw-border-opacity:.05}.border-opacity-10{--tw-border-opacity:.1}.border-opacity-20{--tw-border-opacity:.2}.border-opacity-25{--tw-border-opacity:.25}.border-opacity-30{--tw-border-opacity:.3}.border-opacity-40{--tw-border-opacity:.4}.border-opacity-50{--tw-border-opacity:.5}.border-opacity-60{--tw-border-opacity:.6}.border-opacity-70{--tw-border-opacity:.7}.border-opacity-80{--tw-border-opacity:.8}.border-opacity-90{--tw-border-opacity:.9}.border-opacity-95{--tw-border-opacity:.95}.border-opacity-100{--tw-border-opacity:1}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.circle,.rounded-full{border-radius:var(--radius-full)}.rounded-l-none{border-bottom-left-radius:var(--radius-none);border-top-left-radius:var(--radius-none)}.rounded-t-none{border-top-left-radius:var(--radius-none)}.rounded-r-none,.rounded-t-none{border-top-right-radius:var(--radius-none)}.rounded-b-none,.rounded-r-none{border-bottom-right-radius:var(--radius-none)}.rounded-b-none{border-bottom-left-radius:var(--radius-none)}.rounded-br-none{border-bottom-right-radius:var(--radius-none)}.rounded-bl-none{border-bottom-left-radius:var(--radius-none)}.rounded-tr-none{border-top-right-radius:var(--radius-none)}.rounded-tl-none{border-top-left-radius:var(--radius-none)}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-border-light{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-light-rgb),var(--tw-ring-opacity))}.ring-border{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity))}.ring-border-strong{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-strong-rgb),var(--tw-ring-opacity))}.ring-light{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05}.ring-gray{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.1}.ring-dark{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.2}.ring-darker{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.3}.ring-darkest{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.5}.ring-primary{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-500-rgb),var(--tw-ring-opacity))}.ring-secondary{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-secondary-500-rgb),var(--tw-ring-opacity))}.ring-warning{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-warning-500-rgb),var(--tw-ring-opacity))}.ring-success{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-success-500-rgb),var(--tw-ring-opacity))}.ring-danger{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-danger-500-rgb),var(--tw-ring-opacity))}.ring-important{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-important-500-rgb),var(--tw-ring-opacity))}.ring-special{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-special-500-rgb),var(--tw-ring-opacity))}.ring-gray-50{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-50-rgb),var(--tw-ring-opacity))}.ring-gray-100{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-100-rgb),var(--tw-ring-opacity))}.ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-200-rgb),var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-300-rgb),var(--tw-ring-opacity))}.ring-gray-400{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-400-rgb),var(--tw-ring-opacity))}.ring-gray-500{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-500-rgb),var(--tw-ring-opacity))}.ring-gray-600{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-600-rgb),var(--tw-ring-opacity))}.ring-gray-700{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-700-rgb),var(--tw-ring-opacity))}.ring-gray-800{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-800-rgb),var(--tw-ring-opacity))}.ring-gray-900{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-900-rgb),var(--tw-ring-opacity))}.ring-gray-950{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-950-rgb),var(--tw-ring-opacity))}.ring-inverse{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity))}.ring-canvas{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-canvas-rgb),var(--tw-ring-opacity))}.ring-surface{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-rgb),var(--tw-ring-opacity))}.ring-fore{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-fore-rgb),var(--tw-ring-opacity))}.ring-transparent{--tw-ring-color:transparent}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-black-rgb),var(--tw-ring-opacity))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-white-rgb),var(--tw-ring-opacity))}.ring-inherit{--tw-ring-color:inherit}.ring-current{--tw-ring-color:currentColor}.ring-opacity-0{--tw-ring-opacity:0}.ring-opacity-5{--tw-ring-opacity:.05}.ring-opacity-10{--tw-ring-opacity:.1}.ring-opacity-20{--tw-ring-opacity:.2}.ring-opacity-30{--tw-ring-opacity:.3}.ring-opacity-40{--tw-ring-opacity:.4}.ring-opacity-50{--tw-ring-opacity:.5}.ring-opacity-60{--tw-ring-opacity:.6}.ring-opacity-70{--tw-ring-opacity:.7}.ring-opacity-80{--tw-ring-opacity:.8}.ring-opacity-90{--tw-ring-opacity:.9}.ring-opacity-100{--tw-ring-opacity:1}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-0,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-3{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-3,.ring-4{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-8{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-offset-0{--tw-ring-offset-width:0px}.ring-offset-1{--tw-ring-offset-width:1px}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-4{--tw-ring-offset-width:4px}.ring-offset-8{--tw-ring-offset-width:8px}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color)}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 2px 6px -1px rgba(0,0,0,.2),0 1px 4px -2px rgba(0,0,0,.15);--tw-shadow-colored:0 2px 6px -1px var(--tw-shadow-color),0 1px 4px -2px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 5px 15px -3px rgba(0,0,0,.2),0 2px 6px -4px rgba(0,0,0,.15);--tw-shadow-colored:0 5px 15px -3px var(--tw-shadow-color),0 2px 6px -4px var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color)}.shadow-2xl,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--tw-shadow-colored:0 10px 50px -10px var(--tw-shadow-color),0 8px 20px -10px var(--tw-shadow-color)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color)}.shadow-inner,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.muted{opacity:var(--opacity-muted)}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.blur-none{--tw-blur:blur(0)}.blur-none,.blur-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-sm{--tw-blur:blur(4px)}.blur{--tw-blur:blur(8px)}.blur,.blur-md{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-md{--tw-blur:blur(12px)}.blur-lg{--tw-blur:blur(16px)}.blur-lg,.blur-xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-xl{--tw-blur:blur(24px)}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter-none{filter:none!important}.drop-shadow-none{--tw-drop-shadow:drop-shadow(0 0 #0000)}.drop-shadow-none,.drop-shadow-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgba(0,0,0,.05))}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.drop-shadow-md{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}.drop-shadow-lg{--tw-drop-shadow:drop-shadow(0 10px 8px rgba(0,0,0,.04)) drop-shadow(0 4px 3px rgba(0,0,0,.1))}.drop-shadow-lg,.drop-shadow-xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-xl{--tw-drop-shadow:drop-shadow(0 20px 13px rgba(0,0,0,.03)) drop-shadow(0 8px 5px rgba(0,0,0,.08))}.drop-shadow-2xl{--tw-drop-shadow:drop-shadow(0 25px 25px rgba(0,0,0,.15));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-none{--tw-backdrop-blur:blur(0)}.backdrop-blur-none,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.backdrop-blur-lg,.backdrop-blur-xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(40px)}.backdrop-blur-2xl,.backdrop-blur-3xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(64px)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fade,.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{opacity:0;transition-duration:.15s;transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{--tw-scale-x:.9;--tw-scale-y:.9}.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-bottom{--tw-translate-y:25%}.fade-from-top{--tw-translate-y:-25%}.fade-from-left,.fade-from-top{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-left{--tw-translate-x:-25%}.fade-from-right{--tw-translate-x:25%}.fade-from-bottom.in,.fade-from-center.in,.fade-from-left.in,.fade-from-right,.fade-from-right.in,.fade-from-top.in,.fade.in{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-bottom.in,.fade-from-center.in,.fade-from-left.in,.fade-from-right.in,.fade-from-top.in,.fade.in{--tw-translate-x:0px;--tw-translate-y:0px;--tw-scale-x:1;--tw-scale-y:1;opacity:1}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-1000{transition-duration:1s}@keyframes -spin{to{transform:rotate(1turn)}}.animate-spin,.spin{animation:-spin 1s linear infinite}@keyframes -ping{75%,to{opacity:0;transform:scale(2)}}.animate-ping,.ping{animation:-ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes -pulse{50%{opacity:.5}}.animate-pulse,.pulse{animation:-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes -bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-bounce,.bounce{animation:-bounce 1s infinite}.scale-0{--tw-scale-x:0;--tw-scale-y:0}.scale-0,.scale-50{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-50{--tw-scale-x:.5;--tw-scale-y:.5}.scale-75{--tw-scale-x:.75;--tw-scale-y:.75}.scale-75,.scale-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-100,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.scale-105,.scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}.scale-125,.scale-150{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-150{--tw-scale-x:1.5;--tw-scale-y:1.5}.flip-x{--tw-scale-x:-1}.flip-x,.flip-y{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flip-y{--tw-scale-y:-1}.rotate-0{--tw-rotate:0deg}.rotate-0,.rotate-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-1{--tw-rotate:1deg}.rotate-2{--tw-rotate:2deg}.rotate-2,.rotate-3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-3{--tw-rotate:3deg}.rotate-6{--tw-rotate:6deg}.rotate-12,.rotate-6{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-12{--tw-rotate:12deg}.rotate-45{--tw-rotate:45deg}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.rotate-135{--tw-rotate:135deg}.rotate-135,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.rotate-270{--tw-rotate:270deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.basis-0{flex-basis:0px}.basis-1{flex-basis:0.25rem}.basis-2{flex-basis:0.5rem}.basis-3{flex-basis:0.75rem}.basis-4{flex-basis:1rem}.basis-5{flex-basis:1.25rem}.basis-6{flex-basis:1.5rem}.basis-7{flex-basis:1.75rem}.basis-8{flex-basis:2rem}.basis-9{flex-basis:2.25rem}.basis-10{flex-basis:2.5rem}.basis-11{flex-basis:2.75rem}.basis-12{flex-basis:3rem}.basis-14{flex-basis:3.5rem}.basis-16{flex-basis:4rem}.basis-20{flex-basis:5rem}.basis-24{flex-basis:6rem}.basis-28{flex-basis:7rem}.basis-32{flex-basis:8rem}.basis-36{flex-basis:9rem}.basis-40{flex-basis:10rem}.basis-44{flex-basis:11rem}.basis-48{flex-basis:12rem}.basis-52{flex-basis:13rem}.basis-56{flex-basis:14rem}.basis-60{flex-basis:15rem}.basis-64{flex-basis:16rem}.basis-72{flex-basis:18rem}.basis-80{flex-basis:20rem}.basis-96{flex-basis:24rem}.basis-auto{flex-basis:auto}.basis-px{flex-basis:1px}.basis-0\.5{flex-basis:0.125rem}.basis-1\.5{flex-basis:0.375rem}.basis-2\.5{flex-basis:0.625rem}.basis-3\.5{flex-basis:0.875rem}.basis-1\/2{flex-basis:50%}.basis-1\/3{flex-basis:33.333333%}.basis-2\/3{flex-basis:66.666667%}.basis-1\/4{flex-basis:25%}.basis-2\/4{flex-basis:50%}.basis-3\/4{flex-basis:75%}.basis-1\/5{flex-basis:20%}.basis-2\/5{flex-basis:40%}.basis-3\/5{flex-basis:60%}.basis-4\/5{flex-basis:80%}.basis-1\/6{flex-basis:16.666667%}.basis-2\/6{flex-basis:33.333333%}.basis-3\/6{flex-basis:50%}.basis-4\/6{flex-basis:66.666667%}.basis-5\/6{flex-basis:83.333333%}.basis-1\/12{flex-basis:8.333333%}.basis-2\/12{flex-basis:16.666667%}.basis-3\/12{flex-basis:25%}.basis-4\/12{flex-basis:33.333333%}.basis-5\/12{flex-basis:41.666667%}.basis-6\/12{flex-basis:50%}.basis-7\/12{flex-basis:58.333333%}.basis-8\/12{flex-basis:66.666667%}.basis-9\/12{flex-basis:75%}.basis-10\/12{flex-basis:83.333333%}.basis-11\/12{flex-basis:91.666667%}.basis-full{flex-basis:100%}.row{display:flex;flex-direction:row}.center,.col{display:flex;flex-direction:column}.center,.center-row{align-items:center;justify-content:center}.center-row{display:flex;flex-direction:row}.center-x,.center-y{align-items:center;display:flex}.center-y{flex-direction:column}.row-reverse{display:flex;flex-direction:row-reverse}.col-reverse{display:flex;flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.grow{flex-grow:1!important}.grow-0{flex-grow:0!important}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.order-first{order:-9999}.order-last{order:9999}.order-none{order:0}.gap-0{gap:0}.gap-x-0{-moz-column-gap:0;column-gap:0}.gap-y-0{row-gap:0}.gap-px{gap:1px}.gap-x-px{-moz-column-gap:1px;column-gap:1px}.gap-y-px{row-gap:1px}.gap-0\.5{gap:.125rem}.gap-x-0\.5{-moz-column-gap:.125rem;column-gap:.125rem}.gap-y-0\.5{row-gap:.125rem}.gap-3px{gap:3px}.gap-1{gap:.25rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-y-1{row-gap:.25rem}.gap-1\.5{gap:.375rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-y-1\.5{row-gap:.375rem}.gap-2{gap:.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-2{row-gap:.5rem}.gap-2\.5{gap:.625rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-y-2\.5{row-gap:.625rem}.gap-3{gap:.75rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-3{row-gap:.75rem}.gap-3\.5{gap:.875rem}.gap-x-3\.5{-moz-column-gap:.875rem;column-gap:.875rem}.gap-y-3\.5{row-gap:.875rem}.gap-4{gap:1rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-4{row-gap:1rem}.gap-5{gap:1.25rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-5{row-gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-6{row-gap:1.5rem}.gap-7{gap:1.75rem}.gap-x-7{-moz-column-gap:1.75rem;column-gap:1.75rem}.gap-y-7{row-gap:1.75rem}.gap-8{gap:2rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-8{row-gap:2rem}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}@font-face{font-display:fallback;font-family:D-DIN-PRO;font-weight:400;src:url(./fonts/D-DIN-PRO-400-Regular.otf)}@font-face{font-display:fallback;font-family:D-DIN-PRO;font-weight:500;src:url(./fonts/D-DIN-PRO-700-Bold.otf)}.num{font-family:D-DIN-PRO;font-weight:400}@font-face{font-display:fallback;font-family:Nunito;font-weight:400;src:url(./fonts/Nunito-Regular.ttf)}@font-face{font-display:fallback;font-family:Nunito;font-weight:700;src:url(./fonts/Nunito-bold.ttf)}@font-face{font-display:fallback;font-family:Nunito;font-weight:300;src:url(./fonts/Nunito-Light.ttf)}.font-brand{font-family:Nunito;font-weight:400} \ No newline at end of file diff --git a/www/js/zui3/zui.zentao.js b/www/js/zui3/zui.zentao.js index 2f6ddc3fac..ad9a076519 100644 --- a/www/js/zui3/zui.zentao.js +++ b/www/js/zui3/zui.zentao.js @@ -1,2 +1,3 @@ -var Io=(w,tt,vt)=>{if(!tt.has(w))throw TypeError("Cannot "+vt)};var bt=(w,tt,vt)=>(Io(w,tt,"read from private field"),vt?vt.call(w):tt.get(w)),$t=(w,tt,vt)=>{if(tt.has(w))throw TypeError("Cannot add the same private member more than once");tt instanceof WeakSet?tt.add(w):tt.set(w,vt)},It=(w,tt,vt,pi)=>(Io(w,tt,"write to private field"),pi?pi.call(w,vt):tt.set(w,vt),vt);var Po=(w,tt,vt)=>(Io(w,tt,"access private method"),vt);(function(w,tt){typeof exports=="object"&&typeof module<"u"?tt(exports):typeof define=="function"&&define.amd?define(["exports"],tt):(w=typeof globalThis<"u"?globalThis:w||self,tt(w.zui={}))})(this,function(w){var hi,di,Ls,Rs,Fs,zs,Os,Ws,ui,Bc,fi,jc,ye,_e;"use strict";const tt="",vt="",pi="",Rf="",Ff="",zf="",Of="",Wf="",Hf="",Bf="",jf="",Uf="",jt=document,Hs=window,Ao=jt.documentElement,be=jt.createElement.bind(jt),Do=be("div"),mi=be("table"),Uc=be("tbody"),Lo=be("tr"),{isArray:Bs,prototype:Ro}=Array,{concat:Vc,filter:gi,indexOf:Fo,map:zo,push:Kc,slice:Oo,some:yi,splice:Gc}=Ro,qc=/^#(?:[\w-]|\\.|[^\x00-\xa0])*$/,Yc=/^\.(?:[\w-]|\\.|[^\x00-\xa0])*$/,Qc=/<.+>/,Zc=/^\w+$/;function _i(n,t){const e=Xc(t);return!n||!e&&!ve(t)&&!st(t)?[]:!e&&Yc.test(n)?t.getElementsByClassName(n.slice(1).replace(/\\/g,"")):!e&&Zc.test(n)?t.getElementsByTagName(n):t.querySelectorAll(n)}class js{constructor(t,e){if(!t)return;if(bi(t))return t;let s=t;if(dt(t)){const i=e||jt;if(s=qc.test(t)&&ve(i)?i.getElementById(t.slice(1).replace(/\\/g,"")):Qc.test(t)?Vo(t):bi(i)?i.find(t):dt(i)?u(i).find(t):_i(t,i),!s)return}else if(we(t))return this.ready(t);(s.nodeType||s===Hs)&&(s=[s]),this.length=s.length;for(let i=0,r=this.length;i{for(;t.firstChild;)t.removeChild(t.firstChild)})};function Us(...n){const t=th(n[0])?n.shift():!1,e=n.shift(),s=n.length;if(!e)return{};if(!s)return Us(t,u,e);for(let i=0;i{st(r)&<(e,(o,a)=>{s?t?r.classList.add(a):r.classList.remove(a):r.classList.toggle(a)})})},N.addClass=function(n){return this.toggleClass(n,!0)},N.removeAttr=function(n){const t=Vs(n);return this.each((e,s)=>{st(s)&<(t,(i,r)=>{s.removeAttribute(r)})})};function sh(n,t){if(n){if(dt(n)){if(arguments.length<2){if(!this[0]||!st(this[0]))return;const e=this[0].getAttribute(n);return os(e)?void 0:e}return wt(t)?this:os(t)?this.removeAttr(n):this.each((e,s)=>{st(s)&&s.setAttribute(n,t)})}for(const e in n)this.attr(e,n[e]);return this}}N.attr=sh,N.removeClass=function(n){return arguments.length?this.toggleClass(n,!1):this.attr("class","")},N.hasClass=function(n){return!!n&&yi.call(this,t=>st(t)&&t.classList.contains(n))},N.get=function(n){return wt(n)?Oo.call(this):(n=Number(n),this[n<0?n+this.length:n])},N.eq=function(n){return u(this.get(n))},N.first=function(){return this.eq(0)},N.last=function(){return this.eq(-1)};function nh(n){return wt(n)?this.get().map(t=>st(t)||Jc(t)?t.textContent:"").join(""):this.each((t,e)=>{st(e)&&(e.textContent=n)})}N.text=nh;function Ut(n,t,e){if(!st(n))return;const s=Hs.getComputedStyle(n,null);return e?s.getPropertyValue(t)||void 0:s[t]||n.style[t]}function zt(n,t){return parseInt(Ut(n,t),10)||0}function Ho(n,t){return zt(n,`border${t?"Left":"Top"}Width`)+zt(n,`padding${t?"Left":"Top"}`)+zt(n,`padding${t?"Right":"Bottom"}`)+zt(n,`border${t?"Right":"Bottom"}Width`)}const wi={};function ih(n){if(wi[n])return wi[n];const t=be(n);jt.body.insertBefore(t,null);const e=Ut(t,"display");return jt.body.removeChild(t),wi[n]=e!=="none"?e:"block"}function Bo(n){return Ut(n,"display")==="none"}function jo(n,t){const e=n&&(n.matches||n.webkitMatchesSelector||n.msMatchesSelector);return!!e&&!!t&&e.call(n,t)}function Ks(n){return dt(n)?(t,e)=>jo(e,n):we(n)?n:bi(n)?(t,e)=>n.is(e):n?(t,e)=>e===n:()=>!1}N.filter=function(n){const t=Ks(n);return u(gi.call(this,(e,s)=>t.call(e,s,e)))};function ee(n,t){return t?n.filter(t):n}N.detach=function(n){return ee(this,n).each((t,e)=>{e.parentNode&&e.parentNode.removeChild(e)}),this};const rh=/^\s*<(\w+)[^>]*>/,oh=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,Uo={"*":Do,tr:Uc,td:Lo,th:Lo,thead:mi,tbody:mi,tfoot:mi};function Vo(n){if(!dt(n))return[];if(oh.test(n))return[be(RegExp.$1)];const t=rh.test(n)&&RegExp.$1,e=Uo[t]||Uo["*"];return e.innerHTML=n,u(e.childNodes).detach().get()}u.parseHTML=Vo,N.has=function(n){const t=dt(n)?(e,s)=>_i(n,s).length:(e,s)=>s.contains(n);return this.filter(t)},N.not=function(n){const t=Ks(n);return this.filter((e,s)=>(!dt(n)||st(s))&&!t.call(s,e,s))};function Vt(n,t,e,s){const i=[],r=we(t),o=s&&Ks(s);for(let a=0,l=n.length;at.selected&&!t.disabled&&!t.parentNode.disabled),"value"):n.value||""}function ah(n){return arguments.length?this.each((t,e)=>{const s=e.multiple&&e.options;if(s||na.test(e.type)){const i=Bs(n)?zo.call(n,String):os(n)?[]:[String(n)];s?lt(e.options,(r,o)=>{o.selected=i.indexOf(o.value)>=0},!0):e.checked=i.indexOf(e.value)>=0}else e.value=wt(n)||os(n)?"":n}):this[0]&&Ko(this[0])}N.val=ah,N.is=function(n){const t=Ks(n);return yi.call(this,(e,s)=>t.call(e,s,e))},u.guid=1;function Ot(n){return n.length>1?gi.call(n,(t,e,s)=>Fo.call(s,t)===e):n}u.unique=Ot,N.add=function(n,t){return u(Ot(this.get().concat(u(n,t).get())))},N.children=function(n){return ee(u(Ot(Vt(this,t=>t.children))),n)},N.parent=function(n){return ee(u(Ot(Vt(this,"parentNode"))),n)},N.index=function(n){const t=n?u(n)[0]:this[0],e=n?this:u(t).parent().children();return Fo.call(e,t)},N.closest=function(n){const t=this.filter(n);if(t.length)return t;const e=this.parent();return e.length?e.closest(n):t},N.siblings=function(n){return ee(u(Ot(Vt(this,t=>u(t).parent().children().not(t)))),n)},N.find=function(n){return u(Ot(Vt(this,t=>_i(n,t))))};const lh=/^\s*\s*$/g,ch=/^$|^module$|\/(java|ecma)script/i,hh=["type","src","nonce","noModule"];function dh(n,t){const e=u(n);e.filter("script").add(e.find("script")).each((s,i)=>{if(ch.test(i.type)&&Ao.contains(i)){const r=be("script");r.text=i.textContent.replace(lh,""),lt(hh,(o,a)=>{i[a]&&(r[a]=i[a])}),t.head.insertBefore(r,null),t.head.removeChild(r)}})}function uh(n,t,e,s,i){s?n.insertBefore(t,e?n.firstChild:null):n.nodeName==="HTML"?n.parentNode.replaceChild(t,n):n.parentNode.insertBefore(t,e?n:n.nextSibling),i&&dh(t,n.ownerDocument)}function se(n,t,e,s,i,r,o,a){return lt(n,(l,c)=>{lt(u(c),(h,d)=>{lt(u(t),(p,f)=>{const m=e?d:f,y=e?f:d,b=e?h:p;uh(m,b?y.cloneNode(!0):y,s,i,!b)},a)},o)},r),t}N.after=function(){return se(arguments,this,!1,!1,!1,!0,!0)},N.append=function(){return se(arguments,this,!1,!1,!0)};function fh(n){if(!arguments.length)return this[0]&&this[0].innerHTML;if(wt(n))return this;const t=/]/.test(n);return this.each((e,s)=>{st(s)&&(t?u(s).empty().append(n):s.innerHTML=n)})}N.html=fh,N.appendTo=function(n){return se(arguments,this,!0,!1,!0)},N.wrapInner=function(n){return this.each((t,e)=>{const s=u(e),i=s.contents();i.length?i.wrapAll(n):s.append(n)})},N.before=function(){return se(arguments,this,!1,!0)},N.wrapAll=function(n){let t=u(n),e=t[0];for(;e.children.length;)e=e.firstElementChild;return this.first().before(t),this.appendTo(e)},N.wrap=function(n){return this.each((t,e)=>{const s=u(n)[0];u(e).wrapAll(t?s.cloneNode(!0):s)})},N.insertAfter=function(n){return se(arguments,this,!0,!1,!1,!1,!1,!0)},N.insertBefore=function(n){return se(arguments,this,!0,!0)},N.prepend=function(){return se(arguments,this,!1,!0,!0,!0,!0)},N.prependTo=function(n){return se(arguments,this,!0,!0,!0,!1,!1,!0)},N.contents=function(){return u(Ot(Vt(this,n=>n.tagName==="IFRAME"?[n.contentDocument]:n.tagName==="TEMPLATE"?n.content.childNodes:n.childNodes)))},N.next=function(n,t,e){return ee(u(Ot(Vt(this,"nextElementSibling",t,e))),n)},N.nextAll=function(n){return this.next(n,!0)},N.nextUntil=function(n,t){return this.next(t,!0,n)},N.parents=function(n,t){return ee(u(Ot(Vt(this,"parentElement",!0,t))),n)},N.parentsUntil=function(n,t){return this.parents(t,n)},N.prev=function(n,t,e){return ee(u(Ot(Vt(this,"previousElementSibling",t,e))),n)},N.prevAll=function(n){return this.prev(n,!0)},N.prevUntil=function(n,t){return this.prev(t,!0,n)},N.map=function(n){return u(Vc.apply([],zo.call(this,(t,e)=>n.call(t,e,t))))},N.clone=function(){return this.map((n,t)=>t.cloneNode(!0))},N.offsetParent=function(){return this.map((n,t)=>{let e=t.offsetParent;for(;e&&Ut(e,"position")==="static";)e=e.offsetParent;return e||Ao})},N.slice=function(n,t){return u(Oo.call(this,n,t))};const ph=/-([a-z])/g;function Ci(n){return n.replace(ph,(t,e)=>e.toUpperCase())}N.ready=function(n){const t=()=>setTimeout(n,0,u);return jt.readyState!=="loading"?t():jt.addEventListener("DOMContentLoaded",t),this},N.unwrap=function(){return this.parent().each((n,t)=>{if(t.tagName==="BODY")return;const e=u(t);e.replaceWith(e.children())}),this},N.offset=function(){const n=this[0];if(!n)return;const t=n.getBoundingClientRect();return{top:t.top+Hs.pageYOffset,left:t.left+Hs.pageXOffset}},N.position=function(){const n=this[0];if(!n)return;const t=Ut(n,"position")==="fixed",e=t?n.getBoundingClientRect():this.offset();if(!t){const s=n.ownerDocument;let i=n.offsetParent||s.documentElement;for(;(i===s.body||i===s.documentElement)&&Ut(i,"position")==="static";)i=i.parentNode;if(i!==n&&st(i)){const r=u(i).offset();e.top-=r.top+zt(i,"borderTopWidth"),e.left-=r.left+zt(i,"borderLeftWidth")}}return{top:e.top-zt(n,"marginTop"),left:e.left-zt(n,"marginLeft")}};const Go={class:"className",contenteditable:"contentEditable",for:"htmlFor",readonly:"readOnly",maxlength:"maxLength",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",usemap:"useMap"};N.prop=function(n,t){if(n){if(dt(n))return n=Go[n]||n,arguments.length<2?this[0]&&this[0][n]:this.each((e,s)=>{s[n]=t});for(const e in n)this.prop(e,n[e]);return this}},N.removeProp=function(n){return this.each((t,e)=>{delete e[Go[n]||n]})};const mh=/^--/;function ki(n){return mh.test(n)}const xi={},{style:gh}=Do,yh=["webkit","moz","ms"];function _h(n,t=ki(n)){if(t)return n;if(!xi[n]){const e=Ci(n),s=`${e[0].toUpperCase()}${e.slice(1)}`,i=`${e} ${yh.join(`${s} `)}${s}`.split(" ");lt(i,(r,o)=>{if(o in gh)return xi[n]=o,!1})}return xi[n]}const bh={animationIterationCount:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0};function qo(n,t,e=ki(n)){return!e&&!bh[n]&&Wo(t)?`${t}px`:t}function vh(n,t){if(dt(n)){const e=ki(n);return n=_h(n,e),arguments.length<2?this[0]&&Ut(this[0],n,e):n?(t=qo(n,t,e),this.each((s,i)=>{st(i)&&(e?i.style.setProperty(n,t):i.style[n]=t)})):this}for(const e in n)this.css(e,n[e]);return this}N.css=vh;function Yo(n,t){try{return n(t)}catch{return t}}const wh=/^\s+|\s+$/;function Qo(n,t){const e=n.dataset[t]||n.dataset[Ci(t)];return wh.test(e)?e:Yo(JSON.parse,e)}function Ch(n,t,e){e=Yo(JSON.stringify,e),n.dataset[Ci(t)]=e}function kh(n,t){if(!n){if(!this[0])return;const e={};for(const s in this[0].dataset)e[s]=Qo(this[0],s);return e}if(dt(n))return arguments.length<2?this[0]&&Qo(this[0],n):wt(t)?this:this.each((e,s)=>{Ch(s,n,t)});for(const e in n)this.data(e,n[e]);return this}N.data=kh;function Zo(n,t){const e=n.documentElement;return Math.max(n.body[`scroll${t}`],e[`scroll${t}`],n.body[`offset${t}`],e[`offset${t}`],e[`client${t}`])}lt([!0,!1],(n,t)=>{lt(["Width","Height"],(e,s)=>{const i=`${t?"outer":"inner"}${s}`;N[i]=function(r){if(this[0])return Ae(this[0])?t?this[0][`inner${s}`]:this[0].document.documentElement[`client${s}`]:ve(this[0])?Zo(this[0],s):this[0][`${t?"offset":"client"}${s}`]+(r&&t?zt(this[0],`margin${e?"Top":"Left"}`)+zt(this[0],`margin${e?"Bottom":"Right"}`):0)}})}),lt(["Width","Height"],(n,t)=>{const e=t.toLowerCase();N[e]=function(s){if(!this[0])return wt(s)?void 0:this;if(!arguments.length)return Ae(this[0])?this[0].document.documentElement[`client${t}`]:ve(this[0])?Zo(this[0],t):this[0].getBoundingClientRect()[e]-Ho(this[0],!n);const i=parseInt(s,10);return this.each((r,o)=>{if(!st(o))return;const a=Ut(o,"boxSizing");o.style[e]=qo(e,i+(a==="border-box"?Ho(o,!n):0))})}});const Xo="___cd";N.toggle=function(n){return this.each((t,e)=>{if(!st(e))return;const s=Bo(e);(wt(n)?s:n)?(e.style.display=e[Xo]||"",Bo(e)&&(e.style.display=ih(e.tagName))):s||(e[Xo]=Ut(e,"display"),e.style.display="none")})},N.hide=function(){return this.toggle(!1)},N.show=function(){return this.toggle(!0)};const Jo="___ce",Si=".",$i={focus:"focusin",blur:"focusout"},ta={mouseenter:"mouseover",mouseleave:"mouseout"},xh=/^(mouse|pointer|contextmenu|drag|drop|click|dblclick)/i;function Ti(n){return ta[n]||$i[n]||n}function Ni(n){const t=n.split(Si);return[t[0],t.slice(1).sort()]}N.trigger=function(n,t){if(dt(n)){const[s,i]=Ni(n),r=Ti(s);if(!r)return this;const o=xh.test(r)?"MouseEvents":"HTMLEvents";n=jt.createEvent(o),n.initEvent(r,!0,!0),n.namespace=i.join(Si),n.___ot=s}n.___td=t;const e=n.___ot in $i;return this.each((s,i)=>{e&&we(i[n.___ot])&&(i[`___i${n.type}`]=!0,i[n.___ot](),i[`___i${n.type}`]=!1),i.dispatchEvent(n)})};function ea(n){return n[Jo]=n[Jo]||{}}function Sh(n,t,e,s,i){const r=ea(n);r[t]=r[t]||[],r[t].push([e,s,i]),n.addEventListener(t,i)}function sa(n,t){return!t||!yi.call(t,e=>n.indexOf(e)<0)}function Gs(n,t,e,s,i){const r=ea(n);if(t)r[t]&&(r[t]=r[t].filter(([o,a,l])=>{if(i&&l.guid!==i.guid||!sa(o,e)||s&&s!==a)return!0;n.removeEventListener(t,l)}));else for(t in r)Gs(n,t,e,s,i)}N.off=function(n,t,e){if(wt(n))this.each((s,i)=>{!st(i)&&!ve(i)&&!Ae(i)||Gs(i)});else if(dt(n))we(t)&&(e=t,t=""),lt(Vs(n),(s,i)=>{const[r,o]=Ni(i),a=Ti(r);this.each((l,c)=>{!st(c)&&!ve(c)&&!Ae(c)||Gs(c,a,o,t,e)})});else for(const s in n)this.off(s,n[s]);return this},N.remove=function(n){return ee(this,n).detach().off(),this},N.replaceWith=function(n){return this.before(n).remove()},N.replaceAll=function(n){return u(n).replaceWith(this),this};function $h(n,t,e,s,i){if(!dt(n)){for(const r in n)this.on(r,t,e,n[r],i);return this}return dt(t)||(wt(t)||os(t)?t="":wt(e)?(e=t,t=""):(s=e,e=t,t="")),we(s)||(s=e,e=void 0),s?(lt(Vs(n),(r,o)=>{const[a,l]=Ni(o),c=Ti(a),h=a in ta,d=a in $i;c&&this.each((p,f)=>{if(!st(f)&&!ve(f)&&!Ae(f))return;const m=function(y){if(y.target[`___i${y.type}`])return y.stopImmediatePropagation();if(y.namespace&&!sa(l,y.namespace.split(Si))||!t&&(d&&(y.target!==f||y.___ot===c)||h&&y.relatedTarget&&f.contains(y.relatedTarget)))return;let b=f;if(t){let C=y.target;for(;!jo(C,t);)if(C===f||(C=C.parentNode,!C))return;b=C}Object.defineProperty(y,"currentTarget",{configurable:!0,get(){return b}}),Object.defineProperty(y,"delegateTarget",{configurable:!0,get(){return f}}),Object.defineProperty(y,"data",{configurable:!0,get(){return e}});const _=s.call(b,y,y.___td);i&&Gs(f,c,l,t,m),_===!1&&(y.preventDefault(),y.stopPropagation())};m.guid=s.guid=s.guid||u.guid++,Sh(f,c,l,t,m)})}),this):this}N.on=$h;function Th(n,t,e,s){return this.on(n,t,e,s,!0)}N.one=Th;const Nh=/\r?\n/g;function Mh(n,t){return`&${encodeURIComponent(n)}=${encodeURIComponent(t.replace(Nh,`\r -`))}`}const Eh=/file|reset|submit|button|image/i,na=/radio|checkbox/i;N.serialize=function(){let n="";return this.each((t,e)=>{lt(e.elements||[e],(s,i)=>{if(i.disabled||!i.name||i.tagName==="FIELDSET"||Eh.test(i.type)||na.test(i.type)&&!i.checked)return;const r=Ko(i);if(!wt(r)){const o=Bs(r)?r:[r];lt(o,(a,l)=>{n+=Mh(i.name,l)})}})}),n.slice(1)},window.$=u;function ia(n,t){if(n==null)return[n,void 0];typeof t=="string"&&(t=t.split("."));const e=t.join(".");let s=n;const i=[s];for(;typeof s=="object"&&s!==null&&t.length;){let r=t.shift(),o;const a=r.indexOf("[");if(a>0&&a{const i=e[s]??"";n=n.replace(new RegExp(`\\{${s}\\}`,"g"),`${i}`)}),n}for(let e=0;e(n[n.B=1]="B",n[n.KB=1024]="KB",n[n.MB=1048576]="MB",n[n.GB=1073741824]="GB",n[n.TB=1099511627776]="TB",n))(Mi||{});function pt(n,t=2,e){return Number.isNaN(n)?"?KB":(e||(n<1024?e="B":n<1048576?e="KB":n<1073741824?e="MB":n<1099511627776?e="GB":e="TB"),(n/Mi[e]).toFixed(t)+e)}const De=n=>{const t=/^[0-9]*(B|KB|MB|GB|TB)$/;n=n.toUpperCase();const e=n.match(t);if(!e)return 0;const s=e[1];return n=n.replace(s,""),Number.parseInt(n,10)*Mi[s]};let Ei=(document.documentElement.getAttribute("lang")||"zh_cn").toLowerCase().replace("-","_"),ne;function Ih(){return Ei}function Ph(n){Ei=n.toLowerCase()}function oa(n,t){ne||(ne={}),typeof n=="string"&&(n={[n]:t??{}}),u.extend(!0,ne,n)}function G(n,t,e,s,i,r){Array.isArray(n)?ne&&n.unshift(ne):n=ne?[ne,n]:[n],typeof e=="string"&&(r=i,i=s,s=e,e=void 0);const o=i||Ei;let a;for(const l of n){if(!l)continue;const c=l[o]||l.default;if(!c)continue;const h=r&&l===ne?`${r}.${t}`:t;if(a=ra(c,h),a!==void 0)break}return a===void 0?s:e?V(a,...Array.isArray(e)?e:[e]):a}function Ah(n,t,e,s){return G(void 0,n,t,e,s)}G.addLang=oa,G.getLang=Ah,G.getCode=Ih,G.setCode=Ph,oa({zh_cn:{confirm:"确定",save:"保存",cancel:"取消",delete:"删除",reset:"重置",add:"添加"},zh_tw:{confirm:"確定",save:"儲存",cancel:"取消",delete:"刪除",reset:"重置",add:"添加"},en:{confirm:"Confirm",save:"Save",cancel:"Cancel",delete:"Delete",reset:"Reset",add:"Add"}});function aa(n,t,e){n instanceof Headers?n.set(t,e):Array.isArray(n)?n.push([t,e]):n[t]=e}function as(n,t,e){e!=null&&(Array.isArray(e)?e.forEach(s=>as(n,t,s)):n.append(t,e instanceof Blob?e:String(e)))}function Dh(n,t){if(n){const e={text:"text/plain",html:"text/html",json:"application/json",...t};for(const[s,i]of Object.entries(e))if(i.split(",").map(r=>r.trim()).includes(n))return s}return"text"}function qs(n,t){const e=t||new FormData;return n&&(typeof n=="string"&&(n=new URLSearchParams(n)),n instanceof URLSearchParams?n.forEach((s,i)=>{as(e,i,s)}):Array.isArray(n)?n.forEach(([s,i])=>{as(e,s,i)}):n instanceof FormData?n.forEach((s,i)=>{as(e,i,s)}):u.isPlainObject(n)&&Object.entries(n).forEach(([s,i])=>{as(e,s,i)})),e}class Ys{get completed(){return this.data!==void 0||this.error!==void 0}get[Symbol.toStringTag](){return"Ajax"}constructor(t){this.setting=t,this._controller=new AbortController,this._callbacks={success:[],error:[],complete:[]}}on(t,e){return this._callbacks[t].push(e),this}success(t){return this.on("success",t)}done(t){return this.success(t)}fail(t){return this.on("error",t)}complete(t){return this.on("complete",t)}always(t){return this.complete(t)}then(t,e){return this.completed?e&&this.error?e(this.error):t(this.data):(this.success(s=>t(s)),e&&this.fail(e)),this}catch(t){return this.error?(t(this.error),this):this.on("error",e=>t(e))}finally(t){return this.completed?(t(),this):this.complete(()=>t())}abort(t){return this.completed?!1:(this._abortError=t,this._controller.abort(),!0)}getResponseHeader(t){var e;return(e=this.response)==null?void 0:e.headers.get(t)}_init(){if(this.completed)return;const{url:t,type:e,data:s,processData:i=!0,contentType:r,crossDomain:o,accepts:a,dataType:l,timeout:c,dataFilter:h,beforeSend:d,success:p,error:f,complete:m,...y}=this.setting;if((d==null?void 0:d(y))===!1)return;e&&(y.method=e);let b=s;b&&(i&&(b=qs(b)),y.body=b),o&&(y.mode="cors");const _=y.headers||{};aa(_,"X-Requested-With","XMLHttpRequest"),r&&aa(_,"Content-Type",r),y.headers=_,y.signal&&y.signal.addEventListener("abort",()=>{this.abort()}),p&&this.success(p),f&&this.fail(f),m&&this.complete(m),y.signal=this._controller.signal,this.url=t,this.request=y}_emit(t,...e){this._callbacks[t].forEach(s=>{s.call(this,...e)})}async send(){var c;if(this.completed)return[];this._init();const{timeout:t,dataType:e,accepts:s,dataFilter:i,throws:r}=this.setting;t&&(this._timeoutID=window.setTimeout(()=>{this.abort(new Error("timeout"))},t));let o,a,l;try{o=await fetch(this.url,this.request),this.response=o;const{statusText:h}=o;if(o.ok){const d=(c=o.headers.get("Content-Disposition"))==null?void 0:c.startsWith("attachment"),p=d?"blob":e||Dh(o.headers.get("Content-Type"),s);d||p==="blob"||p==="file"?l=await o.blob():p==="json"?l=await o.json():l=await o.text(),this.data=l;const f=(i==null?void 0:i(l,p))??l;this._emit("success",f,h,o)}else throw new Error(h)}catch(h){a=h;let d=!1;a.name==="AbortError"&&(this._abortError?a=this._abortError:d=!0),this.error=a,d||this._emit("error",a,o==null?void 0:o.statusText,a.message)}if(this._timeoutID&&clearTimeout(this._timeoutID),this._emit("complete",o,o==null?void 0:o.statusText),a&&r)throw a;return[l,a,o]}}u.ajax=(n,t)=>{t=t||{},typeof n=="string"?t.url=n:u.extend(t,n);const e=new Ys(t);return e.send(),e},u.getJSON=(n,t,e)=>(typeof t=="function"&&(e=t,t=void 0),u.ajax({url:n,data:t,success:e,dataType:"json"})),u.get=(n,t,e,s,i="GET")=>{let r,o;return typeof t=="function"?(r=t,o=void 0):o=t,typeof e=="function"?(r=e,s=void 0):s=e,u.ajax({method:i,url:n,data:o,success:r,dataType:s})},u.post=(n,t,e,s)=>u.get(n,t,e,s,"POST"),u.fn.load=function(n,t,e){typeof t=="function"&&(e=t,t=void 0);const[s,i]=n.split(" ");return u.get(s,t,(r,o,a)=>{i&&(r=u(r).find(i).html()),u(this).html(r),e==null||e.call(this,r,o,a)},"html"),this};async function Ce(n,t=[],e){const s={throws:!0,dataType:"json"};if(typeof n=="string")s.url=n;else if(typeof n=="object")u.extend(s,n);else if(typeof n=="function"){const o=n(...t);return o instanceof Promise?await o:o}e&&u.extend(s,typeof e=="function"?e(s):e);const i=new Ys(s),[r]=await i.send();return r}function Ii(n){return!!(n&&(typeof n=="string"||typeof n=="object"&&n.url||typeof n=="function"))}u.fetch=Ce;function mt(){return u.guid++}function Qs(n,t){if(n===t)return!1;if(n&&t&&typeof n=="object"&&typeof t=="object"){const e=Array.isArray(n),s=Array.isArray(t);if(e!==s)return!0;if(e&&s){if(n.length!==t.length)return!0;for(let o=0;oQs(s instanceof ke?s.value:s,e[i])))&&(this._value=this._compute(),this._lastDependencies=t.map(s=>s instanceof ke?s.cache:s)),this._value}}function Pi(...n){const t=[],e=new Map,s=(i,r)=>{if(Array.isArray(i)&&(r=i[1],i=i[0]),!i.length)return;const o=e.get(i);typeof o=="number"?t[o][1]=!!r:(e.set(i,t.length),t.push([i,!!r]))};return n.forEach(i=>{typeof i=="function"&&(i=i()),Array.isArray(i)?Pi(...i).forEach(s):i&&typeof i=="object"?Object.entries(i).forEach(s):typeof i=="string"&&i.split(" ").forEach(r=>s(r,!0))}),t.sort((i,r)=>(e.get(i[0])||0)-(e.get(r[0])||0))}const S=(...n)=>Pi(...n).reduce((t,[e,s])=>(s&&t.push(e),t),[]).join(" ");u.classes=S,u.fn.setClass=function(n,...t){return this.each((e,s)=>{const i=u(s);n===!0?i.attr("class",S(i.attr("class"),...t)):i.addClass(S(n,...t))})};const ls=new WeakMap;function Ai(n,t,e){const s=ls.has(n),i=s?ls.get(n):{};typeof t=="string"?i[t]=e:t===null?Object.keys(i).forEach(r=>{delete i[r]}):Object.assign(i,t),Object.keys(i).forEach(r=>{i[r]===void 0&&delete i[r]}),Object.keys(i).length?(!s&&n instanceof Element&&Object.assign(i,u(n).dataset(),i),ls.set(n,i)):ls.delete(n)}function Di(n,t,e){let s=ls.get(n)||{};return!e&&n instanceof Element&&(s=Object.assign({},u(n).dataset(),s)),t===void 0?s:s[t]}u.fn.dataset=u.fn.data,u.fn.data=function(...n){const[t,e]=n;return!n.length||n.length===1&&typeof t=="string"?this.length?Di(this[0],t):void 0:this.each((s,i)=>Ai(i,t,e))},u.fn.removeData=function(n=null){return this.each((t,e)=>Ai(e,n))};function Zs(n,t="z-"){const e=u(n)[0];if(e)return Array.from(e.attributes).reduce((s,i)=>{let{name:r,value:o}=i;if(r.startsWith(t)){r=r.slice(t.length).replace(/-([a-z])/g,a=>a[1].toUpperCase());try{o.startsWith("RAWJS<")&&o.endsWith(">RAWJS")?o=new Function(`return ${o.substring(6,o.length-6)}`)():o=JSON.parse(o)}catch{}s[r]=o}return s},{})}function Li(n,t,e="z-"){const s=u(n);Object.keys(t).forEach(i=>{let r=t[i];typeof r=="function"&&(r=`RAWJS<${r}>RAWJS`),typeof r!="string"&&(r=JSON.stringify(r)),i=i.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`),s.attr(`${e}${i}`,r)})}function Lh(...n){var e;const t=n.length;if(!t)return Zs(this);if(t===1){const[s]=n;return typeof s=="string"?(e=Zs(this))==null?void 0:e[s]:(u.isPlainObject(s)&&Li(this,s),this)}return Li(this,{[n[0]]:n[1]}),this}u.fn.z=Lh,u.fn._attr=u.fn.attr,u.fn.extend({attr(...n){const[t,e]=n;return!n.length||n.length===1&&typeof t=="string"?this._attr.apply(this,n):typeof t=="object"?(t&&Object.keys(t).forEach(s=>{const i=t[s];i===null?this.removeAttr(s):this._attr(s,i)}),this):e===null?this.removeAttr(t):this._attr(t,e)}}),u.Event=(n,t)=>{const[e,...s]=n.split("."),i=new Event(e,{bubbles:!0,cancelable:!0});return i.namespace=s.join("."),i.___ot=e,i.___td=t,i};const cs=(n,t)=>new Promise(e=>{const s=window.setTimeout(e,n);t&&t(s)}),la={};u.share=la;var Xs,q,ca;w.isValidElement=void 0;var xe,ha,da,Ri,hs={},ua=[],Rh=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Js=Array.isArray;function ie(n,t){for(var e in t)n[e]=t[e];return n}function fa(n){var t=n.parentNode;t&&t.removeChild(n)}function v(n,t,e){var s,i,r,o={};for(r in t)r=="key"?s=t[r]:r=="ref"?i=t[r]:o[r]=t[r];if(arguments.length>2&&(o.children=arguments.length>3?Xs.call(arguments,2):e),typeof n=="function"&&n.defaultProps!=null)for(r in n.defaultProps)o[r]===void 0&&(o[r]=n.defaultProps[r]);return tn(n,o,s,i,null)}function tn(n,t,e,s,i){var r={type:n,props:t,key:e,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:i??++ca,__i:-1,__u:0};return i==null&&q.vnode!=null&&q.vnode(r),r}function H(){return{current:null}}function re(n){return n.children}function B(n,t){this.props=n,this.context=t}function Le(n,t){if(t==null)return n.__?Le(n.__,n.__i+1):null;for(var e;tt&&xe.sort(Ri));en.__r=0}function ga(n,t,e,s,i,r,o,a,l,c,h){var d,p,f,m,y,b=s&&s.__k||ua,_=t.length;for(e.__d=l,Fh(e,t,b),l=e.__d,d=0;d<_;d++)(f=e.__k[d])!=null&&typeof f!="boolean"&&typeof f!="function"&&(p=f.__i===-1?hs:b[f.__i]||hs,f.__i=d,Fi(n,f,p,i,r,o,a,l,c,h),m=f.__e,f.ref&&p.ref!=f.ref&&(p.ref&&zi(p.ref,null,f),h.push(f.ref,f.__c||m,f)),y==null&&m!=null&&(y=m),65536&f.__u||p.__k===f.__k?l=ya(f,l,n):typeof f.type=="function"&&f.__d!==void 0?l=f.__d:m&&(l=m.nextSibling),f.__d=void 0,f.__u&=-196609);e.__d=l,e.__e=y}function Fh(n,t,e){var s,i,r,o,a,l=t.length,c=e.length,h=c,d=0;for(n.__k=[],s=0;s0?tn(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)!=null?(i.__=n,i.__b=n.__b+1,a=zh(i,e,o=s+d,h),i.__i=a,r=null,a!==-1&&(h--,(r=e[a])&&(r.__u|=131072)),r==null||r.__v===null?(a==-1&&d--,typeof i.type!="function"&&(i.__u|=65536)):a!==o&&(a===o+1?d++:a>o?h>l-o?d+=a-o:d--:d=a(l!=null&&!(131072&l.__u)?1:0))for(;o>=0||a=0){if((l=t[o])&&!(131072&l.__u)&&i==l.key&&r===l.type)return o;o--}if(a{!e||typeof e!="object"||Object.keys(e).forEach(s=>{let i=e[s];const r=n[s];i!==r&&(r!==void 0&&(s==="className"||s.endsWith("Class")?i=[r,i]:s==="children"?i=[...sn(r),...sn(i)]:typeof r=="object"&&(s==="style"||s.endsWith("Style")||s==="attrs"||s.endsWith("Attrs")||s==="props")&&(i=u.extend(r,i))),n[s]=i)})}),n}function Wi(n){return Object.keys(n).forEach(t=>{n[t]===void 0&&delete n[t]}),n}const Fe=new Map;function ds(n){const{zui:t}=window;return(!Fe.size||n&&!Fe.has(n.toUpperCase()))&&Object.keys(t).forEach(e=>{const s=t[e];!s.NAME||!s.ZUI||Fe.set(e.toLowerCase(),s)}),n?Fe.get(n.toLowerCase()):void 0}function Ca(n,t,e){const s=ds(n);return s?!s.MULTI_INSTANCE&&s.get(t)?(console.error(`[ZUI] cannot create component "${n}" on element which already has a component instance.`,{element:t,options:e}),null):new s(t,e):null}function Hh(n){if(n){const t=ds(n);t&&t.defineFn()}else ds(),Fe.forEach(t=>{t.defineFn()})}u.fn.zuiInit=function(){return this.find("[zui-create],[data-zui]").each(function(){const n=u(this);let t=Zs(n,"data-");const[e,s]=(t.zui||n.attr("zui-create")).split(":");n.zui(e)||(s?t=u.share[s]:delete t.zui,requestAnimationFrame(()=>Ca(e,this,t)))}),this.find("[zui-init]").each(function(){const n=u(this);n.z("zuiInited")||u.runJS(n.z("zuiInited",!0).attr("zui-init"),["$element",n])}),this.find(".hide-before-init").removeClass("invisible hidden opacity-0"),this.find(".scroll-into-view").scrollIntoView(),this.find('[data-on="inited"]').each((n,t)=>{const e=u(t);e.zui()||e.trigger("inited")}),this},u.fn.zui=function(n,t){const e=this[0];if(!e)return;if(typeof n!="string"){const i=Di(e,void 0,!0),r={};let o;return Object.keys(i).forEach(a=>{if(a.startsWith("zui.")){const l=i[a];r[a]=l,(!o||o.gid{u("body").zuiInit()});function ka(n,t=!0){const e=u(n),s=e[0],i="zui-disable-scroll";if(t){if(e.data(i))return;if((e.css("scrollbar-gutter")||"").includes("stable")){e.data(i,{overflow:e.css("overflow")}).css("overflow","hidden");return}const r=s===document.body?window.innerWidth-document.body.clientWidth:s.offsetWidth-s.clientWidth;if(!r)return;const o=e.css("paddingRight")||"0";e.data(i,{paddingRight:o,overflow:e.css("overflow")}).css({paddingRight:`${r+Number.parseInt(o,10)}px`,overflow:"hidden"})}else{const r=e.data(i);if(!r)return;e.css(r).removeData(i)}}u.fn.disableScroll=function(n=!0){return this.each((t,e)=>{ka(e,n)})},u.fn.enableScroll=function(n=!0){return this.disableScroll(!n)};function Bh(n){const t=u(this),e=t.dataset();if(!(e.on||"click").split(" ").includes(n.type))return;const s=e.selector?u(n.target).closest(e.selector):t;if(!s.length)return;const i=l=>l===""?!0:l,r=l=>{if(typeof l=="string")try{l=JSON.parse(l)}catch{}return l};if(i(e.once)){if(e.onceCalled)return;t.dataset("once-called",!0)}if(i(e.prevent)&&n.preventDefault(),i(e.stop)&&n.stopPropagation(),i(e.self)&&n.currentTarget!==n.target)return;const o=[["$element",t],["event",n],["options",e],["$target",s]];if(e.if&&!u.runJS(e.if,...o))return;const a=e.call;if(a){let l=window[a];const c=/^[$A-Z_][0-9A-Z_$.]*$/i.test(a);if(l||(l=u.runJS(a,...o)),!c||!u.isFunction(l))return;const h=[],d=e.params;e.params=h,typeof d=="string"&&d.length&&(d[0]==="["?h.push(...r(d)):h.push(...d.split(", ").map(p=>(p=p.trim(),p==="$element"?t:p==="event"?n:p==="options"?e:p.startsWith("$element.")||p.startsWith("$event.")||p.startsWith("$options.")?u.runJS(p,...o):r(p))))),l(...h)}e.do&&u.runJS(e.do,...o)}u(document).on("click.zui.global change.zui.global inited.zui.global","[data-on]",Bh);function ze(n){if(typeof n=="function")return ze(n());if(typeof n=="number")return[n];let t=n.match(/(\d+)(%|px)?/);return t?[parseInt(t[1]),t[2]]:(t=n.match(/(\d+)\/(\d+)/),t?[100*parseInt(t[1])/parseInt(t[2]),"%"]:[NaN])}function nt(n){if(n==null)return null;const[t,e="px"]=ze(n);return Number.isNaN(t)?typeof n=="string"?n:null:`${t}${e}`}async function rn(n,t){var s,i,r;if(n instanceof Blob){const o=document.createElement("a");return o.href=window.URL.createObjectURL(n),t&&(o.download=decodeURIComponent(t)),o.click(),o.remove(),n}if(n instanceof Response){const o=await n.blob();return t=t||((r=(i=(s=n.headers.get("Content-Disposition"))==null?void 0:s.split(";")[1])==null?void 0:i.split("=")[1])==null?void 0:r.replace(/"/g,"")),rn(o,t)}const e=await fetch(n);return rn(e)}class xa{constructor(t){this._$target=u(t)}on(...t){return this._$target.on(...t),this}one(...t){return this._$target.one(...t),this}off(...t){return this._$target.off(...t),this}trigger(...t){return this._$target.trigger(...t),this}}const Wt=new xa(document);u.bus=Wt,u.on=Wt.on.bind(Wt),u.one=Wt.one.bind(Wt),u.off=Wt.off.bind(Wt),u.trigger=Wt.trigger.bind(Wt);var jh=["Shift","Meta","Alt","Control"],Sa=typeof navigator=="object"?navigator.platform:"",$a=/Mac|iPod|iPhone|iPad/.test(Sa),Uh=$a?"Meta":"Control",Vh=Sa==="Win32"?["Control","Alt"]:$a?["Alt"]:[];function Hi(n,t){return typeof n.getModifierState=="function"&&(n.getModifierState(t)||Vh.includes(t)&&n.getModifierState("AltGraph"))}function Kh(n){return n.trim().split(" ").map(function(t){var e=t.split(/\b\+/),s=e.pop();return[e=e.map(function(i){return i==="$mod"?Uh:i}),s]})}function Ta(n,t){var e;t===void 0&&(t={});var s=(e=t.timeout)!=null?e:1e3,i=Object.keys(n).map(function(a){return[Kh(a),n[a]]}),r=new Map,o=null;return function(a){a instanceof KeyboardEvent&&(i.forEach(function(l){var c=l[0],h=l[1],d=r.get(c)||c;(function(p,f){return!(f[1].toUpperCase()!==p.key.toUpperCase()&&f[1]!==p.code||f[0].find(function(m){return!Hi(p,m)})||jh.find(function(m){return!f[0].includes(m)&&f[1]!==m&&Hi(p,m)}))})(a,d[0])?d.length>1?r.set(c,d.slice(1)):(r.delete(c),h(a)):Hi(a,a.key)||r.delete(c)}),o&&clearTimeout(o),o=setTimeout(r.clear.bind(r),s))}}function Gh(n,t,e){var s;e===void 0&&(e={});var i=(s=e.event)!=null?s:"keydown",r=Ta(t,e);return n.addEventListener(i,r),function(){n.removeEventListener(i,r)}}function Bi(n,t={}){if(!n)return;const e=Object.keys(t).reduce((s,i)=>(t[i].optional||(s[i]={...t[i]}),s),{});return Object.keys(n).forEach(s=>{const i=n[s];i?i===!0?t[s]&&(e[s]={...t[s]}):e[s]=i:delete e[s]}),Object.keys(e).reduce((s,i)=>{const{keys:r,handler:o}=e[i];return typeof r=="string"?s[r]=o:r.forEach(a=>{s[a]=o}),s},{})}function ji(n,t,e){const{timeout:s,event:i="keydown",scope:r,when:o}=e||{},a=Ta(t,{timeout:s});return u(n).on(`${i}.zui.hotkeys${r?`.${r}`:""}`,function(l){o&&o(l)===!1||a(l)})}function Ui(n,t){return u(n).off(`.zui.hotkeys${t?`.${t}`:""}`)}const qh=Gh;u.fn.hotkeys=function(n,t){return ji(this,n,t)},u.fn.unbindHotkeys=function(n){return Ui(this,n)},u.hotkeys=function(n,t){ji(window,n,t)},u.unbindHotkeys=function(n){Ui(window,n)};function on(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement}async function Na(n){(typeof n=="string"||n instanceof Element||n instanceof u)&&(n={target:n});const{target:t,onError:e,onSuccess:s,afterExit:i,afterEnter:r}=n,o=u(t),a=o[0];if(!a)return;const l=a.requestFullscreen||a.webkitRequestFullscreen||a.mozRequestFullScreen;if(!l){e==null||e.call(a,new Error("[ZUI] The browser does not support full screen feature."));return}try{await l.call(a),s==null||s.call(a),u(a).off(".zui.fullscreen"),i&&o.on("exitFullscreen.zui.fullscreen",i),r&&o.on("enterFullscreen.zui.fullscreen",r)}catch(c){e==null||e.call(a,c)}document.zuiBindFullscreenChange||(document.zuiBindFullscreenChange=!0,u(document).on("fullscreenchange.zui webkitfullscreenchange.zui mozfullscreenchange.zui",c=>{const h=on();let d=h;h?u(h).addClass("is-in-fullscreen"):(d=u(document).find(".is-in-fullscreen")[0]||document,u(d).removeClass("is-in-fullscreen")),u("body").toggleClass("has-in-fullscreen",!!h);const p={event:c,target:d,fullscreenElement:h};u(d).trigger(h?"enterFullscreen":"exitFullscreen",p).trigger("toggleFullscreen",p)}))}async function Vi(n){const t=on();return n===!1&&!!t===n?n:t?(document.exitFullscreen(),!1):(await Na(n),!0)}u.fn.fullscreen=function(n){return Vi({target:this,...n})},u.getFullscreenElement=on,u.toggleFullscreen=Vi;function Oe(n){return n.parentNode===document?!1:n.parentNode?Oe(n.parentNode):!0}u.isDetached=Oe,u.fn.isDetached=function(){const n=this[0];return!n||Oe(n)};class X{constructor(t,e){this._inited=!1,this._autoDestory=0;const{KEY:s,DATA_KEY:i,DEFAULT:r,MULTI_INSTANCE:o,NAME:a}=this.constructor;if(!a)throw new Error('[ZUI] The component must have a "NAME" static property.');const l=u(t);if(l.data(s)&&!o)throw new Error("[ZUI] The component has been initialized on element.");const c=l[0],h=mt();this._gid=h,this._element=c;const d=l.parent();if(d.length&&(this._mobs=new MutationObserver(p=>{p.forEach(f=>{f.removedNodes.forEach(m=>{m===c&&(this._autoDestory&&clearTimeout(this._autoDestory),this._autoDestory=window.setTimeout(()=>{this._autoDestory=0,Oe(c)&&this.destroy()},100))})})}),this._mobs.observe(d[0],{childList:!0,subtree:!1})),this._options={...r,...l.dataset()},this.setOptions(e),this._key=this.options.key??`__${h}`,l.data(s,this).attr(i,`${h}`),o){const p=`${s}:ALL`;let f=l.data(p);f||(f=new Map,l.data(p,f)),f.set(this._key,this)}this.init(),requestAnimationFrame(async()=>{this._inited=!0,await this.afterInit(),this.emit("inited",this.options)})}static get ZUI(){return this.NAME.replace(/(^[A-Z]+)/,t=>t.toLowerCase())}static get KEY(){return`zui.${this.NAME}`}static get NAMESPACE(){return`.zui.${this.ZUI}`}static get DATA_KEY(){return`data-zui-${this.NAME}`}static get SELECTOR(){return`[${this.DATA_KEY}]`}get inited(){return this._inited}get element(){return this._element}get key(){return this._key}get options(){return this._options}get gid(){return this._gid}get $element(){return u(this.element)}get $emitter(){return this.$element}get i18nData(){return[this.options.i18n,this.constructor.i18n]}init(){}afterInit(){}render(t){this.setOptions(t)}destroy(){var r;const{KEY:t,DATA_KEY:e,MULTI_INSTANCE:s}=this.constructor,{$element:i}=this;if(this.emit("destroyed"),(r=this._mobs)==null||r.disconnect(),i.off(this.namespace).removeData(t).attr(e,null),s){const o=this.$element.data(`${t}:ALL`);if(o)if(o.delete(this._key),o.size===0)this.$element.removeData(`${t}:ALL`);else{const a=o.values().next().value;i.data(t,a).attr(e,a.gid)}}}setOptions(t){return t&&u.extend(this._options,t),this._options}emit(t,...e){const s=u.Event(t);return s.__src=this,this.$emitter.trigger(s,[this,...e]),s}on(t,e,s){const i=this;this.$element[s!=null&&s.once?"one":"on"](this._wrapEvent(t),function(r,o){(!r.__src||r.__src===i)&&e.call(this,r,o)})}one(t,e){this.on(t,e,{once:!0})}off(t){this.$element.off(this._wrapEvent(t))}i18n(t,e,s){const{i18nData:i}=this;return G(i,t,e,s,this.options.lang,this.constructor.NAME)??G(i,t,e,s,this.options.lang)??`{i18n:${t}}`}get namespace(){return`${this.constructor.NAMESPACE}.${this._key}`}_wrapEvent(t){return t.split(" ").map(e=>e.includes(".")?e:`${e}${this.namespace}`).join(" ")}static get(t,e){const s=u(t);if(this.MULTI_INSTANCE&&e!==void 0){const i=s.data(`${this.KEY}:ALL`);return i?i.get(e):void 0}return s.data(this.KEY)}static ensure(t,e){const s=this.get(t,e==null?void 0:e.key);return s?(e&&s.setOptions(e),s):new this(t,e)}static getAll(t){const{MULTI_INSTANCE:e,SELECTOR:s}=this,i=[];return u(t||document).find(s).each((r,o)=>{if(e){const l=u(o).data(`${this.KEY}:ALL`);if(l){i.push(...l.values());return}}const a=u(o).data(this.KEY);a&&i.push(a)}),i.sort((r,o)=>r.gid-o.gid)}static query(t,e,s){if(t===void 0){let i=this.getAll();return s&&(i=i.filter(s)),i.pop()}return this.get(u(t).closest(this.SELECTOR),e)}static defineFn(t){let e=t||this.ZUI;u.fn[e]&&(e=`zui${this.NAME}`);const s=this;u.fn.extend({[e](i,...r){const o=typeof i=="object"?i:void 0,a=typeof i=="string"?i:void 0;let l;return this.each((c,h)=>{let d=s.get(h);if(d?o&&d.render(o):d=new s(h,o),a){let p=d[a],f=d;p===void 0&&(f=d.$,p=f[a]),typeof p=="function"?l=p.call(f,...r):l=p}}),l!==void 0?l:this}})}}X.DEFAULT={},X.MULTI_INSTANCE=!1;class Ma extends X{init(){const{offset:t=1,side:e,zIndex:s,pinnedClass:i="is-pinned"}=this.options,{$element:r}=this;r.css({position:"sticky",zIndex:s}),e&&r.css(e,-t),this._ob=new IntersectionObserver(([o])=>o.target.classList.toggle(i,o.intersectionRatio=l&&r>=c&&i+o<=h&&r+a<=d;const p=i<=h&&i+o>=l;return r<=d&&r+a>=c&&p}u.fn.isVisible=function(n){return Ki(this,n)};function Gi(n,t,e=!1){const s=u(n);if(t!==void 0){if(t.length){const i=`zui-runjs-${mt()}`;s.append(` From 35ea27ee9db862dafd00f52f56871fa45f4ba0ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=A1=E6=A0=8B?= Date: Tue, 5 Mar 2024 09:31:53 +0800 Subject: [PATCH 151/276] * Fix bug #46474. --- module/release/model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/release/model.php b/module/release/model.php index cd5cdb9a03..47be404477 100644 --- a/module/release/model.php +++ b/module/release/model.php @@ -421,6 +421,7 @@ class releaseModel extends model } elseif(($notify == 'ET' || $notify == 'PT') && !empty($release->build)) { + $type = $notify == 'ET' ? 'execution' : 'project'; $table = $notify == 'ET' ? TABLE_BUILD : TABLE_RELEASE; $members = $this->dao->select('t2.account')->from($table)->alias('t1') ->leftJoin(TABLE_TEAM)->alias('t2')->on("t1.$type=t2.root") From a2318df172b9139cef03e7eea54f06a31bd626fd Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 5 Mar 2024 09:42:13 +0800 Subject: [PATCH 152/276] * Fix project kanban bug. bug #46521. --- extension/lite/project/ext/css/kanban/lite.ui.css | 2 -- module/project/zen.php | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/extension/lite/project/ext/css/kanban/lite.ui.css b/extension/lite/project/ext/css/kanban/lite.ui.css index f20750ed0e..e69de29bb2 100644 --- a/extension/lite/project/ext/css/kanban/lite.ui.css +++ b/extension/lite/project/ext/css/kanban/lite.ui.css @@ -1,2 +0,0 @@ -.kanban-lane-name {background-color: transparent !important;} -.kanban-lane-name span.text{display:none;} diff --git a/module/project/zen.php b/module/project/zen.php index 3d2cc6ce63..15e14550c6 100755 --- a/module/project/zen.php +++ b/module/project/zen.php @@ -1659,7 +1659,7 @@ class projectZen extends project $columnCards = array(); foreach($region as $laneKey => $laneData) { - $lanes[] = array('name' => $laneKey, 'title' => zget($programPairs, $laneKey)); + $lanes[] = array('name' => "lane$laneKey", 'title' => zget($programPairs, $laneKey)); $columns = array(); foreach(array('wait', 'doing', 'closed') as $columnKey) { @@ -1674,7 +1674,7 @@ class projectZen extends project foreach($cardList as $card) { $columnKey = $columnKey == 'doing' ? 'doingProjects' : $columnKey; - $items[$laneKey][$columnKey][] = array('id' => $card->id, 'name' => $card->id, 'title' => $card->name, 'status' => $card->status, 'type' => 'project', 'delay' => !empty($card->delay) ? $card->delay : 0, 'progress' => $card->progress); + $items["lane$laneKey"][$columnKey][] = array('id' => $card->id, 'name' => $card->id, 'title' => $card->name, 'status' => $card->status, 'type' => 'project', 'delay' => !empty($card->delay) ? $card->delay : 0, 'progress' => $card->progress); if(!isset($columnCards[$columnKey])) $columnCards[$columnKey] = 0; $columnCards[$columnKey] ++; @@ -1685,7 +1685,7 @@ class projectZen extends project { $columnKey = 'doingExecutions'; $execution = $latestExecutions[$card->id]; - $items[$laneKey][$columnKey][] = array('id' => $execution->id, 'name' => $execution->id, 'title' => $execution->name, 'status' => $execution->status, 'type' => 'execution', 'delay' => !empty($execution->delay) ? $execution->delay : 0, 'progress' => $execution->progress); + $items["lane$laneKey"][$columnKey][] = array('id' => $execution->id, 'name' => $execution->id, 'title' => $execution->name, 'status' => $execution->status, 'type' => 'execution', 'delay' => !empty($execution->delay) ? $execution->delay : 0, 'progress' => $execution->progress); if(!isset($columnCards[$columnKey])) $columnCards[$columnKey] = 0; $columnCards[$columnKey] ++; From eaecafe51dbcf53e27d9176753a7676053705f60 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Tue, 5 Mar 2024 09:56:29 +0800 Subject: [PATCH 153/276] * Fix bug#46547. --- module/story/ui/edit.html.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/story/ui/edit.html.php b/module/story/ui/edit.html.php index 94bb738c34..bcf654df29 100644 --- a/module/story/ui/edit.html.php +++ b/module/story/ui/edit.html.php @@ -238,9 +238,9 @@ detailBody set::manageLink(createLink('tree', 'browse', "rootID={$story->product}&view=story¤tModuleID=0&branch={$story->branch}")) ) ), - $story->parent >= 0 && $story->type == 'story' && $app->tab == 'product' ? item + $story->parent >= 0 && $story->type == 'story' ? item ( - set::trClass(zget($fields['parent'], 'className', '')), + set::trClass($app->tab == 'product' ? zget($fields['parent'], 'className', '') : 'hidden'), set::name($lang->story->parent), picker(setID('parent'), set::name('parent'), set::items($fields['parent']['options']), set::value($fields['parent']['default'])) ) : null, From cd424b94c212aac459ec385ec036d9ad08467cbd Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 10:04:13 +0800 Subject: [PATCH 154/276] * Fix bug #46381, don't reload if it'll create a bug. --- module/testtask/js/common.ui.js | 1 + module/testtask/js/runcase.ui.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/module/testtask/js/common.ui.js b/module/testtask/js/common.ui.js index eb12c70add..90335f8df6 100644 --- a/module/testtask/js/common.ui.js +++ b/module/testtask/js/common.ui.js @@ -126,6 +126,7 @@ function createBug(event) var link = $.createLink('bug', 'create', $form.data('params') + ',stepIdList=' + stepIdList); loadPage(link); + $('#runCaseModal').closest('.modal').addClass('not-refresh'); } /** diff --git a/module/testtask/js/runcase.ui.js b/module/testtask/js/runcase.ui.js index 7795959078..95833b2abb 100644 --- a/module/testtask/js/runcase.ui.js +++ b/module/testtask/js/runcase.ui.js @@ -6,7 +6,7 @@ $(function() $('#runCaseModal').closest('.modal').on('hide.zui.modal', function() { - loadCurrentPage(); + if(!$(this).hasClass('not-refresh')) loadCurrentPage(); }); /** From ce7612acb1bf3111a49c6c737d035278cc10dd81 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Tue, 5 Mar 2024 10:08:23 +0800 Subject: [PATCH 155/276] * Fix bug#46491. --- extension/lite/story/ext/ui/create.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension/lite/story/ext/ui/create.html.php b/extension/lite/story/ext/ui/create.html.php index ed3c3784f2..6939d320bd 100644 --- a/extension/lite/story/ext/ui/create.html.php +++ b/extension/lite/story/ext/ui/create.html.php @@ -86,7 +86,7 @@ formPanel ( set::width('1/2'), set::label($lang->story->reviewedBy), - set::required($forceReview), + set::required(true), inputGroup ( picker From 5f9b3b91835f026e41afed050c361bb595ba3ea6 Mon Sep 17 00:00:00 2001 From: liwenrui Date: Tue, 5 Mar 2024 10:12:27 +0800 Subject: [PATCH 156/276] * fix llm actions fail to execute. --- module/ai/config/actions.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/module/ai/config/actions.php b/module/ai/config/actions.php index 367cfcd327..d1c38342ef 100644 --- a/module/ai/config/actions.php +++ b/module/ai/config/actions.php @@ -15,12 +15,10 @@ $config->ai->actionList['modeldisable']['icon'] = 'ban-circle'; $config->ai->actionList['modeldisable']['text'] = $lang->ai->models->disable; $config->ai->actionList['modeldisable']['hint'] = $lang->ai->models->disable; $config->ai->actionList['modeldisable']['url'] = 'javascript:confirmDisable("{id}")'; -$config->ai->actionList['modeldisable']['data-app'] = $app->tab; $config->ai->actionList['modeltestconnection']['icon'] = 'controls'; $config->ai->actionList['modeltestconnection']['text'] = $lang->ai->models->testConnection; $config->ai->actionList['modeltestconnection']['hint'] = $lang->ai->models->testConnection; $config->ai->actionList['modeltestconnection']['url'] = 'javascript:testConnection("{id}")'; -$config->ai->actionList['modeltestconnection']['data-app'] = $app->tab; $config->ai->actionList['modeledit']['icon'] = 'edit'; $config->ai->actionList['modeledit']['text'] = $lang->ai->models->edit; $config->ai->actionList['modeledit']['hint'] = $lang->ai->models->edit; From a11dfeb30f7ccc62c3f6055e617679fac0cfcb86 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Tue, 5 Mar 2024 10:19:48 +0800 Subject: [PATCH 157/276] * Fix bug#46556. --- module/story/ui/submitreview.html.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/module/story/ui/submitreview.html.php b/module/story/ui/submitreview.html.php index 8c7099ce67..da756c8244 100644 --- a/module/story/ui/submitreview.html.php +++ b/module/story/ui/submitreview.html.php @@ -26,7 +26,8 @@ if(!$this->story->checkForceReview()) setID('needNotReview'), set::name('needNotReview'), set::text($lang->story->needNotReview), - set::value(1) + set::value(1), + set::checked($needReview) ) ); } @@ -50,7 +51,8 @@ formPanel set::name('reviewer[]'), set::value($story->reviewer), set::multiple(true), - set::items($reviewers) + set::items($reviewers), + set::disabled($needReview) ), $needNotReviewBox ) From 0d839fd7e5c59876c3318578b63b9ab1f8768840 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 10:24:43 +0800 Subject: [PATCH 158/276] * Fix bug #46549. --- framework/base/control.class.php | 4 ++-- module/index/config.php | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/framework/base/control.class.php b/framework/base/control.class.php index 7454749d2c..405f3940ff 100644 --- a/framework/base/control.class.php +++ b/framework/base/control.class.php @@ -685,8 +685,8 @@ class baseControl unset($this->view->pager->lang); $output['status'] = is_object($this->view) ? 'success' : 'fail'; - $output['data'] = json_encode($this->view); - $output['md5'] = md5(json_encode($this->view)); + $output['data'] = json_encode($this->view) ? json_encode($this->view) : ''; + $output['md5'] = md5($output['data']); $this->output = json_encode($output); } diff --git a/module/index/config.php b/module/index/config.php index b3544e4c32..42511455ee 100644 --- a/module/index/config.php +++ b/module/index/config.php @@ -32,3 +32,4 @@ $config->index->oldPages[] = 'ai-editminiprogramcategory'; $config->index->oldPages[] = 'ai-miniprograms'; $config->index->oldPages[] = 'ai-prompts'; $config->index->oldPages[] = 'ai-promptview'; +$config->index->oldPages[] = 'api-debug'; From 3000ba7be991722c12b42969d4f272ac50176ecf Mon Sep 17 00:00:00 2001 From: liwenrui Date: Tue, 5 Mar 2024 09:56:54 +0800 Subject: [PATCH 159/276] * add zentao client download menu. --- lib/zin/wg/header/v1.php | 13 ++++++++++--- module/common/lang/zh-cn.php | 8 ++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/zin/wg/header/v1.php b/lib/zin/wg/header/v1.php index 006317571d..5891dfc465 100644 --- a/lib/zin/wg/header/v1.php +++ b/lib/zin/wg/header/v1.php @@ -184,20 +184,27 @@ class header extends wg ); $langItems = array(); - foreach ($app->config->langs as $key => $value) + foreach($app->config->langs as $key => $value) { $langItems[] = array('text' => $value, 'data-value' => $key, 'url' => "javascript:selectLang(\"$key\")", 'active' => $app->cookie->lang == $key); } $items[] = array('text' => $lang->lang, 'icon' => 'lang', 'items' => $langItems); + /* Zentao desktop client menu. */ + if(isset($config->xxserver->installed) && $config->xuanxuan->turnon) + { + $clientSubMenu = array(); + $clientSubMenu[] = array('text' => $lang->downloadClient, 'url' => createLink('misc', 'downloadClient'), 'data-toggle' => 'modal', 'innerClass' => $modalClass); + $clientSubMenu[] = array('text' => $lang->clientHelp, 'url' => $lang->clientHelpLink, 'attrs' => array('data-app' => 'help')); + $items[] = array('text' => $lang->clientName, 'icon' => 'desktop', 'items' => $clientSubMenu); + } + $helpItems = array(); $manualUrl = ((!empty($config->isINT)) ? $config->manualUrl['int'] : $config->manualUrl['home']) . '&theme=' . $_COOKIE['theme']; $helpItems[] = array('text' => $lang->manual, 'url' => $manualUrl, 'attrs' => array('data-app' => 'help')); $helpItems[] = array('text' => $lang->changeLog, 'url' => createLink('misc', 'changeLog'), 'data-toggle' => 'modal', 'innerClass' => $modalClass); $items[] = array('text' => $lang->help, 'icon' => 'help', 'items' => $helpItems); - /* printClientLink */ - $items[] = array('text' => $lang->aboutZenTao, 'icon' => 'about', 'url' => createLink('misc', 'about'), 'data-toggle' => 'modal', 'innerClass' => $modalClass); $items[] = array('type' => 'html', 'className' => 'menu-item', 'html' => $lang->designedByAIUX); diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 4f99160060..286b7f8d75 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -566,11 +566,11 @@ $lang->colorPicker = new stdclass(); $lang->colorPicker->errorTip = '不是有效的颜色值'; $lang->downNotify = "下载桌面提醒"; -$lang->clientName = "客户端"; -$lang->downloadClient = "下载客户端"; +$lang->clientName = "大桌面"; +$lang->downloadClient = "下载大桌面"; $lang->downloadMobile = "下载移动端"; -$lang->clientHelp = "客户端使用说明"; -$lang->clientHelpLink = "http://www.zentao.net/book/zentaopmshelp/302.html#2"; +$lang->clientHelp = "大桌面使用说明"; +$lang->clientHelpLink = "https://www.zentao.net/book/zentaopmshelp/302.html#4"; $lang->website = "https://www.zentao.net"; $lang->suhosinInfo = "警告:数据太多,请在php.ini中修改sohusin.post.max_vars和sohusin.request.max_vars(大于%s的数)。 保存并重新启动apache或php-fpm,否则会造成部分数据无法保存。"; From 79e80d9284c68d0cfc67c3f06fafd83a6956b3c7 Mon Sep 17 00:00:00 2001 From: liwenrui Date: Tue, 5 Mar 2024 10:30:37 +0800 Subject: [PATCH 160/276] * mark client download page as old. --- module/index/config.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/index/config.php b/module/index/config.php index 42511455ee..36cbbb1ade 100644 --- a/module/index/config.php +++ b/module/index/config.php @@ -33,3 +33,4 @@ $config->index->oldPages[] = 'ai-miniprograms'; $config->index->oldPages[] = 'ai-prompts'; $config->index->oldPages[] = 'ai-promptview'; $config->index->oldPages[] = 'api-debug'; +$config->index->oldPages[] = 'misc-downloadclient'; From ace87ca4694e569416e2a5e78a570119e6a799a6 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 10:33:29 +0800 Subject: [PATCH 161/276] * Fix bug #46528. --- module/todo/control.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/todo/control.php b/module/todo/control.php index 217c6ff27d..f8ac06d10b 100755 --- a/module/todo/control.php +++ b/module/todo/control.php @@ -60,7 +60,7 @@ class todo extends control $todo->id = $todoID; $this->todoZen->afterCreate($todo, $form); - if(!empty($todoData->objectID)) return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true)); + if(!empty($todoData->objectID)) return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true, 'load' => true)); if($from == 'block') { From c1138471d0f8eca7ef64475d6b12dfdf5cde7c4d Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 10:34:50 +0800 Subject: [PATCH 162/276] * Fix bug #46552. --- module/custom/css/required.ui.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/custom/css/required.ui.css b/module/custom/css/required.ui.css index dcb28cfdac..1031aac645 100644 --- a/module/custom/css/required.ui.css +++ b/module/custom/css/required.ui.css @@ -1,2 +1,2 @@ -#requiredForm .form-row .form-group {padding-left: 8rem;} -#requiredForm .form-row .form-label {width: 8rem;} +#requiredForm .form-group {padding-left: 8rem;} +#requiredForm .form-group .form-label {width: 8rem;} From 08fde224e46a847af126e64631270fb11218642e Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Tue, 5 Mar 2024 10:37:04 +0800 Subject: [PATCH 163/276] * Fix bug#46550. --- module/execution/js/story.ui.js | 8 +++----- module/product/js/browse.ui.js | 7 ++----- module/story/model.php | 24 ++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/module/execution/js/story.ui.js b/module/execution/js/story.ui.js index dfc0c34f96..aae8e9ba63 100644 --- a/module/execution/js/story.ui.js +++ b/module/execution/js/story.ui.js @@ -77,12 +77,10 @@ window.renderStoryCell = function(result, info) if(info.col.name == 'title' && result) { let html = ''; + + if(story.parent > 0 && $.cookie.get('tab') == 'execution') html += story.parentName + ' / '; if(typeof modulePairs[story.moduleID] != 'undefined') html += "" + modulePairs[story.moduleID] + " "; - if(story.parent > 0) - { - if($.cookie.get('tab') == 'execution') html += story.parentName + ' / '; - html += "" + childrenAB + ""; - } + if(story.parent > 0) html += "" + childrenAB + ""; if(html) result.unshift({html}); } return result; diff --git a/module/product/js/browse.ui.js b/module/product/js/browse.ui.js index caa68836a5..c54c9ab14c 100644 --- a/module/product/js/browse.ui.js +++ b/module/product/js/browse.ui.js @@ -62,12 +62,9 @@ window.renderCell = function(result, info) { const story = info.row.data; let html = ''; + if(story.parent > 0 && $.cookie.get('tab') == 'project') html += story.parentName + ' / '; if(typeof modulePairs[story.rawModule] != 'undefined') html += "" + modulePairs[story.rawModule] + " "; - if(story.parent > 0) - { - if($.cookie.get('tab') == 'project') html += story.parentName + ' / '; - html += "" + (storyType == 'requirement' ? 'SR' : childrenAB) + " "; - } + if(story.parent > 0) html += "" + (storyType == 'requirement' ? 'SR' : childrenAB) + " "; if(story.color) result[0].props.style = 'color: ' + story.color; if(html) result.unshift({html}); } diff --git a/module/story/model.php b/module/story/model.php index 407a4f12fb..f1bba0a4ca 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -1470,6 +1470,14 @@ class storyModel extends model */ public function batchChangeModule(array $storyIdList, int $moduleID): array { + $storyIdList = array_filter($storyIdList); + foreach($storyIdList as $index => $storyID) + { + /* 处理选中的子需求的ID,截取-后的子需求ID。*/ + /* Process selected child story ID. */ + if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); + } + $now = helper::now(); $allChanges = array(); $oldStories = $this->getByList($storyIdList); @@ -1501,6 +1509,14 @@ class storyModel extends model */ public function batchChangePlan(array $storyIdList, int $planID, int $oldPlanID = 0): array { + $storyIdList = array_filter($storyIdList); + foreach($storyIdList as $index => $storyID) + { + /* 处理选中的子需求的ID,截取-后的子需求ID。*/ + /* Process selected child story ID. */ + if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); + } + /* Prepare data. */ $now = helper::now(); $oldStories = $this->getByList($storyIdList); @@ -1663,6 +1679,14 @@ class storyModel extends model */ public function batchChangeStage(array $storyIdList, string $stage): string|null { + $storyIdList = array_filter($storyIdList); + foreach($storyIdList as $index => $storyID) + { + /* 处理选中的子需求的ID,截取-后的子需求ID。*/ + /* Process selected child story ID. */ + if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); + } + $now = helper::now(); $account = $this->app->user->account; $oldStories = $this->getByList($storyIdList); From 092e8043c98a3e6a6eb315368367f109693c3f1f Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 10:43:34 +0800 Subject: [PATCH 164/276] * Fix bug #46520. --- lib/zin/wg/docmenu/css/v1.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/zin/wg/docmenu/css/v1.css b/lib/zin/wg/docmenu/css/v1.css index c6b45914b1..197a039177 100644 --- a/lib/zin/wg/docmenu/css/v1.css +++ b/lib/zin/wg/docmenu/css/v1.css @@ -34,4 +34,4 @@ .has-module-menu-header #mainMenu {padding-left: 215px;} .has-module-menu-header.is-sidebar-left-collapsed #mainMenu {padding-left: 0;} -#mainContent .sidebar {min-width: 200px !important;} +#mainContent > .sidebar:not(.is-collapsed) {min-width: 200px !important;} From 7cc6df4c4bf25056fa81f8597064e743f2278d19 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 10:52:30 +0800 Subject: [PATCH 165/276] * Fix bug #46564. --- module/custom/model.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/module/custom/model.php b/module/custom/model.php index 3393899144..c357dbf068 100644 --- a/module/custom/model.php +++ b/module/custom/model.php @@ -193,7 +193,11 @@ class customModel extends model ksort($menu, SORT_NUMERIC); /* Set divider in main && module menu. */ - if(!isset($lang->{$tab}->menuOrder)) $lang->{$tab}->menuOrder = array(); + if(!isset($lang->{$tab}->menuOrder)) + { + if(!isset($lang->{$tab})) $lang->{$tab} = new stdclass(); + $lang->{$tab}->menuOrder = array(); + } ksort($lang->{$tab}->menuOrder, SORT_NUMERIC); $group = 0; From c062171177cfcf7715bd8bfd29b9b64aa5799454 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 11:02:12 +0800 Subject: [PATCH 166/276] * Fix bug #46570. --- module/execution/ui/grouptask.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/execution/ui/grouptask.html.php b/module/execution/ui/grouptask.html.php index e8d387a364..4b1d1a1dba 100644 --- a/module/execution/ui/grouptask.html.php +++ b/module/execution/ui/grouptask.html.php @@ -120,7 +120,7 @@ toolbar set::items($importItems), set::placement('bottom-end') ) : null, - $canCreate ? item(set($createItem + array('class' => 'btn primary', 'icon' => 'plus'))) : null + $canCreate && isset($createItem) ? item(set($createItem + array('class' => 'btn primary', 'icon' => 'plus'))) : null ); $groupList = array(); From da49ef5ee24741c46cdb5d821511bf56cd65b087 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 11:02:20 +0800 Subject: [PATCH 167/276] * Can't create a task if the execution can't be modified. --- module/execution/ui/tree.html.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/module/execution/ui/tree.html.php b/module/execution/ui/tree.html.php index 824aaab0ab..b9488a903c 100644 --- a/module/execution/ui/tree.html.php +++ b/module/execution/ui/tree.html.php @@ -29,6 +29,7 @@ featureBar if(!isset($browseType)) $browseType = 'all'; if(!isset($orderBy)) $orderBy = ''; +$canCreateTask = false; $canImportTask = hasPriv('task', 'importTask'); $canImportBug = hasPriv('task', 'importBug'); if(common::canModify('execution', $execution)) @@ -38,6 +39,7 @@ if(common::canModify('execution', $execution)) { $importBugItem = array('text' => $lang->execution->importBug, 'url' => $this->createLink('execution', 'importBug', "execution={$execution->id}"), 'className' => 'importBug'); } + $canCreateTask = hasPriv('task', 'create'); } $importItems = !empty($importTaskItem) && empty($importBugItem) ? array($importTaskItem) : array(); $importItems = empty($importTaskItem) && !empty($importBugItem) ? array($importBugItem) : $importItems; @@ -69,7 +71,7 @@ toolbar 'url' => createLink('task', 'export', "execution={$executionID}&orderBy={$orderBy}&type=tree"), 'data-toggle' => 'modal' ))) : null, - hasPriv('task', 'create') ? item(set(array + $canCreateTask ? item(set(array ( 'icon' => 'plus', 'text' => $lang->task->create, @@ -90,7 +92,7 @@ if(empty($tree)) setClass('text-gray'), $lang->task->noTask ), - common::hasPriv('task', 'create', $checkObject) ? btn + $canCreateTask ? btn ( set::text($lang->task->create), set::icon('plus'), From 200809ec7dde049f2726c89215637264d457b184 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Tue, 5 Mar 2024 11:05:18 +0800 Subject: [PATCH 168/276] * Optimized code. --- module/story/control.php | 33 ++++++++------------------------- module/story/model.php | 40 ---------------------------------------- module/story/zen.php | 20 ++++++++++++++++++++ 3 files changed, 28 insertions(+), 65 deletions(-) diff --git a/module/story/control.php b/module/story/control.php index c867a1c21d..cff7383f93 100755 --- a/module/story/control.php +++ b/module/story/control.php @@ -641,8 +641,7 @@ class story extends control { if(!$this->post->storyIdList) return $this->send(array('result' => 'success', 'load' => $this->session->storyList)); - $storyIdList = $this->post->storyIdList; - $storyIdList = array_unique($storyIdList); + $storyIdList = $this->storyZen->convertChildID($this->post->storyIdList); $message = $this->story->batchReview($storyIdList, $result, $reason); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); $this->loadModel('score')->create('ajax', 'batchOther'); @@ -861,8 +860,7 @@ class story extends control public function batchClose(int $productID = 0, int $executionID = 0, string $storyType = 'story', string $from = '') { if(!$this->post->storyIdList) return $this->send(array('result' => 'success', 'load' => $this->session->storyList)); - $storyIdList = $this->post->storyIdList; - $storyIdList = array_unique($storyIdList); + $storyIdList = $this->storyZen->convertChildID($this->post->storyIdList); $this->story->replaceURLang($storyType); @@ -936,7 +934,7 @@ class story extends control { if(empty($_POST['storyIdList'])) return $this->send(array('result' => 'success', 'load' => true)); - $storyIdList = array_unique($this->post->storyIdList); + $storyIdList = $this->storyZen->convertChildID($this->post->storyIdList); $allChanges = $this->story->batchChangeModule($storyIdList, $moduleID); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -1018,7 +1016,7 @@ class story extends control { if(empty($_POST['storyIdList'])) return $this->send(array('result' => 'success', 'load' => true)); - $storyIdList = array_unique($this->post->storyIdList); + $storyIdList = $this->storyZen->convertChildID($this->post->storyIdList); $allChanges = $this->story->batchChangePlan($storyIdList, $planID, $oldPlanID); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -1047,14 +1045,7 @@ class story extends control if(!empty($_POST['storyIdList'])) $storyIdList = $this->post->storyIdList; if(is_string($storyIdList)) $storyIdList = array_filter(explode(',', $storyIdList)); - $storyIdList = array_unique($storyIdList); - - foreach($storyIdList as $index => $storyID) - { - /* 处理选中的子需求的ID,截取-后的子需求ID。*/ - /* Process selected child story ID. */ - if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); - } + $storyIdList = $this->storyZen->convertChildID($storyIdList); $plans = $this->loadModel('productplan')->getPlansByStories($storyIdList); if(empty($confirm)) @@ -1115,7 +1106,7 @@ class story extends control { if(empty($_POST['storyIdList'])) return $this->send(array('result' => 'success', 'load' => true)); - $storyIdList = array_unique($this->post->storyIdList); + $storyIdList = $this->storyZen->convertChildID($this->post->storyIdList); $message = $this->story->batchChangeStage($storyIdList, $stage); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); $this->loadModel('score')->create('ajax', 'batchOther'); @@ -1176,17 +1167,9 @@ class story extends control if(empty($_POST['storyIdList'])) return $this->send(array('result' => 'success', 'load' => true)); if(empty($assignedTo)) $assignedTo = $this->post->assignedTo; - $storyIdList = array_unique($this->post->storyIdList); - foreach($storyIdList as $index => $storyID) - { - /* 处理选中的子需求的ID,截取-后的子需求ID。*/ - /* Process selected child story ID. */ - if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); - } - + $storyIdList = $this->storyZen->convertChildID($this->post->storyIdList); $oldStories = $this->story->getByList($storyIdList); - - $allChanges = $this->story->batchAssignTo($storyIdList, $assignedTo); + $allChanges = $this->story->batchAssignTo($storyIdList, $assignedTo); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); $ignoreStories = array(); diff --git a/module/story/model.php b/module/story/model.php index f1bba0a4ca..299b6da318 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -115,14 +115,6 @@ class storyModel extends model { if(empty($storyIdList)) return array(); - $storyIdList = array_filter($storyIdList); - foreach($storyIdList as $index => $storyID) - { - /* 处理选中的子需求的ID,截取-后的子需求ID。*/ - /* Process selected child story ID. */ - if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); - } - return $this->dao->select('t1.*, t2.spec, t2.verify, t3.name as productTitle, t3.deleted as productDeleted') ->from(TABLE_STORY)->alias('t1') ->leftJoin(TABLE_STORYSPEC)->alias('t2')->on('t1.id=t2.story') @@ -1113,14 +1105,6 @@ class storyModel extends model $this->loadModel('action'); $this->app->loadLang('product'); - $storyIdList = array_filter($storyIdList); - foreach($storyIdList as $index => $storyID) - { - /* 处理选中的子需求的ID,截取-后的子需求ID。*/ - /* Process selected child story ID. */ - if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); - } - $oldStories = $this->getByList($storyIdList); $hasResult = $this->dao->select('story,version,result')->from(TABLE_STORYREVIEW)->where('story')->in($storyIdList)->andWhere('reviewer')->eq($account)->andWhere('result')->ne('')->orderBy('version')->fetchAll('story'); $reviewerList = $this->dao->select('story,reviewer,result,version')->from(TABLE_STORYREVIEW)->where('story')->in($storyIdList)->orderBy('version')->fetchGroup('story', 'reviewer'); @@ -1470,14 +1454,6 @@ class storyModel extends model */ public function batchChangeModule(array $storyIdList, int $moduleID): array { - $storyIdList = array_filter($storyIdList); - foreach($storyIdList as $index => $storyID) - { - /* 处理选中的子需求的ID,截取-后的子需求ID。*/ - /* Process selected child story ID. */ - if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); - } - $now = helper::now(); $allChanges = array(); $oldStories = $this->getByList($storyIdList); @@ -1509,14 +1485,6 @@ class storyModel extends model */ public function batchChangePlan(array $storyIdList, int $planID, int $oldPlanID = 0): array { - $storyIdList = array_filter($storyIdList); - foreach($storyIdList as $index => $storyID) - { - /* 处理选中的子需求的ID,截取-后的子需求ID。*/ - /* Process selected child story ID. */ - if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); - } - /* Prepare data. */ $now = helper::now(); $oldStories = $this->getByList($storyIdList); @@ -1679,14 +1647,6 @@ class storyModel extends model */ public function batchChangeStage(array $storyIdList, string $stage): string|null { - $storyIdList = array_filter($storyIdList); - foreach($storyIdList as $index => $storyID) - { - /* 处理选中的子需求的ID,截取-后的子需求ID。*/ - /* Process selected child story ID. */ - if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); - } - $now = helper::now(); $account = $this->app->user->account; $oldStories = $this->getByList($storyIdList); diff --git a/module/story/zen.php b/module/story/zen.php index 68c16ec36d..65731cd7dc 100644 --- a/module/story/zen.php +++ b/module/story/zen.php @@ -1938,4 +1938,24 @@ class storyZen extends story } if(!$projectInfo->multiple) $this->view->hiddenPlan = true; } + + /** + * Convert child ID. + * + * @param array $storyIdList + * @access protected + * @return array + */ + protected function convertChildID(array $storyIdList) + { + $storyIdList = array_unique($storyIdList); + $storyIdList = array_filter($storyIdList); + foreach($storyIdList as $index => $storyID) + { + /* 处理选中的子需求的ID,截取-后的子需求ID。*/ + /* Process selected child story ID. */ + if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); + } + return $storyIdList; + } } From 8e8e47c1b76cf96270c159ac6ecf6d4bf794ab96 Mon Sep 17 00:00:00 2001 From: liwenrui Date: Tue, 5 Mar 2024 11:07:43 +0800 Subject: [PATCH 169/276] * fix client download. --- module/index/config.php | 1 - module/misc/js/downloadclient.ui.js | 39 ++++---- module/misc/ui/downloadclient.html.php | 2 +- module/misc/view/downloadclient.html.php | 117 ----------------------- 4 files changed, 21 insertions(+), 138 deletions(-) delete mode 100644 module/misc/view/downloadclient.html.php diff --git a/module/index/config.php b/module/index/config.php index 36cbbb1ade..42511455ee 100644 --- a/module/index/config.php +++ b/module/index/config.php @@ -33,4 +33,3 @@ $config->index->oldPages[] = 'ai-miniprograms'; $config->index->oldPages[] = 'ai-prompts'; $config->index->oldPages[] = 'ai-promptview'; $config->index->oldPages[] = 'api-debug'; -$config->index->oldPages[] = 'misc-downloadclient'; diff --git a/module/misc/js/downloadclient.ui.js b/module/misc/js/downloadclient.ui.js index 970113c3de..b0fa688fd4 100644 --- a/module/misc/js/downloadclient.ui.js +++ b/module/misc/js/downloadclient.ui.js @@ -1,32 +1,33 @@ -window.clickSubmit = function() +window.clickSubmit = () => { const os = $('#os').zui('picker').$.state.value; loadPage({url : $.createLink('misc', 'downloadClient', "action=getPackage&os=" + os), selector : '#downloadClient', success: getClient}); -} +}; function getClient() { const os = $('#os').val(); - var link = $.createLink('misc', 'ajaxGetClientPackage', 'os=' + os); + const link = $.createLink('misc', 'ajaxGetClientPackage', 'os=' + os); progress = setInterval("showPackageSize()", 1000); - $.getJSON(link, function(response) + $.getJSON(link, res => { - if(response.result == 'success') + if(res.result == 'success') { clearInterval(progress); $('#downloading').addClass('hidden'); $('#downloaded').removeClass('hidden'); $('#setting').removeClass('hidden'); - var link = $.createLink('misc', 'ajaxSetClientConfig', 'os=' + os); - $.getJSON(link, function(response) + const link = $.createLink('misc', 'ajaxSetClientConfig', 'os=' + os); + $.getJSON(link, function(res) { - if(response.result == 'success') + console.log(res); + if(res.result == 'success') { $('#setted').removeClass('hidden'); - var link = $.createLink('misc', 'downloadClient', "action=downloadPackage" + '&os=' + os); - $.closeModal(); - location.href = link; + const link = $.createLink('misc', 'downloadClient', "action=downloadPackage" + '&os=' + os); + zui.Modal.hide(); + open(link, '_blank'); } else { @@ -34,7 +35,7 @@ function getClient() $('#configError').removeClass('hidden'); $('#hasError').removeClass('hidden'); $('#clearTmp').removeClass('hidden'); - $('#hasError').text(response.message); + $('#hasError').text(res.message); } }); } @@ -45,24 +46,24 @@ function getClient() $('#downloadError').removeClass('hidden'); $('#hasError').removeClass('hidden'); $('#clearTmp').removeClass('hidden'); - $('#hasError').text(response.message); + $('#hasError').text(res.message); } }); } -window.showPackageSize = function() +window.showPackageSize = () => { const os = $('#os').val(); - var link = $.createLink('misc', 'ajaxGetPackageSize', 'os=' + os); - $.getJSON(link, function(response) + const link = $.createLink('misc', 'ajaxGetPackageSize', 'os=' + os); + $.getJSON(link, res => { - if(response.result == 'success') + if(res.result == 'success') { - $('#downloading span').text(response.size); + $('#downloading span').text(res.size); } else { $('#downloading span').text(0); } }); -} +}; diff --git a/module/misc/ui/downloadclient.html.php b/module/misc/ui/downloadclient.html.php index 3239bf565d..9b86e6ba07 100644 --- a/module/misc/ui/downloadclient.html.php +++ b/module/misc/ui/downloadclient.html.php @@ -29,7 +29,7 @@ formPanel set::id('os'), set::name('os'), set::items($lang->misc->client->osList), - set::value($config->xuanxuan->version) + set::value($os) ) ) : null, $action == 'selectPackage' ? div(set::className('center'), btn(set::className('primary btn-wide'), set('data-on', 'click'), set('data-call', 'clickSubmit'), $lang->save)) : null, diff --git a/module/misc/view/downloadclient.html.php b/module/misc/view/downloadclient.html.php deleted file mode 100644 index 25c47eda86..0000000000 --- a/module/misc/view/downloadclient.html.php +++ /dev/null @@ -1,117 +0,0 @@ - - - From 121edfbbd4c407c72409ef3cb29e7dae39429024 Mon Sep 17 00:00:00 2001 From: liwenrui Date: Tue, 5 Mar 2024 11:10:08 +0800 Subject: [PATCH 170/276] * use latest version of xuan. --- ci.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci.json b/ci.json index 6a735b212e..0fe70e4b0c 100644 --- a/ci.json +++ b/ci.json @@ -2,7 +2,7 @@ "pkg": { "xuanxuan": { "gitVersion": "f501e962d26241befbe0b18cf770e41e0f49d7e4", - "version": "8.0" + "version": "8.0.2" }, "zentaoext": { "gitVersion": "master", From 38cf038ed3a891f2caf4a4aabbca9415406779a7 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 11:16:07 +0800 Subject: [PATCH 171/276] * Fix bug #46574. --- module/story/model.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/module/story/model.php b/module/story/model.php index 299b6da318..636567b175 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -115,6 +115,15 @@ class storyModel extends model { if(empty($storyIdList)) return array(); + if(is_string($storyIdList)) $storyIdList = explode(',', $storyIdList); + $storyIdList = array_filter($storyIdList); + foreach($storyIdList as $index => $storyID) + { + /* 处理选中的子需求的ID,截取-后的子需求ID。*/ + /* Process selected child story ID. */ + if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); + } + return $this->dao->select('t1.*, t2.spec, t2.verify, t3.name as productTitle, t3.deleted as productDeleted') ->from(TABLE_STORY)->alias('t1') ->leftJoin(TABLE_STORYSPEC)->alias('t2')->on('t1.id=t2.story') From 795d63e5e864d6a034adf880cd0ad0c992f5601d Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 11:21:23 +0800 Subject: [PATCH 172/276] * Fix bug #46574. --- module/story/model.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/module/story/model.php b/module/story/model.php index 636567b175..299b6da318 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -115,15 +115,6 @@ class storyModel extends model { if(empty($storyIdList)) return array(); - if(is_string($storyIdList)) $storyIdList = explode(',', $storyIdList); - $storyIdList = array_filter($storyIdList); - foreach($storyIdList as $index => $storyID) - { - /* 处理选中的子需求的ID,截取-后的子需求ID。*/ - /* Process selected child story ID. */ - if(strpos((string)$storyID, '-') !== false) $storyIdList[$index] = substr($storyID, strpos($storyID, '-') + 1); - } - return $this->dao->select('t1.*, t2.spec, t2.verify, t3.name as productTitle, t3.deleted as productDeleted') ->from(TABLE_STORY)->alias('t1') ->leftJoin(TABLE_STORYSPEC)->alias('t2')->on('t1.id=t2.story') From de16b1cc68bdbd0860a382f081bdda07d442eca3 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 11:26:16 +0800 Subject: [PATCH 173/276] * Fix bug #46492. --- module/testcase/model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/testcase/model.php b/module/testcase/model.php index d9fa0678b8..702f2e2794 100755 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -1852,6 +1852,7 @@ class testcaseModel extends model foreach($scenes as $id => $scene) { $scene = $this->buildSceneBaseOnCase($scene, $fieldTypes, zget($cases, $id, array())); + $scene->scene = $scene->parent; if(isset($scenes[$scene->parent])) { From d141ae81d687fb517b94131c52c79480b410df4e Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 11:28:26 +0800 Subject: [PATCH 174/276] * Fix bug #46576. --- framework/base/helper.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/base/helper.class.php b/framework/base/helper.class.php index 31fd2a6eaf..4b13541229 100644 --- a/framework/base/helper.class.php +++ b/framework/base/helper.class.php @@ -170,7 +170,7 @@ class baseHelper $sign = !str_contains($link, '?') ? "?" : "&"; $appendString = ''; - if($onlyBody or self::inOnlyBodyMode()) $appendString = $sign . "onlybody=yes"; + if($onlyBody) $appendString = $sign . "onlybody=yes"; if(self::isWithTID() and !str_contains($link, 'tid=')) $appendString .= empty($appendString) ? "{$sign}tid={$_GET['tid']}" : "&tid={$_GET['tid']}"; return $link . $appendString; } From a938a8dc55244101ade0a89dd16c17eee2e98ffc Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 13:13:45 +0800 Subject: [PATCH 175/276] * Fix bug #46492. --- module/testcase/js/browse.ui.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/module/testcase/js/browse.ui.js b/module/testcase/js/browse.ui.js index b36a17e19d..851831e072 100644 --- a/module/testcase/js/browse.ui.js +++ b/module/testcase/js/browse.ui.js @@ -81,6 +81,10 @@ window.onRenderCell = function(result, {row, col}) if(module) result.unshift({html: '' + module + ''}); // 添加模块标签 } } + if(col.name == 'pri' && row.data.isScene) + { + result.shift(); // 移除场景优先级 + } } if(row.data.lastEditedDate == '0000-00-00 00:00:00') row.data.lastEditedDate = ''; From 1b57c81b4e57cc5b4d74d9dfb2302a0cd14e3b1b Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 5 Mar 2024 13:24:39 +0800 Subject: [PATCH 176/276] * Fix execution kanban bug of lite mode. bug #46518. --- .../lite/execution/ext/control/kanban.php | 62 ------------------- module/execution/control.php | 1 + module/execution/ui/kanban.html.php | 28 ++++++--- 3 files changed, 19 insertions(+), 72 deletions(-) diff --git a/extension/lite/execution/ext/control/kanban.php b/extension/lite/execution/ext/control/kanban.php index 3ebbfaf27a..ce27e4c169 100644 --- a/extension/lite/execution/ext/control/kanban.php +++ b/extension/lite/execution/ext/control/kanban.php @@ -10,68 +10,6 @@ class myExecution extends execution $currentMethod = $this->app->methodName; $execution = $this->execution->getById($executionID); $this->loadModel('project')->setMenu($execution->project); - $this->lang->kanbanProject->menu->execution['subMenu'] = new stdClass(); - - $this->session->set('kanbanview', $currentMethod); - setcookie('kanbanview', $currentMethod, $this->config->cookieLife, $this->config->webRoot, '', false, true); - - /* change subMenu to sub select menu */ - $TRActions = $this->execution->getTRActions($currentMethod); - - $TRActions .= ""; - $TRActions .= html::a('javascript:fullScreen()', " " . $this->lang->kanban->fullScreen, '', "class='btn btn-link'"); - - $printSettingBtn = (common::hasPriv('kanban', 'createRegion') or (common::hasPriv('kanban', 'setLaneHeight')) or common::hasPriv('execution', 'edit') or common::hasPriv('execution', 'close') or common::hasPriv('execution', 'delete') or !empty($executionActions)); - $executionActions = array(); - foreach($this->config->execution->statusActions as $action) - { - if($this->execution->isClickable($execution, $action)) $executionActions[] = $action; - } - if($this->execution->isClickable($execution, 'delete')) $executionActions[] = 'delete'; - - if($printSettingBtn) - { - $TRActions .= ""; - } - - $canCreateTask = common::hasPriv('task', 'create'); - $canBatchCreateTask = common::hasPriv('task', 'batchCreate'); - if($canCreateTask or $canBatchCreateTask) - { - $TRActions .= ""; - } - $this->lang->TRActions = $TRActions; $browseType = 'task'; parent::kanban($executionID, $browseType, $orderBy, $groupBy); diff --git a/module/execution/control.php b/module/execution/control.php index 8076c61b25..4b78fb32bf 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -1671,6 +1671,7 @@ class execution extends control $this->view->title = $this->lang->kanban->view; $this->view->execution = $execution; + $this->view->executionList = $this->loadModel('project')->getExecutionList(array($execution->project)); $this->view->executionID = $executionID; $this->view->kanbanList = $this->loadModel('kanban')->getRDKanban($executionID, $browseType, $orderBy, 0, $groupBy); $this->view->browseType = $browseType; diff --git a/module/execution/ui/kanban.html.php b/module/execution/ui/kanban.html.php index 81fc79cc0f..4dc46b9d5e 100644 --- a/module/execution/ui/kanban.html.php +++ b/module/execution/ui/kanban.html.php @@ -54,17 +54,17 @@ if($this->execution->isClickable($execution, 'delete')) $operationMenu[] = arr $canCreateTask = common::hasPriv('task', 'create') && common::canModify('execution', $execution); $canBatchCreateTask = common::hasPriv('task', 'batchCreate') && common::canModify('execution', $execution); -$canImportTask = common::hasPriv('execution', 'importTask') && $execution->multiple && common::canModify('execution', $execution); +$canImportTask = common::hasPriv('execution', 'importTask') && $execution->multiple && common::canModify('execution', $execution) && $this->config->vision != 'lite'; -$canCreateBug = $features['qa'] && common::hasPriv('bug', 'create') && common::canModify('execution', $execution) && $productID; -$canBatchCreateBug = $features['qa'] && common::hasPriv('bug', 'batchCreate') && $execution->multiple && common::canModify('execution', $execution) && $productID; -$canImportBug = $features['qa'] && common::hasPriv('execution', 'importBug') && $execution->multiple && common::canModify('execution', $execution) && $productID; +$canCreateBug = $features['qa'] && common::hasPriv('bug', 'create') && common::canModify('execution', $execution) && $productID && $this->config->vision != 'lite'; +$canBatchCreateBug = $features['qa'] && common::hasPriv('bug', 'batchCreate') && $execution->multiple && common::canModify('execution', $execution) && $productID && $this->config->vision != 'lite'; +$canImportBug = $features['qa'] && common::hasPriv('execution', 'importBug') && $execution->multiple && common::canModify('execution', $execution) && $productID && $this->config->vision != 'lite'; $hasBugButton = $features['qa'] && ($canCreateBug || $canBatchCreateBug); -$canCreateStory = $features['story'] && common::hasPriv('story', 'create') && common::canModify('execution', $execution) && $productID; -$canBatchCreateStory = $features['story'] && common::hasPriv('story', 'batchCreate') && common::canModify('execution', $execution) && $productID; -$canLinkStory = $features['story'] && common::hasPriv('execution', 'linkStory') && !empty($execution->hasProduct) && common::canModify('execution', $execution) && $productID; -$canLinkStoryByPlan = $features['story'] && common::hasPriv('execution', 'importplanstories') && !empty($project->hasProduct) && common::canModify('execution', $execution) && $productID; +$canCreateStory = $features['story'] && common::hasPriv('story', 'create') && common::canModify('execution', $execution) && $productID && $this->config->vision != 'lite'; +$canBatchCreateStory = $features['story'] && common::hasPriv('story', 'batchCreate') && common::canModify('execution', $execution) && $productID && $this->config->vision != 'lite'; +$canLinkStory = $features['story'] && common::hasPriv('execution', 'linkStory') && !empty($execution->hasProduct) && common::canModify('execution', $execution) && $productID && $this->config->vision != 'lite'; +$canLinkStoryByPlan = $features['story'] && common::hasPriv('execution', 'importplanstories') && !empty($project->hasProduct) && common::canModify('execution', $execution) && $productID && $this->config->vision != 'lite'; $hasStoryButton = $features['story'] && ($canCreateStory || $canBatchCreateStory || $canLinkStory || $canLinkStoryByPlan); $hasTaskButton = $canCreateTask || $canBatchCreateTask || $canImportBug; @@ -156,9 +156,17 @@ jsVar('priv', if(!$features['story']) unset($lang->kanban->type['story']); if(!$features['qa']) unset($lang->kanban->type['bug']); + +$executionItems = array(); +foreach($executionList as $childExecution) $executionItems[] = array('text' => $childExecution->name, 'url' => createLink('execution', 'kanban', "kanbanID={$childExecution->id}")); featureBar ( - ($features['story'] or $features['qa']) ? inputControl + $this->config->vision == 'lite' ? dropdown + ( + btn(setClass('dropdown-btn'), $execution->name), + set::items($executionItems), + ) : null, + (($features['story'] or $features['qa']) && $this->config->vision != 'lite') ? inputControl ( setClass('c-type'), picker @@ -171,7 +179,7 @@ featureBar set::onchange('changeBrowseType()'), ) ) : null, - $browseType != 'all' ? inputControl + $browseType != 'all' && $this->config->vision != 'lite' ? inputControl ( setClass('c-group ml-5'), picker From bf3db6586d410803c753b6b0dbb7d0103ae61666 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 5 Mar 2024 13:26:08 +0800 Subject: [PATCH 177/276] * Adjust testcase status for story changed. --- module/testcase/ui/browse.html.php | 2 ++ module/testcase/ui/view.html.php | 16 +++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/module/testcase/ui/browse.html.php b/module/testcase/ui/browse.html.php index 58511a9c9c..e6dd301b6e 100644 --- a/module/testcase/ui/browse.html.php +++ b/module/testcase/ui/browse.html.php @@ -109,6 +109,7 @@ if(isset($cols['title'])) $cols['title']['nestedToggle'] = $topSceneCount > 0; if(isset($cols['branch'])) $cols['branch']['map'] = $branchTagOption; if(isset($cols['story'])) $cols['story']['map'] = $stories; if(isset($cols['scene'])) $cols['scene']['map'] = $iscenes; +$cols['status']['statusMap']['changed'] = $lang->story->changed; foreach($cases as $case) { @@ -118,6 +119,7 @@ foreach($cases as $case) $cols['actions']['menu'] = $config->$actionType->menu; if($actionType == 'testcase' && !$this->config->testcase->needReview) unset($cols['actions']['menu'][1][0]); if($actionType == 'scene') $case->bugs = $case->results = $case->stepNumber = $case->version = ''; + if($case->needconfirm) $case->status = 'changed'; $case->browseType = $browseType; initTableData(array($case), $cols, $this->testcase); diff --git a/module/testcase/ui/view.html.php b/module/testcase/ui/view.html.php index 71b3a5444a..f95b407997 100644 --- a/module/testcase/ui/view.html.php +++ b/module/testcase/ui/view.html.php @@ -192,11 +192,17 @@ else if($case->story && $case->storyStatus == 'active' && $case->latestStoryVersion > $case->storyVersion) { $confirmStatusChange = span - ( - setClass('warning'), - $lang->story->changed, - common::hasPriv('testcase', 'confirmStoryChange', $case) ? a(set::href($this->createLink('testcase', 'confirmStoryChange', "caseID={$case->id}")), setData('app', $app->tab), $lang->confirm) : '' - ); + ( + '(', + $lang->story->changed, + common::hasPriv('testcase', 'confirmStoryChange', $case) ? a( + set::href($this->createLink('testcase', 'confirmStoryChange', "caseID={$case->id}")), + setData('app', $app->tab), + setClass('mx-1'), + $lang->confirm + ) : '', + ')' + ); } $storyItem = item ( From cf5410a615dc265905c8224d5bcf6667625a0717 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 5 Mar 2024 13:28:01 +0800 Subject: [PATCH 178/276] * Adjust testcase status for story changed. --- module/testcase/ui/view.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/testcase/ui/view.html.php b/module/testcase/ui/view.html.php index f95b407997..c0f6a1eee8 100644 --- a/module/testcase/ui/view.html.php +++ b/module/testcase/ui/view.html.php @@ -198,7 +198,7 @@ else common::hasPriv('testcase', 'confirmStoryChange', $case) ? a( set::href($this->createLink('testcase', 'confirmStoryChange', "caseID={$case->id}")), setData('app', $app->tab), - setClass('mx-1'), + setClass('mx-1 px-1 primary-pale'), $lang->confirm ) : '', ')' From 43da27e24e26d5abeb1605caca18bdb988d26814 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Tue, 5 Mar 2024 13:27:45 +0800 Subject: [PATCH 179/276] * Fix bug#46506. --- extension/lite/story/ext/ui/create.html.php | 1 + 1 file changed, 1 insertion(+) diff --git a/extension/lite/story/ext/ui/create.html.php b/extension/lite/story/ext/ui/create.html.php index 6939d320bd..9a28448a98 100644 --- a/extension/lite/story/ext/ui/create.html.php +++ b/extension/lite/story/ext/ui/create.html.php @@ -45,6 +45,7 @@ formPanel ( set::width('1/2'), set::label($lang->story->module), + set::required(strpos($config->story->create->requiredFields, 'module') !== false), modulePicker ( set::required(true), From 67632230186798798112b7c513b6b9af795cea00 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 13:34:15 +0800 Subject: [PATCH 180/276] * Fix bug #46568. --- module/task/config/dtable.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/task/config/dtable.php b/module/task/config/dtable.php index ca7bc57a22..79a3b23cf7 100644 --- a/module/task/config/dtable.php +++ b/module/task/config/dtable.php @@ -299,7 +299,7 @@ $config->task->dtable->importTask->fieldList['deadline']['type'] = 'date'; $config->task->dtable->importTask->fieldList['deadline']['sortType'] = true; $config->task->dtable->importTask->fieldList['deadline']['group'] = 2; -$config->task->dtable->importTask->fieldList['execution']['title'] = $lang->task->stage; +$config->task->dtable->importTask->fieldList['execution']['title'] = $lang->task->execution; $config->task->dtable->importTask->fieldList['execution']['name'] = 'execution'; $config->task->dtable->importTask->fieldList['execution']['type'] = 'desc'; $config->task->dtable->importTask->fieldList['execution']['sortType'] = false; From 4e7a458269851f9d4e228acf5747ac0796aef607 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 13:40:12 +0800 Subject: [PATCH 181/276] * Don't set status map if there is no status column, and use empty to check the needconfirm of case. --- module/testcase/ui/browse.html.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/testcase/ui/browse.html.php b/module/testcase/ui/browse.html.php index e6dd301b6e..4f1ba56a77 100644 --- a/module/testcase/ui/browse.html.php +++ b/module/testcase/ui/browse.html.php @@ -109,7 +109,7 @@ if(isset($cols['title'])) $cols['title']['nestedToggle'] = $topSceneCount > 0; if(isset($cols['branch'])) $cols['branch']['map'] = $branchTagOption; if(isset($cols['story'])) $cols['story']['map'] = $stories; if(isset($cols['scene'])) $cols['scene']['map'] = $iscenes; -$cols['status']['statusMap']['changed'] = $lang->story->changed; +if(isset($cols['status'])) $cols['status']['statusMap']['changed'] = $lang->story->changed; foreach($cases as $case) { @@ -119,7 +119,7 @@ foreach($cases as $case) $cols['actions']['menu'] = $config->$actionType->menu; if($actionType == 'testcase' && !$this->config->testcase->needReview) unset($cols['actions']['menu'][1][0]); if($actionType == 'scene') $case->bugs = $case->results = $case->stepNumber = $case->version = ''; - if($case->needconfirm) $case->status = 'changed'; + if(!empty($case->needconfirm)) $case->status = 'changed'; $case->browseType = $browseType; initTableData(array($case), $cols, $this->testcase); From 4768a8ef7c0f9f958901d110bd0db810aad40ed2 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 5 Mar 2024 13:43:06 +0800 Subject: [PATCH 182/276] * Fix print kanban css. bug #46516. --- module/execution/ui/preview.html.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/module/execution/ui/preview.html.php b/module/execution/ui/preview.html.php index 80212980d2..0df0f91aad 100644 --- a/module/execution/ui/preview.html.php +++ b/module/execution/ui/preview.html.php @@ -48,6 +48,7 @@ body {margin: 0pt} .board-footer.story {bottom: 0;} .board-footer.task {bottom: 0;} .board-footer p{height: 14px; padding:0px 3px; margin-bottom:2px;} +.checkbox-primary>label, .radio-primary>label {height:18px;} + bug->statusList['']);?>
bug->assignTo . ':'; echo empty($content->assignedTo) ? '' : $realnames[$content->assignedTo]->realname;?>
printKanban->taskStatus . ':' . html::checkbox("bug$content->id", $lang->bug->statusList, $content->status);?>
+ task->statusList['']);?>
task->assign . ':'; echo empty($content->assignedTo) ? '' : $realnames[$content->assignedTo]->realname;?>
-
printKanban->taskStatus . ':' . html::checkbox("task$content->id", $lang->task->statusList,$content->status);?>
+
printKanban->taskStatus . ':' . html::checkbox("task$content->id", $lang->task->statusList, $content->status);?>
From 28ee0fc338d1560525ca486d2b158d1bd3d1a0c8 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 13:46:34 +0800 Subject: [PATCH 183/276] * Fix bug #46579. --- module/my/ui/profile.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/my/ui/profile.html.php b/module/my/ui/profile.html.php index 05711ef6d1..6dc3e86e15 100644 --- a/module/my/ui/profile.html.php +++ b/module/my/ui/profile.html.php @@ -80,7 +80,7 @@ div ( set::className('py-2'), $getItems(array($lang->user->realname => $user->realname, $lang->user->gender => zget($lang->user->genderList, $user->gender))), - $getItems(array($lang->user->account => $user->account, $lang->user->email => $user->email ? a(set::href("mailto:{$user->email}"), $user->email) : '')), + $getItems(array($lang->user->account => $user->account, $lang->user->email => $user->email ? a(set::href("mailto:{$user->email}"), $user->email, set::target('_self')) : '')), $getItems(array($lang->user->dept => html($deptName), $lang->user->role => zget($lang->user->roleList, $user->role, ''))), $getItems(array($lang->user->abbr->join => formatTime($user->join), $lang->user->priv => trim($groupName))) ), From 96301bd40d61a39bee063646098db08ccafdf2d6 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 5 Mar 2024 13:58:46 +0800 Subject: [PATCH 184/276] * Fix delete project kanban locate bug. bug #46515. --- module/execution/control.php | 7 ++++++- module/project/js/common.ui.js | 17 +++++++++++++++++ module/project/js/execution.ui.js | 17 ----------------- module/project/ui/index.html.php | 5 +++-- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/module/execution/control.php b/module/execution/control.php index 4b78fb32bf..e90594db66 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -2041,7 +2041,12 @@ class execution extends control if($message) $this->lang->saveSuccess = $message; if($this->viewType == 'json') return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess)); - return $this->send(array('result' => 'success', 'load' => $execution->type == 'kanban' ? $this->createLink('execution', 'all') : true)); + $locate = true; + if($execution->type == 'kanban') + { + $locate = $this->config->vision == 'lite' ? $this->createLink('project', 'execution', "status=all&projectID=$execution->project") : $this->createLink('execution', 'all'); + } + return $this->send(array('result' => 'success', 'load' => $locate)); } } diff --git a/module/project/js/common.ui.js b/module/project/js/common.ui.js index 2c65c82951..f55237ff4d 100644 --- a/module/project/js/common.ui.js +++ b/module/project/js/common.ui.js @@ -333,3 +333,20 @@ window.getDateMenu = function() } return endMenu; } + +/** + * 提示并删除执行。 + * Delete execution with tips. + * + * @param int executionID + * @param string executionName + * @access public + * @return void + */ +window.confirmDeleteExecution = function(executionID, confirmDeleteTip) +{ + zui.Modal.confirm({message: confirmDeleteTip, icon:'icon-exclamation-sign', iconClass: 'warning-pale rounded-full icon-2x'}).then((res) => + { + if(res) $.ajaxSubmit({url: $.createLink('execution', 'delete', 'executionID=' + executionID + '&comfirm=yes')}); + }); +} diff --git a/module/project/js/execution.ui.js b/module/project/js/execution.ui.js index 19539861c4..5bde0351d6 100644 --- a/module/project/js/execution.ui.js +++ b/module/project/js/execution.ui.js @@ -26,23 +26,6 @@ $(document).off('click','.batch-btn').on('click', '.batch-btn', function() } }); -/** - * 提示并删除执行。 - * Delete execution with tips. - * - * @param int executionID - * @param string executionName - * @access public - * @return void - */ -window.confirmDeleteExecution = function(executionID, confirmDeleteTip) -{ - zui.Modal.confirm({message: confirmDeleteTip, icon:'icon-exclamation-sign', iconClass: 'warning-pale rounded-full icon-2x'}).then((res) => - { - if(res) $.ajaxSubmit({url: $.createLink('execution', 'delete', 'executionID=' + executionID + '&comfirm=yes')}); - }); -} - const today = zui.formatDate(new Date(), 'yyyy-MM-dd'); window.onRenderCell = function(result, {col, row}) { diff --git a/module/project/ui/index.html.php b/module/project/ui/index.html.php index 192e7c7341..266d561b7a 100644 --- a/module/project/ui/index.html.php +++ b/module/project/ui/index.html.php @@ -84,8 +84,9 @@ if(!empty($kanbanList)) } elseif($action == 'delete') { - $actionItem['text'] = $lang->delete; - $actionItem['hint'] = $lang->delete; + $actionItem['text'] = $lang->delete; + $actionItem['hint'] = $lang->delete; + $actionItem['innerClass'] = $actionItem['className']; } $actionItems[] = $actionItem; From cf342d28fc06e7f53a01114d2ebad74a777fd586 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 14:10:17 +0800 Subject: [PATCH 185/276] * Fix bug #46578, use `config->user->list->custom` to set custom columns in the batch ui. --- module/user/config.php | 4 ++++ module/user/zen.php | 26 +++++++++++++------------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/module/user/config.php b/module/user/config.php index 6e505d70e1..40b3e8a95c 100644 --- a/module/user/config.php +++ b/module/user/config.php @@ -9,6 +9,10 @@ $config->user->edit->requiredFields = 'account,realname,visions'; $config->user->availableBatchCreateFields = 'dept,email,gender,commiter,join,skype,qq,dingding,weixin,mobile,slack,whatsapp,phone,address,zipcode'; $config->user->availableBatchEditFields = 'dept,email,commiter,skype,qq,dingding,weixin,mobile,slack,whatsapp,phone,address,zipcode'; +$config->user->list = new stdclass(); +$config->user->list->customBatchCreateFields = 'dept,email,gender,commiter,join,skype,qq,dingding,weixin,mobile,slack,whatsapp,phone,address,zipcode'; +$config->user->list->customBatchEditFields = 'dept,email,commiter,skype,qq,dingding,weixin,mobile,slack,whatsapp,phone,address,zipcode'; + $config->user->custom = new stdclass(); $config->user->custom->batchCreateFields = 'dept,join,email,gender'; $config->user->custom->batchEditFields = 'dept,join,email,commiter'; diff --git a/module/user/zen.php b/module/user/zen.php index 5af5619b45..81bf5d92fb 100644 --- a/module/user/zen.php +++ b/module/user/zen.php @@ -258,29 +258,29 @@ class userZen extends user */ public function prepareCustomFields(string $method, string $requiredMethod): void { - $availableField = 'available' . ucfirst($method) . 'Fields'; + $customFields = 'custom' . ucfirst($method) . 'Fields'; $showField = $method . 'Fields'; /* 获取所有的联系方式字段。*/ /* Get all contact fields. */ $allContactFields = array_keys($this->lang->user->contactFieldList); - /* 获取可用的联系方式字段,转为数组并去空、去重。*/ - /* Get available contact fields, convert to array and remove empty and duplicate. */ - $availableContactFields = array_unique(array_filter(explode(',', trim($this->config->user->contactField, ',')))); + /* 获取自定义的联系方式字段,转为数组并去空、去重。*/ + /* Get custom contact fields, convert to array and remove empty and duplicate. */ + $customContactFields = array_unique(array_filter(explode(',', trim($this->config->user->contactField, ',')))); /* 获取不可用的联系方式字段。*/ /* Get unavailable contact fields. */ - $unAvailableContactFields = array_diff($allContactFields, $availableContactFields); - /* 从配置文件获取所有可用字段,转为数组并去空、去重。*/ - /* Get all available fields from config file, convert to array and remove empty and duplicate. */ - $availableFields = array_unique(array_filter(explode(',', trim($this->config->user->$availableField, ',')))); - /* 从可用字段中去除不可用的联系方式字段。*/ - /* Remove unavailable contact fields from available fields. */ - $availableFields = array_diff($availableFields, $unAvailableContactFields); + $unAvailableContactFields = array_diff($allContactFields, $customContactFields); + /* 从配置文件获取所有自定义字段,转为数组并去空、去重。*/ + /* Get all custom fields from config file, convert to array and remove empty and duplicate. */ + $customFields = array_unique(array_filter(explode(',', trim($this->config->user->list->$customFields, ',')))); + /* 从自定义字段中去除不可用的联系方式字段。*/ + /* Remove unavailable contact fields from custom fields. */ + $customFields = array_diff($customFields, $unAvailableContactFields); /* 获取可以显示的字段。*/ /* Get fields that can be displayed. */ $listFields = array(); - foreach($availableFields as $field) $listFields[$field] = $this->lang->user->$field; + foreach($customFields as $field) $listFields[$field] = $this->lang->user->$field; /* 从配置文件获取必填项字段,转为数组并去空、去重。*/ /* Get required fields from config file, convert to array and remove empty and duplicate. */ @@ -299,7 +299,7 @@ class userZen extends user $showFields = array_merge($showFields, $requiredFields); /* 把应该显示的字段和可用字段取交集。*/ /* Get the intersection of fields that should be displayed and available fields. */ - $showFields = array_intersect($showFields, $availableFields); + $showFields = array_intersect($showFields, $customFields); $this->view->listFields = $listFields; $this->view->showFields = $showFields; From dd7b240965c8a6639f832d7710a078fccbd0784b Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 5 Mar 2024 14:17:39 +0800 Subject: [PATCH 186/276] * Fix bug #46524, adjust xml xmind import. --- module/testcase/control.php | 9 ++++----- module/testcase/zen.php | 6 +++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/module/testcase/control.php b/module/testcase/control.php index 850daa5ce9..a423931c62 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -1646,7 +1646,7 @@ class testcase extends control $configList = $this->testcaseZen->buildXmindConfig(); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); - $configResult = $this->testcase->saveXmindConfig($configList); + $this->testcase->saveXmindConfig($configList); $imoduleID = $this->post->imodule ? $this->post->imodule : 0; $context = $this->testcaseZen->getXmindExport($productID, (int)$imoduleID, $branch); @@ -1673,7 +1673,7 @@ class testcase extends control $this->view->settings = $this->testcase->getXmindConfig(); $this->view->productName = $product->name; $this->view->moduleID = $moduleID; - $this->view->moduleOptionMenu = $this->tree->getOptionMenu($productID, $viewType = 'case', $startModuleID = 0, ($branch === 'all' || !isset($branches[$branch])) ? '0' : $branch); + $this->view->moduleOptionMenu = $this->tree->getOptionMenu($productID, 'case', 0, ($branch === 'all' || !isset($branches[$branch])) ? '0' : $branch); $this->display(); } @@ -1735,7 +1735,7 @@ class testcase extends control /* Sav xmind config. */ $configList = $this->testcaseZen->buildXmindConfig(); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); - $configResult = $this->testcase->saveXmindConfig($configList); + $this->testcase->saveXmindConfig($configList); /* 检查扩展名。*/ /* Check extension name of file. */ @@ -1795,7 +1795,6 @@ class testcase extends control $product = $this->product->getByID($productID); $branches = (isset($product->type) && $product->type != 'normal') ? $this->loadModel('branch')->getPairs($productID, 'active') : array(); - $folder = $this->session->xmindImport; if($this->session->xmindImportType == 'xml') { $xmlPath = $this->session->xmindImport . '/content.xml'; @@ -1817,7 +1816,7 @@ class testcase extends control $this->view->productID = $productID; $this->view->branch = $branch; $this->view->scenes = $scenes; - $this->view->moduleOptionMenu = $this->tree->getOptionMenu($productID, $viewType = 'case', $startModuleID = 0, ($branch === 'all' or !isset($branches[$branch])) ? '0' : $branch); + $this->view->moduleOptionMenu = $this->tree->getOptionMenu($productID, 'case', 0, ($branch === 'all' or !isset($branches[$branch])) ? '0' : $branch); $this->display(); } diff --git a/module/testcase/zen.php b/module/testcase/zen.php index c2b58da26d..14ffe352cb 100755 --- a/module/testcase/zen.php +++ b/module/testcase/zen.php @@ -3117,6 +3117,7 @@ class testcaseZen extends testcase $this->classFile->removeFile($tmpFile); + $this->classXmind = $this->app->loadClass('xmind'); if(file_exists($filePath . '/content.json')) { $fetchResult = $this->fetchByJSON($filePath, $productID, $branch); @@ -3146,7 +3147,7 @@ class testcaseZen extends testcase { $file = $filePath . '/content.xml'; $xmlNode = simplexml_load_file($file); - $title = $xmlNode->sheet->topic->title; + $title = (string)$xmlNode->sheet->topic->title; if(!is_string($title) || strlen($title) == 0) return array('result' => 'fail', 'message' => $this->lang->testcase->errorXmindUpload); $pID = $productID; @@ -3155,7 +3156,7 @@ class testcaseZen extends testcase $tmpID = $this->classXmind->getBetween($title, '[', ']'); if(!empty($tmpID)) { - $product = $this->loadModel('product')->getByID($tmpID); + $product = $this->loadModel('product')->getByID((int)$tmpID); if(!$product || $product->deleted) return array('result' => 'fail', 'message' => $this->lang->testcase->errorImportBadProduct); $pID = $tmpID; @@ -3184,7 +3185,6 @@ class testcaseZen extends testcase if(strlen($title) == 0) return array('result' => 'fail', 'message' => $this->lang->testcase->errorXmindUpload); $pID = $productID; - $this->classXmind = $this->app->loadClass('xmind'); if($this->classXmind->endsWith($title, ']')) { $tmpID = $this->classXmind->getBetween($title, '[', ']'); From f4ba43a45c010fb19597c2a081ba385f23d2fcb1 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 5 Mar 2024 14:20:37 +0800 Subject: [PATCH 187/276] * Fix pager bug. bug #46455. --- module/aiapp/ui/square.html.php | 2 +- module/kanban/ui/space.html.php | 2 +- module/project/ui/browsebycard.html.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/module/aiapp/ui/square.html.php b/module/aiapp/ui/square.html.php index 370320e90d..f9016525ed 100644 --- a/module/aiapp/ui/square.html.php +++ b/module/aiapp/ui/square.html.php @@ -133,7 +133,7 @@ div( div( setClass('pager-container'), - pager() + pager(set(usePager())) ); render(); diff --git a/module/kanban/ui/space.html.php b/module/kanban/ui/space.html.php index 31e73044d1..bb1ec65313 100644 --- a/module/kanban/ui/space.html.php +++ b/module/kanban/ui/space.html.php @@ -136,6 +136,6 @@ foreach($spaceList as $space) } !empty($spaceList) ? $blocks : div(set::className('dtable'), div(set::className('dtable-empty-tip'), span(set::className('text-gray'), $lang->kanbanspace->empty))); -if(!empty($spaceList)) div(set::className('table-footer'), pager(set::className('pull-right'))); +if(!empty($spaceList)) div(set::className('table-footer'), pager(set(usePager()), set::className('pull-right'))); render(); diff --git a/module/project/ui/browsebycard.html.php b/module/project/ui/browsebycard.html.php index a02adc5b75..27290aeeb2 100644 --- a/module/project/ui/browsebycard.html.php +++ b/module/project/ui/browsebycard.html.php @@ -336,7 +336,7 @@ div !empty($projectStats) ? div ( setID('cardsFooter'), - pager() + pager(set(usePager())) ) : null ); From 52f85638001eb6eb9359c3c41301ab438c73b634 Mon Sep 17 00:00:00 2001 From: liyang Date: Tue, 5 Mar 2024 14:40:56 +0800 Subject: [PATCH 188/276] * Fix bug #46585. --- module/datatable/control.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/module/datatable/control.php b/module/datatable/control.php index 4c3c5cd6ca..71b855b01f 100644 --- a/module/datatable/control.php +++ b/module/datatable/control.php @@ -124,7 +124,17 @@ class datatable extends control $cols = $this->datatable->getSetting($module, $method, true, $extra); if(!$method) $method = $this->app->getMethodName(); - if($module == 'testcase') unset($cols['assignedTo']); + if($module == 'testcase') + { + unset($cols['assignedTo']); + unset($cols['product']); + unset($cols['module']); + } + if($module == 'bug') + { + unset($cols['product']); + unset($cols['module']); + } if(zget($this->config->datatable->moduleAlias, "$module-$method", $module) == 'story') { unset($cols['product'], $cols['module']); From 2f1a39977b72263d35659987fd45d0fbd190bb93 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 14:46:22 +0800 Subject: [PATCH 189/276] + Set branch picker required in tree::browse. --- module/tree/ui/browse.html.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/tree/ui/browse.html.php b/module/tree/ui/browse.html.php index effc690e5c..e2a124cfba 100644 --- a/module/tree/ui/browse.html.php +++ b/module/tree/ui/browse.html.php @@ -55,6 +55,7 @@ foreach($sons as $son) set::items($branches), set::value($son->branch), set::disabled(true), + set::required(true) ), input ( @@ -109,6 +110,7 @@ for($i = 0; $i < \tree::NEW_CHILD_COUNT; $i ++) set::name("branch[$i]"), set::items($branches), set::value($initBranch), + set::required(true) ), input ( From 907f77d06d833b7e37e7ab977f1c22d27d34eba3 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 5 Mar 2024 14:48:22 +0800 Subject: [PATCH 190/276] * Fix bug #46567, adjust module changed refresh. --- module/testcase/js/createscene.ui.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/module/testcase/js/createscene.ui.js b/module/testcase/js/createscene.ui.js index b1dde23802..3fb1415d72 100644 --- a/module/testcase/js/createscene.ui.js +++ b/module/testcase/js/createscene.ui.js @@ -23,3 +23,8 @@ function refreshModules() const productID = $('[name=product]').val(); loadProductModules(productID); } + +window.renderModulePicker = function() +{ + refreshModules(); +} From 6b935eb416a1f264541284f82f622bae65efc7f3 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 14:48:34 +0800 Subject: [PATCH 191/276] + Fix bug #46588. --- module/testtask/ui/groupcase.html.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/testtask/ui/groupcase.html.php b/module/testtask/ui/groupcase.html.php index add69bff99..0efd3654f9 100644 --- a/module/testtask/ui/groupcase.html.php +++ b/module/testtask/ui/groupcase.html.php @@ -48,6 +48,7 @@ toolbar ( set::className('ghost'), set::icon('export'), + setData('toggle', 'modal'), set::url($this->createLink('testcase', 'export', "productID=$productID&orderBy=case_desc&taskID=$task->id")), $lang->export ) : null, From 06a50ac6312f275bce91794859c24514cb808f9d Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 5 Mar 2024 15:00:08 +0800 Subject: [PATCH 192/276] * Fix bug #46510, adjust language for dtable custom setting. --- module/datatable/lang/zh-cn.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/datatable/lang/zh-cn.php b/module/datatable/lang/zh-cn.php index edcd6a8aec..b48bdaf677 100644 --- a/module/datatable/lang/zh-cn.php +++ b/module/datatable/lang/zh-cn.php @@ -14,8 +14,8 @@ $lang->datatable->required = '必选'; $lang->datatable->confirmReset = '恢复默认后,列表的相关设置将被清空,您确定要恢复默认吗?'; $lang->datatable->setGlobal = '应用到全局'; $lang->datatable->resetGlobal = '全局恢复默认'; -$lang->datatable->confirmSetGlobal = '应用到全局后,系统内所有人的列表将默认按该规则进行显示,您确定要应用到全局吗?'; -$lang->datatable->confirmGlobalReset = '全局恢复默认后,系统内所有人的列表设置将被清空,您确定要恢复默认吗?'; +$lang->datatable->confirmSetGlobal = '应用到全局后,系统内非自定义的列表设置将默认按照改列表规则显示,您确定要应用到全局吗?'; +$lang->datatable->confirmGlobalReset = '全局恢复默认后,系统内非自定义的列表设置将被清空,您确定要恢复默认吗?'; $lang->datatable->branch = '分支'; $lang->datatable->platform = '平台'; From 8a7d25c9b448bba7881a1c825a5f258390259fe3 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 15:06:55 +0800 Subject: [PATCH 193/276] * Fix bug #46452. --- module/testtask/js/linkcase.ui.js | 1 + 1 file changed, 1 insertion(+) diff --git a/module/testtask/js/linkcase.ui.js b/module/testtask/js/linkcase.ui.js index c2bc2d566d..356df9e5c8 100644 --- a/module/testtask/js/linkcase.ui.js +++ b/module/testtask/js/linkcase.ui.js @@ -56,5 +56,6 @@ window.renderCell = function(result, info) html += ""; result[0] = {html}; } + if(info.col.name == 'lastRunDate' && result[0] && result[0].substring(0, 4) == '0000') result.shift(); return result; } From 235bf67c306a72f3c629c99eb08a8987affc38ff Mon Sep 17 00:00:00 2001 From: liwenrui Date: Tue, 5 Mar 2024 15:11:28 +0800 Subject: [PATCH 194/276] * revive prompt menus. --- module/ai/ui/promptmenu.html.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/module/ai/ui/promptmenu.html.php b/module/ai/ui/promptmenu.html.php index a99ea126a6..29b84d6f5f 100644 --- a/module/ai/ui/promptmenu.html.php +++ b/module/ai/ui/promptmenu.html.php @@ -48,6 +48,7 @@ $promptMenuInject = function() /* Assemble injector script. */ $script = <<< JAVASCRIPT + (() => { if(window.location.search.includes('onlybody')) return; const container = window.frameElement?.closest('.load-indicator'); if(container && container.dataset.loading) @@ -87,10 +88,11 @@ $promptMenuInject = function() } }, 200); }); + })(); JAVASCRIPT; /* Perform injection. */ if(isset($menuOptions->stylesheet)) css($menuOptions->stylesheet); - js($script); + h::globalJS($script); }; $promptMenuInject(); From 6cfea37040ab68a551337ae895e2c5731cf1c94a Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 15:15:59 +0800 Subject: [PATCH 195/276] * Fix bug #46592. --- module/block/ui/bugblock.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/block/ui/bugblock.html.php b/module/block/ui/bugblock.html.php index aaedc243ea..e6d2d5eabc 100644 --- a/module/block/ui/bugblock.html.php +++ b/module/block/ui/bugblock.html.php @@ -26,7 +26,7 @@ blockPanel set::height(318), set::bordered(false), set::horzScrollbarPos('inside'), - set::fixedLeftWidth('50%'), + set::fixedLeftWidth('45%'), set::cols(array_values($config->block->bug->dtable->fieldList)), set::data(array_values($bugs)) ) From 1911578b7eb18b6ed6704278f9cdc1956f4eb9ec Mon Sep 17 00:00:00 2001 From: liwenrui Date: Tue, 5 Mar 2024 15:21:15 +0800 Subject: [PATCH 196/276] * fix ai stuff relied on js(). --- module/ai/ui/inputinject.html.php | 4 +++- module/ai/ui/promptexecute.html.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/module/ai/ui/inputinject.html.php b/module/ai/ui/inputinject.html.php index 3899d7aad6..d8204e2a9b 100644 --- a/module/ai/ui/inputinject.html.php +++ b/module/ai/ui/inputinject.html.php @@ -30,7 +30,8 @@ $inputInject = function() $this->app->loadLang('ai'); - js(<<< JAVASCRIPT + h::globalJS(<<< JAVASCRIPT + (() => { window.injectToInputElement = (inputName, data, index, tries = 0) => { let name = inputName; @@ -178,6 +179,7 @@ $inputInject = function() } } }); + })(); JAVASCRIPT); /* TODO: handle prompt audit, see original ../view/inputinject.html.php. */ diff --git a/module/ai/ui/promptexecute.html.php b/module/ai/ui/promptexecute.html.php index 829ca2929a..4ad3b3ab43 100644 --- a/module/ai/ui/promptexecute.html.php +++ b/module/ai/ui/promptexecute.html.php @@ -3,4 +3,4 @@ declare(strict_types=1); namespace zin; -js("requestAnimationFrame(() => setTimeout(() => openUrl(`{$formLocation}`), 1000));"); +h::globalJS("requestAnimationFrame(() => setTimeout(() => openUrl(`{$formLocation}`), 1000));"); From d4e129dc4fab06568c0cf0e9ff42f171a0cce694 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 15:21:58 +0800 Subject: [PATCH 197/276] * Fix bug #46592. --- module/block/config/bugblock.php | 6 +++--- module/block/ui/bugblock.html.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/module/block/config/bugblock.php b/module/block/config/bugblock.php index a032ae2438..ae8bdbac7e 100644 --- a/module/block/config/bugblock.php +++ b/module/block/config/bugblock.php @@ -23,20 +23,20 @@ $config->block->bug->dtable->fieldList['title']['fixed'] = 'left'; $config->block->bug->dtable->fieldList['severity']['name'] = 'severity'; $config->block->bug->dtable->fieldList['severity']['title'] = $lang->bug->abbr->severity; $config->block->bug->dtable->fieldList['severity']['type'] = 'severity'; -$config->block->bug->dtable->fieldList['severity']['width'] = 60; +$config->block->bug->dtable->fieldList['severity']['width'] = 55; $config->block->bug->dtable->fieldList['severity']['sort'] = true; $config->block->bug->dtable->fieldList['pri']['name'] = 'pri'; $config->block->bug->dtable->fieldList['pri']['title'] = $lang->priAB; $config->block->bug->dtable->fieldList['pri']['type'] = 'pri'; -$config->block->bug->dtable->fieldList['pri']['width'] = 60; +$config->block->bug->dtable->fieldList['pri']['width'] = 55; $config->block->bug->dtable->fieldList['pri']['sort'] = true; $config->block->bug->dtable->fieldList['status']['name'] = 'status'; $config->block->bug->dtable->fieldList['status']['title'] = $lang->bug->abbr->status; $config->block->bug->dtable->fieldList['status']['type'] = 'status'; $config->block->bug->dtable->fieldList['status']['statusMap'] = $lang->bug->statusList; -$config->block->bug->dtable->fieldList['status']['sort'] = true; +$config->block->bug->dtable->fieldList['status']['sort'] = true; $config->block->bug->dtable->fieldList['confirmed']['name'] = 'confirmed'; $config->block->bug->dtable->fieldList['confirmed']['title'] = $lang->bug->abbr->confirmed; diff --git a/module/block/ui/bugblock.html.php b/module/block/ui/bugblock.html.php index e6d2d5eabc..aaedc243ea 100644 --- a/module/block/ui/bugblock.html.php +++ b/module/block/ui/bugblock.html.php @@ -26,7 +26,7 @@ blockPanel set::height(318), set::bordered(false), set::horzScrollbarPos('inside'), - set::fixedLeftWidth('45%'), + set::fixedLeftWidth('50%'), set::cols(array_values($config->block->bug->dtable->fieldList)), set::data(array_values($bugs)) ) From ab2d38c7dada59e7f99a3dcb18e835279b485ca6 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 15:32:51 +0800 Subject: [PATCH 198/276] * Modify style of bug title in browse. --- module/bug/js/browse.ui.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/bug/js/browse.ui.js b/module/bug/js/browse.ui.js index 4ef62bdd95..35a2309986 100644 --- a/module/bug/js/browse.ui.js +++ b/module/bug/js/browse.ui.js @@ -31,7 +31,7 @@ window.onRenderCell = function(result, {row, col}) { if(result && col.name == 'title') { - result[0].props.className = 'w-0 flex-1 overflow-hidden'; + result[0].props.className = 'overflow-hidden'; if(row.data.color) result[0].props.style = 'color: ' + row.data.color; const module = this.options.modules[row.data.module]; if(module) result.unshift({html: '' + module + ''}); // 添加模块标签 From 9798daafa7f2f20717f17ad8d560caff2f352107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=A1=E6=A0=8B?= Date: Tue, 5 Mar 2024 15:35:24 +0800 Subject: [PATCH 199/276] * Fix bug #46390. --- module/stage/model.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/stage/model.php b/module/stage/model.php index 48784ea1c8..420cd8e500 100644 --- a/module/stage/model.php +++ b/module/stage/model.php @@ -41,11 +41,11 @@ class stageModel extends model } } + if(!empty($stage->percent)) $stage->percent = (float)$stage->percent; $this->dao->insert(TABLE_STAGE) ->data($stage) ->autoCheck() ->batchCheck($this->config->stage->create->requiredFields, 'notempty') - ->checkIF($stage->percent != '', 'percent', 'float') ->exec(); if(dao::isError()) return false; @@ -85,9 +85,9 @@ class stageModel extends model foreach($stages as $rowID => $stage) { $stage->projectType = $type; + if(!empty($stage->percent)) $stage->percent = (float)$stage->percent; $this->dao->insert(TABLE_STAGE)->data($stage)->autoCheck() ->batchCheck($this->config->stage->create->requiredFields, 'notempty') - ->checkIF($stage->percent != '', 'percent', 'float') ->exec(); if(dao::isError()) From 2d15c51ad02cb37e076620f93f97fd9ff3055ba3 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 15:44:52 +0800 Subject: [PATCH 200/276] * Fix bug #46580. --- module/project/js/batchedit.ui.js | 7 ------- module/project/ui/batchedit.html.php | 15 +++++++-------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/module/project/js/batchedit.ui.js b/module/project/js/batchedit.ui.js index 1a11b29834..9587f061a0 100644 --- a/module/project/js/batchedit.ui.js +++ b/module/project/js/batchedit.ui.js @@ -79,13 +79,6 @@ batchIgnoreTip = function(index) window.renderRowData = function($row, index, row) { - /* 如果某个项目是长期项目,更新计划完成日期和可用工作日的样式。*/ - /* If a project is a long-term project, update the style of the planned completion date and available working days. */ - if(row.end == LONG_TIME) - { - $row.find('[data-name="end"] [id^=end]').attr('data-longTime', 1).addClass('hidden').next().removeClass('hidden'); - $row.find('[name^=days]').val(0).attr('readonly', true); - } const aclList = !disabledprograms && row.parent ? programAclList : projectAclList; $row.find('[data-name="acl"]').find('.picker-box').on('inited', function(e, info) diff --git a/module/project/ui/batchedit.html.php b/module/project/ui/batchedit.html.php index 2ad50428c4..84c5263859 100644 --- a/module/project/ui/batchedit.html.php +++ b/module/project/ui/batchedit.html.php @@ -87,18 +87,17 @@ formBatchPanel ( set::name('end'), set::label($lang->project->end), - set::control('date'), set::width('120px'), - inputControl + set::control(array ( - setClass('has-suffix-icon hidden'), - to::suffix(icon('calendar')), - input + 'control' => 'date', + 'format' => jsRaw("(value) => (value === '" . LONG_TIME . "' ? '" . $lang->project->longTime . "' : zui.formatDate(value, 'yyyy-MM-dd'))"), + 'actions' => array ( - set::value($lang->project->longTime), - set::disabled(true) + array('text' => $lang->datepicker->dpText->TEXT_TODAY, 'data-set-date' => helper::today()), + array('text' => $lang->project->longTime, 'data-set-date' => LONG_TIME) ) - ) + )), ), formBatchItem ( From cfe7491d839d9a0124414c17005b3fd140487585 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 15:48:28 +0800 Subject: [PATCH 201/276] * Fix bug #46597. --- module/user/js/task.ui.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/user/js/task.ui.js b/module/user/js/task.ui.js index c766f2930f..9011e10796 100644 --- a/module/user/js/task.ui.js +++ b/module/user/js/task.ui.js @@ -5,7 +5,7 @@ window.renderCell = function(result, info) { let html = ''; if(task.team) html += "" + multipleAB + ""; - if(task.parent) html += "" + childrenAB + ""; + if(task.parent > 0) html += "" + childrenAB + ""; if(html) result.unshift({html}); } if(info.col.name == 'deadline' && result[0]) From 78a334cc161dc63e2821a3bc2e3ef4cb4f011e4b Mon Sep 17 00:00:00 2001 From: sunhao Date: Tue, 5 Mar 2024 15:59:49 +0800 Subject: [PATCH 202/276] * zin: fix error in findInNode. --- lib/zin/core/node.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/zin/core/node.class.php b/lib/zin/core/node.class.php index 32b156c8c1..728cd184b0 100644 --- a/lib/zin/core/node.class.php +++ b/lib/zin/core/node.class.php @@ -763,10 +763,10 @@ function findInNode(array $selectors, node|array $list, bool $first = false, boo if($list instanceof node) { $data = $list->buildData; - if(!$data || !isset($data->content) || empty($data->content)) return array(); + if(!$data) return array(); - $list = $data->content; - if(!$onlyContent) $list = array_merge($data->before, $list, $data->after); + $list = $data->content ? $data->content : array(); + if(!$onlyContent) $list = array_merge($data->before ? $data->before : array(), $list, $data->after ? $data->after : array()); } if($reverse) $list = array_reverse($list); $result = array(); From 5501c13dba8642df29d0e2d8fa193fb6fbff1ac5 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 16:11:08 +0800 Subject: [PATCH 203/276] * Fix bug #46595. --- module/block/ui/doccollectlistblock.html.php | 1 - module/block/zen.php | 8 +++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/module/block/ui/doccollectlistblock.html.php b/module/block/ui/doccollectlistblock.html.php index 53c4c4dbc7..1fb2ef724d 100644 --- a/module/block/ui/doccollectlistblock.html.php +++ b/module/block/ui/doccollectlistblock.html.php @@ -18,7 +18,6 @@ namespace zin;
- collects) continue;?>
app->loadClass('pager', true); $pager = new pager(0, 6, 1); - $this->view->docList = $this->loadModel('doc')->getDocsByBrowseType('all', 0, 0, 'collects_desc', $pager); + $docList = $this->loadModel('doc')->getDocsByBrowseType('all', 0, 0, 'collects_desc', $pager); + foreach($docList as $docID => $doc) + { + if(empty($doc->collects)) unset($docList[$docID]); + } + + $this->view->docList = $docList; } /** From e7958ba9704243dee8125ee8eb57f98ae00ecebe Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 5 Mar 2024 16:24:49 +0800 Subject: [PATCH 204/276] * Adjust execution export name. --- module/execution/control.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/execution/control.php b/module/execution/control.php index e90594db66..25ea00ef89 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -2913,7 +2913,7 @@ class execution extends control $project = $this->project->getByID($this->session->project); if(!empty($project->model) and $project->model == 'waterfall') $this->lang->executionCommon = $this->lang->project->stage; - $this->view->fileName = (in_array($status, array('all', 'undone')) ? $this->lang->execution->$status : $this->lang->execution->statusList[$status]) . $this->lang->execution->common; + $this->view->fileName = (in_array($status, array('all', 'undone')) ? $this->lang->execution->$status : $this->lang->execution->statusList[$status]) . $this->lang->executionCommon; $this->display(); } From 28f1983647c13826dd61e862b47082e4ff532ae2 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 5 Mar 2024 16:25:26 +0800 Subject: [PATCH 205/276] * Adjust load table selectors. --- www/js/zui3/zin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/js/zui3/zin.js b/www/js/zui3/zin.js index 457914ac3b..c567b31d2e 100644 --- a/www/js/zui3/zin.js +++ b/www/js/zui3/zin.js @@ -737,7 +737,7 @@ if(options.selector && options.selector !== 'dtable') selector = options.selector; if(!$(target).closest('.modal').length && !options.selector) { - selector += ',#featureBar>*,pageJS/.zin-page-js,hookCode()'; + selector += ',#mainMenu>*,pageJS/.zin-page-js,hookCode()'; if($('#moduleMenu').length) selector += ',#moduleMenu,.module-menu-header'; if($('#docDropmenu').length) selector += ',#docDropmenu,.module-menu'; } From a790386012e9cfb22b8be26c586aa35a29fb106c Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 16:34:21 +0800 Subject: [PATCH 206/276] * Fix bug #46600, set objectType empty to get all builds, and if the branch is empty string, it isn't in the branch and fix undefined error. --- module/bug/zen.php | 2 +- module/build/model.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/module/bug/zen.php b/module/bug/zen.php index b8558f56d2..f980f5e15f 100644 --- a/module/bug/zen.php +++ b/module/bug/zen.php @@ -1103,7 +1103,7 @@ class bugZen extends bug if(!empty($bug->allBuilds)) { - $builds = $this->build->getBuildPairs(array($productID), $branch, 'noempty,noterminate,nodone,withbranch,noreleased'); + $builds = $this->build->getBuildPairs(array($productID), $branch, 'noempty,noterminate,nodone,withbranch,noreleased', 0, ''); return $this->updateBug($bug, array('builds' => $builds)); } diff --git a/module/build/model.php b/module/build/model.php index 0414a1ca0a..226d936f95 100644 --- a/module/build/model.php +++ b/module/build/model.php @@ -316,10 +316,10 @@ class buildModel extends model foreach($allBuilds as $id => $build) { if($build->branch === '') $build->branch = 0; - $isDone = empty($build->releaseID) && strpos($params, 'nodone') !== false && $build->objectStatus === 'done'; + $isDone = empty($build->releaseID) && strpos($params, 'nodone') !== false && !empty($build->objectStatus) && $build->objectStatus === 'done'; $isTerminate = strpos($params, 'noterminate') !== false && $build->releaseStatus === 'terminate'; $isDeleted = strpos($params, 'withexecution') !== false && $build->execution && isset($deletedExecutions[$build->execution]); - $isNotInBranch = $branch !== 'all' && strpos(",{$build->branch},", ",{$branch},") === false; + $isNotInBranch = $branch !== '' && $branch !== 'all' && strpos(",{$build->branch},", ",{$branch},") === false; if(in_array(true, array($isDone, $isTerminate, $isDeleted, $isNotInBranch))) { $excludedReleaseIdList[] = $build->releaseID; From f75d77147753f262f77626fe294e991717839cdc Mon Sep 17 00:00:00 2001 From: sunhao Date: Tue, 5 Mar 2024 16:37:44 +0800 Subject: [PATCH 207/276] * index: bug #46367, improve the speed of opening external app. --- module/index/js/index.ui.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/module/index/js/index.ui.js b/module/index/js/index.ui.js index 1accb54ff2..b593e328e9 100644 --- a/module/index/js/index.ui.js +++ b/module/index/js/index.ui.js @@ -109,6 +109,7 @@ function openApp(url, code, options) forceReload = false; apps.openedMap[code] = openedApp; + const iframeUrl = app.external ? url : $.createLink('index', 'app'); const $iframe = $([ ' Date: Tue, 5 Mar 2024 16:40:32 +0800 Subject: [PATCH 208/276] * Fix bug #46605. --- module/story/ui/view.html.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/story/ui/view.html.php b/module/story/ui/view.html.php index 8808ec0046..ce1a4f021e 100644 --- a/module/story/ui/view.html.php +++ b/module/story/ui/view.html.php @@ -525,6 +525,7 @@ detailBody { global $app; $tab = $app->tab == 'product' ? 'project' : $app->tab; + if(!$app->tab == 'system') $tab = 'product'; return h::li ( set::title($build->name), @@ -545,6 +546,7 @@ detailBody global $app; $tab = $app->tab == 'execution' ? 'product' : $app->tab; $releaseModule = $app->tab == 'project' ? 'projectrelease' : 'release'; + if(!$app->tab == 'system') $tab = 'product'; return h::li ( set::title($release->name), From 6b1d9c0a3381f8fcb161d8dabff4e9e1628a4328 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 16:44:35 +0800 Subject: [PATCH 209/276] * Fix bug #46602, add `w-full` to the class of the planIdBox. --- module/story/js/create.ui.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/story/js/create.ui.js b/module/story/js/create.ui.js index f906938be2..cb0fdf3cde 100644 --- a/module/story/js/create.ui.js +++ b/module/story/js/create.ui.js @@ -58,7 +58,7 @@ window.loadProductPlans = function(productID, branch) if(items.length == 0) return; let $inputGroup = $planIdBox.closest('.input-group'); - $inputGroup.html("
") + $inputGroup.html("
") new zui.Picker('#planIdBox.picker-box', {items: items, name: 'plan', defaultValue: planID.toString()}); if(items.length == 0) { From e0cf9f2871f8fe84f96bb3720f6af68fc544a03a Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 5 Mar 2024 16:54:55 +0800 Subject: [PATCH 210/276] * Set product and branch picker required in tree::edit. --- module/tree/ui/edit.html.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/tree/ui/edit.html.php b/module/tree/ui/edit.html.php index 0edff92572..782ab1bc1b 100644 --- a/module/tree/ui/edit.html.php +++ b/module/tree/ui/edit.html.php @@ -40,6 +40,7 @@ formPanel set::name('root'), set::value($module->root), set::items($products), + set::required(true), on::change('loadBranches') ) ), @@ -53,6 +54,7 @@ formPanel set::name('branch'), set::value($module->branch), set::items($branches), + set::required(true), on::change('loadModules') ) ) : null From b6363a21b5aa11cb850c1585c10f315cda398604 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 17:00:43 +0800 Subject: [PATCH 211/276] * Fix bug #46564. --- module/custom/model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/custom/model.php b/module/custom/model.php index c357dbf068..459ea5ed71 100644 --- a/module/custom/model.php +++ b/module/custom/model.php @@ -195,7 +195,7 @@ class customModel extends model /* Set divider in main && module menu. */ if(!isset($lang->{$tab}->menuOrder)) { - if(!isset($lang->{$tab})) $lang->{$tab} = new stdclass(); + if(!isset($lang->{$tab})) $tab == 'my'; $lang->{$tab}->menuOrder = array(); } ksort($lang->{$tab}->menuOrder, SORT_NUMERIC); From 9819dfde76058a1efc4d04e9c3e45ac13703c112 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 5 Mar 2024 17:20:43 +0800 Subject: [PATCH 212/276] * Fix block reset bug. --- module/block/control.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/block/control.php b/module/block/control.php index 9375a1d3f1..f5c216dac1 100755 --- a/module/block/control.php +++ b/module/block/control.php @@ -308,7 +308,7 @@ class block extends control $this->block->reset($dashboard); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); - return $this->send(array('result' => 'success')); + return $this->send(array('result' => 'success', 'load' => true)); } /** From 33e482a50f4da49868f0e72f2094a2ac80980656 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 5 Mar 2024 17:28:50 +0800 Subject: [PATCH 213/276] * Fix bug #46558. --- module/execution/css/batchedit.ui.css | 1 + 1 file changed, 1 insertion(+) diff --git a/module/execution/css/batchedit.ui.css b/module/execution/css/batchedit.ui.css index c4850fb754..9d38f703d5 100644 --- a/module/execution/css/batchedit.ui.css +++ b/module/execution/css/batchedit.ui.css @@ -1 +1,2 @@ .tooltip {width: 120px !important} +#mainContent .form-batch-ditto-control .form-control {padding-right: 50px;} From 52262b8711f8292a0066cdb12a5ddd06246735f8 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 6 Mar 2024 08:42:15 +0800 Subject: [PATCH 214/276] * Fix bug #46526. --- module/personnel/config/table.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/personnel/config/table.php b/module/personnel/config/table.php index 7ab2603d70..a0c7482d24 100644 --- a/module/personnel/config/table.php +++ b/module/personnel/config/table.php @@ -63,6 +63,7 @@ $config->personnel->whitelist->dtable->fieldList['dept']['name'] = 'dept'; $config->personnel->whitelist->dtable->fieldList['dept']['title'] = $lang->user->dept; $config->personnel->whitelist->dtable->fieldList['dept']['type'] = 'category'; $config->personnel->whitelist->dtable->fieldList['dept']['map'] = array(); +$config->personnel->whitelist->dtable->fieldList['dept']['align'] = 'left'; $config->personnel->whitelist->dtable->fieldList['role']['name'] = 'role'; $config->personnel->whitelist->dtable->fieldList['role']['title'] = $lang->user->role; From d62094511647f8de940ab3044757690531170f40 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 6 Mar 2024 09:11:34 +0800 Subject: [PATCH 215/276] * Fix bug #46605. --- module/story/ui/view.html.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/story/ui/view.html.php b/module/story/ui/view.html.php index ce1a4f021e..4195a9051d 100644 --- a/module/story/ui/view.html.php +++ b/module/story/ui/view.html.php @@ -525,7 +525,7 @@ detailBody { global $app; $tab = $app->tab == 'product' ? 'project' : $app->tab; - if(!$app->tab == 'system') $tab = 'product'; + if($app->tab == 'system') $tab = 'product'; return h::li ( set::title($build->name), @@ -546,7 +546,7 @@ detailBody global $app; $tab = $app->tab == 'execution' ? 'product' : $app->tab; $releaseModule = $app->tab == 'project' ? 'projectrelease' : 'release'; - if(!$app->tab == 'system') $tab = 'product'; + if($app->tab == 'system') $tab = 'product'; return h::li ( set::title($release->name), From 24f70190cf11a3b1b248760a718f377c713c7f32 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Wed, 6 Mar 2024 09:13:02 +0800 Subject: [PATCH 216/276] * Fix bug #46381, don't locate to testcase::browse if there is the caseResults. --- module/testtask/js/common.ui.js | 1 - module/testtask/js/runcase.ui.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/module/testtask/js/common.ui.js b/module/testtask/js/common.ui.js index 90335f8df6..eb12c70add 100644 --- a/module/testtask/js/common.ui.js +++ b/module/testtask/js/common.ui.js @@ -126,7 +126,6 @@ function createBug(event) var link = $.createLink('bug', 'create', $form.data('params') + ',stepIdList=' + stepIdList); loadPage(link); - $('#runCaseModal').closest('.modal').addClass('not-refresh'); } /** diff --git a/module/testtask/js/runcase.ui.js b/module/testtask/js/runcase.ui.js index 95833b2abb..124363d7fc 100644 --- a/module/testtask/js/runcase.ui.js +++ b/module/testtask/js/runcase.ui.js @@ -6,7 +6,7 @@ $(function() $('#runCaseModal').closest('.modal').on('hide.zui.modal', function() { - if(!$(this).hasClass('not-refresh')) loadCurrentPage(); + if($('#casesResults').length == 0) loadCurrentPage(); }); /** From ce4f7e9c95e8a1a02d480821e8b0b286be351db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=A1=E6=A0=8B?= Date: Tue, 5 Mar 2024 17:13:12 +0800 Subject: [PATCH 217/276] * Fix bug #46598. --- module/task/ui/view.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/task/ui/view.html.php b/module/task/ui/view.html.php index c0171dcb7d..7f13dc2675 100644 --- a/module/task/ui/view.html.php +++ b/module/task/ui/view.html.php @@ -147,7 +147,7 @@ else foreach($modulePath as $key => $module) { $moduleTitle .= $module->name; - $moduleItems[] = a(set::href(createLink('execution', 'task', "executionID=$task->execution&browseType=byModule¶m=$module->id")), set('data-app', $app->tab), $module->name) ?? span($module->name); + $moduleItems[] = a(set::href(createLink('execution', 'task', "executionID=$task->execution&browseType=byModule¶m=$module->id")), $module->name) ?? span($module->name); if(isset($modulePath[$key + 1])) { $moduleTitle .= '/'; From 3c130be58e3aed0f2dc23805dc541554283460a4 Mon Sep 17 00:00:00 2001 From: liyang Date: Wed, 6 Mar 2024 09:27:15 +0800 Subject: [PATCH 218/276] * Fix bug #46406. --- module/bug/js/browse.ui.js | 6 ++++++ module/bug/ui/browse.html.php | 1 + 2 files changed, 7 insertions(+) diff --git a/module/bug/js/browse.ui.js b/module/bug/js/browse.ui.js index 35a2309986..f46d55625f 100644 --- a/module/bug/js/browse.ui.js +++ b/module/bug/js/browse.ui.js @@ -43,5 +43,11 @@ window.onRenderCell = function(result, {row, col}) } } + if(result && col.name == 'deadline') + { + console.log(row.data.deadline); + if(row.data.deadline < today) result[0] = {html: '' + row.data.deadline + ''}; + } + return result; } diff --git a/module/bug/ui/browse.html.php b/module/bug/ui/browse.html.php index 84b35fa878..2ef92a1602 100644 --- a/module/bug/ui/browse.html.php +++ b/module/bug/ui/browse.html.php @@ -12,6 +12,7 @@ namespace zin; jsVar('productID', $product->id); jsVar('branch', $branch); +jsVar('today', date('Y-m-d')); jsVar('caseCommonLang', $this->lang->testcase->common); $queryMenuLink = createLink('bug', 'browse', "productID={$product->id}&branch={$branch}&browseType=bySearch¶m={queryID}"); From f59887a3c7cc01af196c5063302ad04982dad0c1 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 6 Mar 2024 09:29:46 +0800 Subject: [PATCH 219/276] * Fix bug #46453. --- module/execution/ui/view.html.php | 10 +++++++--- module/project/ui/view.html.php | 11 ++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/module/execution/ui/view.html.php b/module/execution/ui/view.html.php index d490c97039..afd71f3281 100644 --- a/module/execution/ui/view.html.php +++ b/module/execution/ui/view.html.php @@ -110,16 +110,20 @@ if(!empty($execution->projectInfo->hasProduct) || $features['plan']) foreach($product->plans as $planIDList) { $planIDList = explode(',', $planIDList); + $planIDList = array_filter($planIDList); foreach($planIDList as $planID) { if(!isset($planGroups[$productID][$planID])) continue; - $class = ''; + $class = 'clip'; + if(count($planIDList) <= 2) $class .= ' flex flex-1 w-0 items-center'; + if(count($planIDList) > 2) $class .= ' flex-none w-1/3'; + if(count($plans) > 2) $class .= ' mt-2'; - if(count($plans) % 3 != 0) $class .= ' pl-4'; + if(count($plans) % 3 != 0) $class .= ' pl-6'; $plans[] = div ( - setClass("flex-none w-1/3 clip {$class}"), + setClass($class), icon('calendar mr-2'), a ( diff --git a/module/project/ui/view.html.php b/module/project/ui/view.html.php index a150eb9687..d3189f7324 100644 --- a/module/project/ui/view.html.php +++ b/module/project/ui/view.html.php @@ -93,15 +93,20 @@ if($project->hasProduct) foreach($product->plans as $planIDList) { $planIDList = explode(',', $planIDList); + $planIDList = array_filter($planIDList); foreach($planIDList as $planID) { if(!isset($planGroup[$productID][$planID])) continue; - $planClass = count($plans) > 2 ? 'mt-2' : ''; - $planClass .= count($plans) % 3 != 0 ? ' pl-4' : ''; + $class = 'clip'; + if(count($planIDList) <= 2) $class .= ' flex flex-1 w-0 items-center'; + if(count($planIDList) > 2) $class .= ' flex-none w-1/3'; + + if(count($plans) > 2) $class .= ' mt-2'; + if(count($plans) % 3 != 0) $class .= ' pl-6'; $plans[] = div ( - setClass("flex-none w-1/3 clip {$planClass}"), + setClass($class), icon('productplan mr-2 '), a ( From fe7a2c94e34b064a9028230f066a5030b22f9718 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 6 Mar 2024 09:40:32 +0800 Subject: [PATCH 220/276] * Fix bug #46410. --- module/execution/ui/create.html.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/module/execution/ui/create.html.php b/module/execution/ui/create.html.php index dee444c847..5f4269841d 100644 --- a/module/execution/ui/create.html.php +++ b/module/execution/ui/create.html.php @@ -58,7 +58,7 @@ $handleBeginEndChange = jsCallback() if(!zui.isValidDate(begin) || !zui.isValidDate(end)) return; const $days = $element.find('[name=days]'); const beginDate = zui.createDate(begin); - const endDate = zui.createDate(end); + const endDate = zui.createDate(end); const totalDays = 1 + Math.ceil((endDate.getTime() - beginDate.getTime()) / zui.TIME_DAY); if(totalDays <= 0) return $days.val(0); let workDays = 0; @@ -83,7 +83,7 @@ formGridPanel set::icon('copy'), setClass('primary-ghost size-md'), toggle::modal(array('target' => '#copyExecutionModal', 'destoryOnHide' => true)), - $lang->execution->copy + $lang->execution->copyExec ), divider(setClass('h-4 mr-4 ml-2 self-center')) ), @@ -126,7 +126,7 @@ modalTrigger btn ( setClass('primary btn-wide hidden confirmBtn'), - set::text($lang->execution->copy), + set::text($lang->execution->copyExec), on::click('setCopyExecution') ) ), From b7e559d10d265cb3455414c3b764ad6ae29c53ba Mon Sep 17 00:00:00 2001 From: liumengyi Date: Wed, 6 Mar 2024 09:40:51 +0800 Subject: [PATCH 221/276] * Fix bug #46451. --- module/story/ui/cases.html.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/module/story/ui/cases.html.php b/module/story/ui/cases.html.php index 45ffd148e0..23de4888c9 100644 --- a/module/story/ui/cases.html.php +++ b/module/story/ui/cases.html.php @@ -11,6 +11,11 @@ declare(strict_types=1); namespace zin; modalHeader(set::titleClass('icon icon-bar-chart')); +foreach($config->story->caseTable->fieldList as $key => $field) +{ + $config->story->caseTable->fieldList[$key]['sort'] = true; + unset($config->story->caseTable->fieldList[$key]['sortType']); +} $tableData = initTableData($cases, $config->story->caseTable->fieldList, $this->story); From 4837ea1efa24c4c6fc8cddeb401fc758148e200f Mon Sep 17 00:00:00 2001 From: liyang Date: Wed, 6 Mar 2024 09:56:58 +0800 Subject: [PATCH 222/276] * Fix bug #46555. --- lib/zin/wg/backbtn/v1.php | 3 ++- module/ai/ui/modelview.html.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/zin/wg/backbtn/v1.php b/lib/zin/wg/backbtn/v1.php index f4e15202a8..f2ac1be29f 100644 --- a/lib/zin/wg/backbtn/v1.php +++ b/lib/zin/wg/backbtn/v1.php @@ -71,7 +71,8 @@ class backBtn extends btn 'zanode' => 'zanode-browse,zanode-view', 'zahost' => 'zahost-browse,zahost-view', 'stakeholder' => 'stakeholder-browse', - 'execution' => 'execution-story,execution-team,execution-index,execution->view,project-execution,execution-all,project-index,user-execution' + 'execution' => 'execution-story,execution-team,execution-index,execution->view,project-execution,execution-all,project-index,user-execution', + 'ai' => 'ai-models' ); $props = parent::getProps(); diff --git a/module/ai/ui/modelview.html.php b/module/ai/ui/modelview.html.php index 9ec08d9e60..f9cb432f66 100644 --- a/module/ai/ui/modelview.html.php +++ b/module/ai/ui/modelview.html.php @@ -8,7 +8,7 @@ jsVar('confirmDisableTip', $lang->ai->models->confirmDisable); detailHeader ( - set::backUrl($this->createLink('ai', 'models')), + backBtn(set::icon('back'), setClass('ghost text-white'), $lang->goback), to::title ( entityLabel From a0a828c818c12ae93e9952cc92c4abfc83336a9c Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 6 Mar 2024 09:59:35 +0800 Subject: [PATCH 223/276] * Fix bug #46402. --- module/doc/css/showfiles.ui.css | 1 + module/doc/js/showfiles.ui.js | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/module/doc/css/showfiles.ui.css b/module/doc/css/showfiles.ui.css index 6daa80c894..cc4cc72c82 100644 --- a/module/doc/css/showfiles.ui.css +++ b/module/doc/css/showfiles.ui.css @@ -3,3 +3,4 @@ .actions-menu .searchBox .input-control-suffix {padding-right: 0;} .actions-menu .btn-group .switchBtn {padding: 6px 10px;} #table-doc-showfiles [data-type='title'] .dtable-cell-html img {max-height: 36px;} +#table-doc-showfiles [data-type='title'] .file-name {vertical-align: text-bottom;} diff --git a/module/doc/js/showfiles.ui.js b/module/doc/js/showfiles.ui.js index 50d2d5e90b..f8d79dbd6e 100644 --- a/module/doc/js/showfiles.ui.js +++ b/module/doc/js/showfiles.ui.js @@ -12,9 +12,11 @@ window.renderCell = function(result, {col, row}) { if(col.name == 'title') { - let titleHtml = ''; + let titleHtml = ''; + let titleClass = ''; if(imageExtensionList.includes(row.data.extension)) { + titleClass = 'file-name'; titleHtml += `
`; } else @@ -22,7 +24,7 @@ window.renderCell = function(result, {col, row}) titleHtml += row.data.fileIcon; } - titleHtml += `${row.data.fileName}`; + titleHtml += `${row.data.fileName}`; result[0] = {html: titleHtml}; return result; From 53e970c56f1d5e5cec7f6f32e6fae70fe537929b Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 6 Mar 2024 10:07:40 +0800 Subject: [PATCH 224/276] * Adjust app login logic. --- module/common/model.php | 4 ++-- www/api.php | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/module/common/model.php b/module/common/model.php index 609642a4e0..d8ff25f6dc 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -1630,7 +1630,7 @@ class commonModel extends model $this->loadModel('action')->create('user', $user->id, 'login'); $this->loadModel('score')->create('user', 'login'); - if($isFreepasswd) helper::end(js::locate($this->config->webRoot)); + if($isFreepasswd) header("Location: {$this->config->webRoot}"); $this->session->set('ENTRY_CODE', $this->get->code); $this->session->set('VALID_ENTRY', md5(md5($this->get->code) . helper::getRemoteIp())); @@ -1672,7 +1672,7 @@ class commonModel extends model if($result) { if($timestamp <= $entry->calledTime) $this->response('CALLED_TIME'); - $this->loadModel('entry')->updateCalledTime($entry->code, $timestamp); + $this->loadModel('entry')->updateCalledTime($entry->code, (int)$timestamp); unset($_GET['time']); return $result; } diff --git a/www/api.php b/www/api.php index fe5b4f478a..7df0bfac68 100644 --- a/www/api.php +++ b/www/api.php @@ -33,8 +33,17 @@ $app = router::createApp('pms', dirname(dirname(__FILE__)), 'api'); /* Run the app. */ $common = $app->loadCommon(); -/* Check entry. */ -$common->checkEntry(); +try +{ + /* Check entry. */ + $common->checkEntry(); +} +catch (EndResponseException $endResponseException) +{ + echo $endResponseException->getContent(); + return print(helper::removeUTF8Bom(ob_get_clean())); +} + $common->loadConfigFromDB(); /* Set default params. */ @@ -48,7 +57,5 @@ if(!$app->version) $common->checkPriv(); $app->loadModule(); -$output = ob_get_clean(); - /* Flush the buffer. */ -echo $app->formatData(helper::removeUTF8Bom($output)); +echo $app->formatData(helper::removeUTF8Bom(ob_get_clean())); From 65e57b3e998247daee21a027016a566f1de1b439 Mon Sep 17 00:00:00 2001 From: sunhao Date: Wed, 6 Mar 2024 10:25:59 +0800 Subject: [PATCH 225/276] * zin: support to set priList and severityList data automatically. --- lib/zin/wg/dtable/v1.php | 30 +++++++++++++++++++++++++++--- lib/zin/wg/prilabel/v1.php | 9 ++++++++- lib/zin/wg/severitylabel/v1.php | 9 ++++++++- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/lib/zin/wg/dtable/v1.php b/lib/zin/wg/dtable/v1.php index 75868bdec2..8ecc7f90c8 100644 --- a/lib/zin/wg/dtable/v1.php +++ b/lib/zin/wg/dtable/v1.php @@ -118,9 +118,13 @@ class dtable extends wg */ public function initCols(string $module) { - global $app; - $colConfigs = $this->prop('cols'); - $dataPairs = $this->prop('userMap', array()); + global $app, $lang; + + $colConfigs = $this->prop('cols'); + $dataPairs = $this->prop('userMap', array()); + $hasPriCols = false; + $hasSeverityCols = false; + foreach($colConfigs as $field => &$config) { if(is_object($config)) $config = (array)$config; @@ -140,9 +144,29 @@ class dtable extends wg $delimiter = is_string($config['delimiter']) ? $config['delimiter'] : ','; $config['map'] = jsRaw("(value) => {return window.setMultipleCell(value, '" . json_encode($dataPairs). "', '{$delimiter}')}"); } + + if(isset($config['type']) && $config['type'] === 'pri') + { + $hasPriCols = true; + } + if(isset($config['type']) && $config['type'] === 'severity') + { + $hasSeverityCols = true; + } } $this->setProp('cols', array_values($colConfigs)); + + if($hasPriCols && !$this->prop('priList')) + { + $moduleName = $app->getModuleName(); + if(isset($lang->$moduleName->priList)) $this->setProp('priList', $lang->$moduleName->priList); + } + if($hasSeverityCols && !$this->prop('severityList')) + { + $moduleName = $app->getModuleName(); + if(isset($lang->$moduleName->severityList)) $this->setProp('severityList', $lang->$moduleName->severityList); + } } /** diff --git a/lib/zin/wg/prilabel/v1.php b/lib/zin/wg/prilabel/v1.php index c8e8b8db6c..a8bfe712ec 100644 --- a/lib/zin/wg/prilabel/v1.php +++ b/lib/zin/wg/prilabel/v1.php @@ -6,7 +6,7 @@ class priLabel extends wg { protected static array $defineProps = array( 'pri: int|string', // 优先级的值。 - 'text?: string|array' // 优先级显示的文本或优先级文本映射对象。 + 'text?: string|array' // 优先级显示的文本或优先级文本映射对象,如果不指定从 $lang->$moduleName->priList 中获取。 ); protected function onAddChild(mixed $child) @@ -32,6 +32,13 @@ class priLabel extends wg $pri = $this->prop('pri', 0); $text = $this->prop('text'); + if(is_null($text)) + { + global $app, $lang; + $moduleName = $app->getModuleName(); + if(isset($lang->$moduleName->priList)) $text = $lang->$moduleName->priList; + } + if(is_array($text)) $text = isset($text[$pri]) ? $text[$pri] : null; $pri = trim("$pri"); diff --git a/lib/zin/wg/severitylabel/v1.php b/lib/zin/wg/severitylabel/v1.php index 494491df8a..f34bccd5a8 100644 --- a/lib/zin/wg/severitylabel/v1.php +++ b/lib/zin/wg/severitylabel/v1.php @@ -6,7 +6,7 @@ class severityLabel extends wg { protected static array $defineProps = array( 'level: string|int', // 严重程度等级。 - 'text?: string|array', // 标签文本或标签文本映射对象。 + 'text?: string|array', // 标签文本或标签文本映射对象,如果不指定从 $lang->$moduleName->severityList 中获取。 'isIcon?: bool=false' // 是否显示为图标。 ); @@ -34,6 +34,13 @@ class severityLabel extends wg $text = $this->prop('text'); $isIcon = $this->prop('isIcon'); + if(is_null($text)) + { + global $app, $lang; + $moduleName = $app->getModuleName(); + if(isset($lang->$moduleName->severityList)) $text = $lang->$moduleName->severityList; + } + if(is_array($text)) $text = isset($text[$level]) ? $text[$level] : null; $level = trim("$level"); From 8b2775a1968c74326c26533a3414d01bd1f4a44e Mon Sep 17 00:00:00 2001 From: sunhao Date: Wed, 6 Mar 2024 10:27:43 +0800 Subject: [PATCH 226/276] * zui: update zui3 lib. --- www/js/zui3/zui.zentao.css | 2 +- www/js/zui3/zui.zentao.js | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/www/js/zui3/zui.zentao.css b/www/js/zui3/zui.zentao.css index 3ef3fc5295..5f3cdb2993 100644 --- a/www/js/zui3/zui.zentao.css +++ b/www/js/zui3/zui.zentao.css @@ -1 +1 @@ -/*! tailwindcss v3.3.6 | MIT License | https://tailwindcss.com*/*,:after,:before{border-color:rgb(var(--color-gray-200-rgb));border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:-apple-system,Noto Sans,Helvetica Neue,Helvetica,Nimbus Sans L,Arial,Liberation Sans,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,Source Han Sans CN,Microsoft YaHei,Wenquanyi Micro Hei,WenQuanYi Zen Hei,ST Heiti,SimHei,WenQuanYi Zen Hei Sharp,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:rgb(var(--color-gray-400-rgb));opacity:1}input::placeholder,textarea::placeholder{color:rgb(var(--color-gray-400-rgb));opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}:root{--screen-2xl:1720px;--color-gray-50:#fcfdfe;--color-gray-100:#eff1f3;--color-gray-200:#ebedf3;--color-gray-300:#d2d6e5;--color-gray-400:#b2b9c5;--color-gray-500:#64758b;--color-gray-600:#4a577f;--color-gray-700:#3d4667;--color-gray-800:#353d57;--color-gray-900:#30394a;--color-gray-950:#0b0f18;--color-gray-50-rgb:252,253,254;--color-gray-100-rgb:239,241,243;--color-gray-200-rgb:235,237,243;--color-gray-300-rgb:210,214,229;--color-gray-400-rgb:178,185,197;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:74,87,127;--color-gray-700-rgb:61,70,103;--color-gray-800-rgb:53,61,87;--color-gray-900-rgb:48,57,74;--color-gray-950-rgb:11,15,24;--color-primary-50:#eef6ff;--color-primary-100:#d9eaff;--color-primary-200:#bcdcff;--color-primary-300:#8ec6ff;--color-primary-400:#59a5ff;--color-primary-500:#3883fa;--color-primary-600:#2b67e5;--color-primary-700:#144ce1;--color-primary-800:#173db6;--color-primary-900:#19388f;--color-primary-950:#142457;--color-primary-50-rgb:238,246,255;--color-primary-100-rgb:217,234,255;--color-primary-200-rgb:188,220,255;--color-primary-300-rgb:142,198,255;--color-primary-400-rgb:89,165,255;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:43,103,229;--color-primary-700-rgb:20,76,225;--color-primary-800-rgb:23,61,182;--color-primary-900-rgb:25,56,143;--color-primary-950-rgb:20,36,87;--color-secondary-50:#e7f6ff;--color-secondary-100:#cdecff;--color-secondary-200:#9bd9ff;--color-secondary-300:#77cbff;--color-secondary-400:#60c2ff;--color-secondary-500:#37b2fe;--color-secondary-600:#18a6fd;--color-secondary-700:#1099ed;--color-secondary-800:#078ada;--color-secondary-900:#046bab;--color-secondary-950:#062a4b;--color-secondary-50-rgb:231,246,255;--color-secondary-100-rgb:205,236,255;--color-secondary-200-rgb:155,217,255;--color-secondary-300-rgb:119,203,255;--color-secondary-400-rgb:96,194,255;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:24,166,253;--color-secondary-700-rgb:16,153,237;--color-secondary-800-rgb:7,138,218;--color-secondary-900-rgb:4,107,171;--color-secondary-950-rgb:6,42,75;--color-success-50:#ecfff8;--color-success-100:#d0f6e8;--color-success-200:#b1ecd6;--color-success-300:#7adfba;--color-success-400:#48d1a0;--color-success-500:#22c98d;--color-success-600:#0dbb7d;--color-success-700:#0ca76f;--color-success-800:#0e8d60;--color-success-900:#186c4e;--color-success-50-rgb:236,255,248;--color-success-100-rgb:208,246,232;--color-success-200-rgb:177,236,214;--color-success-300-rgb:122,223,186;--color-success-400-rgb:72,209,160;--color-success-500-rgb:34,201,141;--color-success-600-rgb:13,187,125;--color-success-700-rgb:12,167,111;--color-success-800-rgb:14,141,96;--color-success-900-rgb:24,108,78;--color-warning-50:#fff4ea;--color-warning-100:#ffecdb;--color-warning-200:#ffd2a9;--color-warning-300:#ffbc7e;--color-warning-400:#ffaf65;--color-warning-500:#ff9f46;--color-warning-600:#f38f19;--color-warning-700:#ed8307;--color-warning-800:#d17100;--color-warning-900:#af5f01;--color-warning-50-rgb:255,244,234;--color-warning-100-rgb:255,236,219;--color-warning-200-rgb:255,210,169;--color-warning-300-rgb:255,188,126;--color-warning-400-rgb:255,175,101;--color-warning-500-rgb:255,159,70;--color-warning-600-rgb:243,143,25;--color-warning-700-rgb:237,131,7;--color-warning-800-rgb:209,113,0;--color-warning-900-rgb:175,95,1;--color-danger-50:#ffebeb;--color-danger-100:#ffd5d5;--color-danger-200:#ffb1b1;--color-danger-300:#ff9292;--color-danger-400:#ff7c7c;--color-danger-500:#fc5959;--color-danger-600:#fb2b2b;--color-danger-700:#d91b1b;--color-danger-800:#ba1313;--color-danger-900:#a20606;--color-danger-50-rgb:255,235,235;--color-danger-100-rgb:255,213,213;--color-danger-200-rgb:255,177,177;--color-danger-300-rgb:255,146,146;--color-danger-400-rgb:255,124,124;--color-danger-500-rgb:252,89,89;--color-danger-600-rgb:251,43,43;--color-danger-700-rgb:217,27,27;--color-danger-800-rgb:186,19,19;--color-danger-900-rgb:162,6,6;--color-important-50:#fff8f5;--color-important-100:#ffe2d9;--color-important-200:#ffcebf;--color-important-300:#ffb29b;--color-important-400:#ff8c68;--color-important-500:#ff8058;--color-important-600:#ff6f42;--color-important-700:#ff4912;--color-important-800:#c83509;--color-important-900:#611700;--color-important-50-rgb:255,248,245;--color-important-100-rgb:255,226,217;--color-important-200-rgb:255,206,191;--color-important-300-rgb:255,178,155;--color-important-400-rgb:255,140,104;--color-important-500-rgb:255,128,88;--color-important-600-rgb:255,111,66;--color-important-700-rgb:255,73,18;--color-important-800-rgb:200,53,9;--color-important-900-rgb:97,23,0;--color-special-50:#efecfa;--color-special-100:#e4dff7;--color-special-200:#c4b6ff;--color-special-300:#a38cff;--color-special-400:#8a6ff5;--color-special-500:#8166ee;--color-special-600:#7055df;--color-special-700:#513baa;--color-special-800:#452da5;--color-special-900:#30216e;--color-special-50-rgb:239,236,250;--color-special-100-rgb:228,223,247;--color-special-200-rgb:196,182,255;--color-special-300-rgb:163,140,255;--color-special-400-rgb:138,111,245;--color-special-500-rgb:129,102,238;--color-special-600-rgb:112,85,223;--color-special-700-rgb:81,59,170;--color-special-800-rgb:69,45,165;--color-special-900-rgb:48,33,110;--color-inherit:inherit;--color-transparent:transparent;--color-current:currentColor;--color-black:#000;--color-white:#fff;--color-canvas:#fff;--color-canvas-light:#fff;--color-canvas-dark:#fcfdfe;--color-inverse:#000;--color-surface:#eff1f3;--color-surface-light:#fcfdfe;--color-surface-strong:#ebedf3;--color-fore:#30394a;--color-fore-in-light:#30394a;--color-fore-in-dark:#fff;--color-focus:#bcdcff;--color-link:#2b47a2;--color-link-hover:#144ce1;--color-link-visited:#6328a4;--color-link-active:#144ce1;--color-placeholder:#b2b9c5;--color-border:#ebedf3;--color-border-strong:#d2d6e5;--color-border-light:#eff1f3;--color-black-rgb:0,0,0;--color-white-rgb:255,255,255;--color-canvas-rgb:255,255,255;--color-canvas-light-rgb:255,255,255;--color-canvas-dark-rgb:252,253,254;--color-inverse-rgb:0,0,0;--color-surface-rgb:239,241,243;--color-surface-light-rgb:252,253,254;--color-surface-strong-rgb:235,237,243;--color-fore-rgb:48,57,74;--color-fore-in-light-rgb:48,57,74;--color-fore-in-dark-rgb:255,255,255;--color-focus-rgb:188,220,255;--color-link-rgb:43,71,162;--color-link-hover-rgb:20,76,225;--color-link-visited-rgb:99,40,164;--color-link-active-rgb:20,76,225;--color-placeholder-rgb:178,185,197;--color-border-rgb:235,237,243;--color-border-strong-rgb:210,214,229;--color-border-light-rgb:239,241,243;--radius-none:0px;--radius-sm:0.0625rem;--radius:0.125rem;--radius-md:0.25rem;--radius-lg:0.375rem;--radius-xl:0.5rem;--radius-2xl:0.75rem;--radius-3xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--shadow-md:0 2px 6px -1px rgba(0,0,0,.2),0 1px 4px -2px rgba(0,0,0,.15);--shadow-lg:0 5px 15px -3px rgba(0,0,0,.2),0 2px 6px -4px rgba(0,0,0,.15);--shadow-xl:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--shadow-2xl:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--shadow-inner:inset 0 2px 4px 0 rgba(0,0,0,.05);--shadow-none:none;--space:0.25rem;--font-size-root:16px;--font-size-page-lineHeight:1.5384615385}.dark{--color-gray-50:#0b0f18;--color-gray-100:#30394a;--color-gray-200:#353d57;--color-gray-300:#3d4667;--color-gray-400:#4a577f;--color-gray-500:#64758b;--color-gray-600:#b2b9c5;--color-gray-700:#d2d6e5;--color-gray-800:#ebedf3;--color-gray-900:#eff1f3;--color-gray-950:#fcfdfe;--color-gray-50-rgb:11,15,24;--color-gray-100-rgb:48,57,74;--color-gray-200-rgb:53,61,87;--color-gray-300-rgb:61,70,103;--color-gray-400-rgb:74,87,127;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:178,185,197;--color-gray-700-rgb:210,214,229;--color-gray-800-rgb:235,237,243;--color-gray-900-rgb:239,241,243;--color-gray-950-rgb:252,253,254;--color-primary-50:#142457;--color-primary-100:#19388f;--color-primary-200:#173db6;--color-primary-300:#144ce1;--color-primary-400:#2b67e5;--color-primary-500:#3883fa;--color-primary-600:#59a5ff;--color-primary-700:#8ec6ff;--color-primary-800:#bcdcff;--color-primary-900:#d9eaff;--color-primary-950:#eef6ff;--color-primary-50-rgb:20,36,87;--color-primary-100-rgb:25,56,143;--color-primary-200-rgb:23,61,182;--color-primary-300-rgb:20,76,225;--color-primary-400-rgb:43,103,229;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:89,165,255;--color-primary-700-rgb:142,198,255;--color-primary-800-rgb:188,220,255;--color-primary-900-rgb:217,234,255;--color-primary-950-rgb:238,246,255;--color-secondary-50:#062a4b;--color-secondary-100:#046bab;--color-secondary-200:#078ada;--color-secondary-300:#1099ed;--color-secondary-400:#18a6fd;--color-secondary-500:#37b2fe;--color-secondary-600:#60c2ff;--color-secondary-700:#77cbff;--color-secondary-800:#9bd9ff;--color-secondary-900:#cdecff;--color-secondary-950:#e7f6ff;--color-secondary-50-rgb:6,42,75;--color-secondary-100-rgb:4,107,171;--color-secondary-200-rgb:7,138,218;--color-secondary-300-rgb:16,153,237;--color-secondary-400-rgb:24,166,253;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:96,194,255;--color-secondary-700-rgb:119,203,255;--color-secondary-800-rgb:155,217,255;--color-secondary-900-rgb:205,236,255;--color-secondary-950-rgb:231,246,255;--color-success-50:#186c4e;--color-success-100:#0e8d60;--color-success-200:#0ca76f;--color-success-300:#0dbb7d;--color-success-400:#22c98d;--color-success-500:#48d1a0;--color-success-600:#7adfba;--color-success-700:#b1ecd6;--color-success-800:#d0f6e8;--color-success-900:#ecfff8;--color-success-50-rgb:24,108,78;--color-success-100-rgb:14,141,96;--color-success-200-rgb:12,167,111;--color-success-300-rgb:13,187,125;--color-success-400-rgb:34,201,141;--color-success-500-rgb:72,209,160;--color-success-600-rgb:122,223,186;--color-success-700-rgb:177,236,214;--color-success-800-rgb:208,246,232;--color-success-900-rgb:236,255,248;--color-warning-50:#af5f01;--color-warning-100:#d17100;--color-warning-200:#ed8307;--color-warning-300:#f38f19;--color-warning-400:#ff9f46;--color-warning-500:#ffaf65;--color-warning-600:#ffbc7e;--color-warning-700:#ffd2a9;--color-warning-800:#ffecdb;--color-warning-900:#fff4ea;--color-warning-50-rgb:175,95,1;--color-warning-100-rgb:209,113,0;--color-warning-200-rgb:237,131,7;--color-warning-300-rgb:243,143,25;--color-warning-400-rgb:255,159,70;--color-warning-500-rgb:255,175,101;--color-warning-600-rgb:255,188,126;--color-warning-700-rgb:255,210,169;--color-warning-800-rgb:255,236,219;--color-warning-900-rgb:255,244,234;--color-danger-50:#a20606;--color-danger-100:#ba1313;--color-danger-200:#d91b1b;--color-danger-300:#fb2b2b;--color-danger-400:#fc5959;--color-danger-500:#ff7c7c;--color-danger-600:#ff9292;--color-danger-700:#ffb1b1;--color-danger-800:#ffd5d5;--color-danger-900:#ffebeb;--color-danger-50-rgb:162,6,6;--color-danger-100-rgb:186,19,19;--color-danger-200-rgb:217,27,27;--color-danger-300-rgb:251,43,43;--color-danger-400-rgb:252,89,89;--color-danger-500-rgb:255,124,124;--color-danger-600-rgb:255,146,146;--color-danger-700-rgb:255,177,177;--color-danger-800-rgb:255,213,213;--color-danger-900-rgb:255,235,235;--color-important-50:#611700;--color-important-100:#c83509;--color-important-200:#ff4912;--color-important-300:#ff6f42;--color-important-400:#ff8058;--color-important-500:#ff8c68;--color-important-600:#ffb29b;--color-important-700:#ffcebf;--color-important-800:#ffe2d9;--color-important-900:#fff8f5;--color-important-50-rgb:97,23,0;--color-important-100-rgb:200,53,9;--color-important-200-rgb:255,73,18;--color-important-300-rgb:255,111,66;--color-important-400-rgb:255,128,88;--color-important-500-rgb:255,140,104;--color-important-600-rgb:255,178,155;--color-important-700-rgb:255,206,191;--color-important-800-rgb:255,226,217;--color-important-900-rgb:255,248,245;--color-special-50:#30216e;--color-special-100:#452da5;--color-special-200:#513baa;--color-special-300:#7055df;--color-special-400:#8166ee;--color-special-500:#8a6ff5;--color-special-600:#a38cff;--color-special-700:#c4b6ff;--color-special-800:#e4dff7;--color-special-900:#efecfa;--color-special-50-rgb:48,33,110;--color-special-100-rgb:69,45,165;--color-special-200-rgb:81,59,170;--color-special-300-rgb:112,85,223;--color-special-400-rgb:129,102,238;--color-special-500-rgb:138,111,245;--color-special-600-rgb:163,140,255;--color-special-700-rgb:196,182,255;--color-special-800-rgb:228,223,247;--color-special-900-rgb:239,236,250;--color-canvas:#0b0f18;--color-inverse:#fff;--color-surface:#353d57;--color-surface-light:#30394a;--color-surface-strong:#3d4667;--color-fore:#ebedf3;--color-focus:#173db6;--color-link:#59a5ff;--color-link-hover:#3883fa;--color-link-visited:#bcdcff;--color-link-active:#bcdcff;--color-placeholder:#4a577f;--color-border:#353d57;--color-border-strong:#3d4667;--color-border-light:#30394a;--color-canvas-rgb:11,15,24;--color-inverse-rgb:255,255,255;--color-surface-rgb:53,61,87;--color-surface-light-rgb:48,57,74;--color-surface-strong-rgb:61,70,103;--color-fore-rgb:235,237,243;--color-focus-rgb:23,61,182;--color-link-rgb:89,165,255;--color-link-hover-rgb:56,131,250;--color-link-visited-rgb:188,220,255;--color-link-active-rgb:188,220,255;--color-placeholder-rgb:74,87,127;--color-border-rgb:53,61,87;--color-border-strong-rgb:61,70,103;--color-border-light-rgb:48,57,74}.light-in-dark{--color-gray-50:#fcfdfe;--color-gray-100:#eff1f3;--color-gray-200:#ebedf3;--color-gray-300:#d2d6e5;--color-gray-400:#b2b9c5;--color-gray-500:#64758b;--color-gray-600:#4a577f;--color-gray-700:#3d4667;--color-gray-800:#353d57;--color-gray-900:#30394a;--color-gray-950:#0b0f18;--color-gray-50-rgb:252,253,254;--color-gray-100-rgb:239,241,243;--color-gray-200-rgb:235,237,243;--color-gray-300-rgb:210,214,229;--color-gray-400-rgb:178,185,197;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:74,87,127;--color-gray-700-rgb:61,70,103;--color-gray-800-rgb:53,61,87;--color-gray-900-rgb:48,57,74;--color-gray-950-rgb:11,15,24;--color-primary-50:#eef6ff;--color-primary-100:#d9eaff;--color-primary-200:#bcdcff;--color-primary-300:#8ec6ff;--color-primary-400:#59a5ff;--color-primary-500:#3883fa;--color-primary-600:#2b67e5;--color-primary-700:#144ce1;--color-primary-800:#173db6;--color-primary-900:#19388f;--color-primary-950:#142457;--color-primary-50-rgb:238,246,255;--color-primary-100-rgb:217,234,255;--color-primary-200-rgb:188,220,255;--color-primary-300-rgb:142,198,255;--color-primary-400-rgb:89,165,255;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:43,103,229;--color-primary-700-rgb:20,76,225;--color-primary-800-rgb:23,61,182;--color-primary-900-rgb:25,56,143;--color-primary-950-rgb:20,36,87;--color-secondary-50:#e7f6ff;--color-secondary-100:#cdecff;--color-secondary-200:#9bd9ff;--color-secondary-300:#77cbff;--color-secondary-400:#60c2ff;--color-secondary-500:#37b2fe;--color-secondary-600:#18a6fd;--color-secondary-700:#1099ed;--color-secondary-800:#078ada;--color-secondary-900:#046bab;--color-secondary-950:#062a4b;--color-secondary-50-rgb:231,246,255;--color-secondary-100-rgb:205,236,255;--color-secondary-200-rgb:155,217,255;--color-secondary-300-rgb:119,203,255;--color-secondary-400-rgb:96,194,255;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:24,166,253;--color-secondary-700-rgb:16,153,237;--color-secondary-800-rgb:7,138,218;--color-secondary-900-rgb:4,107,171;--color-secondary-950-rgb:6,42,75;--color-success-50:#ecfff8;--color-success-100:#d0f6e8;--color-success-200:#b1ecd6;--color-success-300:#7adfba;--color-success-400:#48d1a0;--color-success-500:#22c98d;--color-success-600:#0dbb7d;--color-success-700:#0ca76f;--color-success-800:#0e8d60;--color-success-900:#186c4e;--color-success-50-rgb:236,255,248;--color-success-100-rgb:208,246,232;--color-success-200-rgb:177,236,214;--color-success-300-rgb:122,223,186;--color-success-400-rgb:72,209,160;--color-success-500-rgb:34,201,141;--color-success-600-rgb:13,187,125;--color-success-700-rgb:12,167,111;--color-success-800-rgb:14,141,96;--color-success-900-rgb:24,108,78;--color-warning-50:#fff4ea;--color-warning-100:#ffecdb;--color-warning-200:#ffd2a9;--color-warning-300:#ffbc7e;--color-warning-400:#ffaf65;--color-warning-500:#ff9f46;--color-warning-600:#f38f19;--color-warning-700:#ed8307;--color-warning-800:#d17100;--color-warning-900:#af5f01;--color-warning-50-rgb:255,244,234;--color-warning-100-rgb:255,236,219;--color-warning-200-rgb:255,210,169;--color-warning-300-rgb:255,188,126;--color-warning-400-rgb:255,175,101;--color-warning-500-rgb:255,159,70;--color-warning-600-rgb:243,143,25;--color-warning-700-rgb:237,131,7;--color-warning-800-rgb:209,113,0;--color-warning-900-rgb:175,95,1;--color-danger-50:#ffebeb;--color-danger-100:#ffd5d5;--color-danger-200:#ffb1b1;--color-danger-300:#ff9292;--color-danger-400:#ff7c7c;--color-danger-500:#fc5959;--color-danger-600:#fb2b2b;--color-danger-700:#d91b1b;--color-danger-800:#ba1313;--color-danger-900:#a20606;--color-danger-50-rgb:255,235,235;--color-danger-100-rgb:255,213,213;--color-danger-200-rgb:255,177,177;--color-danger-300-rgb:255,146,146;--color-danger-400-rgb:255,124,124;--color-danger-500-rgb:252,89,89;--color-danger-600-rgb:251,43,43;--color-danger-700-rgb:217,27,27;--color-danger-800-rgb:186,19,19;--color-danger-900-rgb:162,6,6;--color-important-50:#fff8f5;--color-important-100:#ffe2d9;--color-important-200:#ffcebf;--color-important-300:#ffb29b;--color-important-400:#ff8c68;--color-important-500:#ff8058;--color-important-600:#ff6f42;--color-important-700:#ff4912;--color-important-800:#c83509;--color-important-900:#611700;--color-important-50-rgb:255,248,245;--color-important-100-rgb:255,226,217;--color-important-200-rgb:255,206,191;--color-important-300-rgb:255,178,155;--color-important-400-rgb:255,140,104;--color-important-500-rgb:255,128,88;--color-important-600-rgb:255,111,66;--color-important-700-rgb:255,73,18;--color-important-800-rgb:200,53,9;--color-important-900-rgb:97,23,0;--color-special-50:#efecfa;--color-special-100:#e4dff7;--color-special-200:#c4b6ff;--color-special-300:#a38cff;--color-special-400:#8a6ff5;--color-special-500:#8166ee;--color-special-600:#7055df;--color-special-700:#513baa;--color-special-800:#452da5;--color-special-900:#30216e;--color-special-50-rgb:239,236,250;--color-special-100-rgb:228,223,247;--color-special-200-rgb:196,182,255;--color-special-300-rgb:163,140,255;--color-special-400-rgb:138,111,245;--color-special-500-rgb:129,102,238;--color-special-600-rgb:112,85,223;--color-special-700-rgb:81,59,170;--color-special-800-rgb:69,45,165;--color-special-900-rgb:48,33,110;--color-inherit:inherit;--color-transparent:transparent;--color-current:currentColor;--color-black:#000;--color-white:#fff;--color-canvas:#fff;--color-canvas-light:#fff;--color-canvas-dark:#fcfdfe;--color-inverse:#000;--color-surface:#eff1f3;--color-surface-light:#fcfdfe;--color-surface-strong:#ebedf3;--color-fore:#30394a;--color-fore-in-light:#30394a;--color-fore-in-dark:#fff;--color-focus:#bcdcff;--color-link:#2b47a2;--color-link-hover:#144ce1;--color-link-visited:#6328a4;--color-link-active:#144ce1;--color-placeholder:#b2b9c5;--color-border:#ebedf3;--color-border-strong:#d2d6e5;--color-border-light:#eff1f3;--color-black-rgb:0,0,0;--color-white-rgb:255,255,255;--color-canvas-rgb:255,255,255;--color-canvas-light-rgb:255,255,255;--color-canvas-dark-rgb:252,253,254;--color-inverse-rgb:0,0,0;--color-surface-rgb:239,241,243;--color-surface-light-rgb:252,253,254;--color-surface-strong-rgb:235,237,243;--color-fore-rgb:48,57,74;--color-fore-in-light-rgb:48,57,74;--color-fore-in-dark-rgb:255,255,255;--color-focus-rgb:188,220,255;--color-link-rgb:43,71,162;--color-link-hover-rgb:20,76,225;--color-link-visited-rgb:99,40,164;--color-link-active-rgb:20,76,225;--color-placeholder-rgb:178,185,197;--color-border-rgb:235,237,243;--color-border-strong-rgb:210,214,229;--color-border-light-rgb:239,241,243}body{--btn-bg:var(--color-gray-50)}@media (prefers-color-scheme:dark){.dark-auto{--color-gray-50:#0b0f18;--color-gray-100:#30394a;--color-gray-200:#353d57;--color-gray-300:#3d4667;--color-gray-400:#4a577f;--color-gray-500:#64758b;--color-gray-600:#b2b9c5;--color-gray-700:#d2d6e5;--color-gray-800:#ebedf3;--color-gray-900:#eff1f3;--color-gray-950:#fcfdfe;--color-gray-50-rgb:11,15,24;--color-gray-100-rgb:48,57,74;--color-gray-200-rgb:53,61,87;--color-gray-300-rgb:61,70,103;--color-gray-400-rgb:74,87,127;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:178,185,197;--color-gray-700-rgb:210,214,229;--color-gray-800-rgb:235,237,243;--color-gray-900-rgb:239,241,243;--color-gray-950-rgb:252,253,254;--color-primary-50:#142457;--color-primary-100:#19388f;--color-primary-200:#173db6;--color-primary-300:#144ce1;--color-primary-400:#2b67e5;--color-primary-500:#3883fa;--color-primary-600:#59a5ff;--color-primary-700:#8ec6ff;--color-primary-800:#bcdcff;--color-primary-900:#d9eaff;--color-primary-950:#eef6ff;--color-primary-50-rgb:20,36,87;--color-primary-100-rgb:25,56,143;--color-primary-200-rgb:23,61,182;--color-primary-300-rgb:20,76,225;--color-primary-400-rgb:43,103,229;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:89,165,255;--color-primary-700-rgb:142,198,255;--color-primary-800-rgb:188,220,255;--color-primary-900-rgb:217,234,255;--color-primary-950-rgb:238,246,255;--color-secondary-50:#062a4b;--color-secondary-100:#046bab;--color-secondary-200:#078ada;--color-secondary-300:#1099ed;--color-secondary-400:#18a6fd;--color-secondary-500:#37b2fe;--color-secondary-600:#60c2ff;--color-secondary-700:#77cbff;--color-secondary-800:#9bd9ff;--color-secondary-900:#cdecff;--color-secondary-950:#e7f6ff;--color-secondary-50-rgb:6,42,75;--color-secondary-100-rgb:4,107,171;--color-secondary-200-rgb:7,138,218;--color-secondary-300-rgb:16,153,237;--color-secondary-400-rgb:24,166,253;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:96,194,255;--color-secondary-700-rgb:119,203,255;--color-secondary-800-rgb:155,217,255;--color-secondary-900-rgb:205,236,255;--color-secondary-950-rgb:231,246,255;--color-success-50:#186c4e;--color-success-100:#0e8d60;--color-success-200:#0ca76f;--color-success-300:#0dbb7d;--color-success-400:#22c98d;--color-success-500:#48d1a0;--color-success-600:#7adfba;--color-success-700:#b1ecd6;--color-success-800:#d0f6e8;--color-success-900:#ecfff8;--color-success-50-rgb:24,108,78;--color-success-100-rgb:14,141,96;--color-success-200-rgb:12,167,111;--color-success-300-rgb:13,187,125;--color-success-400-rgb:34,201,141;--color-success-500-rgb:72,209,160;--color-success-600-rgb:122,223,186;--color-success-700-rgb:177,236,214;--color-success-800-rgb:208,246,232;--color-success-900-rgb:236,255,248;--color-warning-50:#af5f01;--color-warning-100:#d17100;--color-warning-200:#ed8307;--color-warning-300:#f38f19;--color-warning-400:#ff9f46;--color-warning-500:#ffaf65;--color-warning-600:#ffbc7e;--color-warning-700:#ffd2a9;--color-warning-800:#ffecdb;--color-warning-900:#fff4ea;--color-warning-50-rgb:175,95,1;--color-warning-100-rgb:209,113,0;--color-warning-200-rgb:237,131,7;--color-warning-300-rgb:243,143,25;--color-warning-400-rgb:255,159,70;--color-warning-500-rgb:255,175,101;--color-warning-600-rgb:255,188,126;--color-warning-700-rgb:255,210,169;--color-warning-800-rgb:255,236,219;--color-warning-900-rgb:255,244,234;--color-danger-50:#a20606;--color-danger-100:#ba1313;--color-danger-200:#d91b1b;--color-danger-300:#fb2b2b;--color-danger-400:#fc5959;--color-danger-500:#ff7c7c;--color-danger-600:#ff9292;--color-danger-700:#ffb1b1;--color-danger-800:#ffd5d5;--color-danger-900:#ffebeb;--color-danger-50-rgb:162,6,6;--color-danger-100-rgb:186,19,19;--color-danger-200-rgb:217,27,27;--color-danger-300-rgb:251,43,43;--color-danger-400-rgb:252,89,89;--color-danger-500-rgb:255,124,124;--color-danger-600-rgb:255,146,146;--color-danger-700-rgb:255,177,177;--color-danger-800-rgb:255,213,213;--color-danger-900-rgb:255,235,235;--color-important-50:#611700;--color-important-100:#c83509;--color-important-200:#ff4912;--color-important-300:#ff6f42;--color-important-400:#ff8058;--color-important-500:#ff8c68;--color-important-600:#ffb29b;--color-important-700:#ffcebf;--color-important-800:#ffe2d9;--color-important-900:#fff8f5;--color-important-50-rgb:97,23,0;--color-important-100-rgb:200,53,9;--color-important-200-rgb:255,73,18;--color-important-300-rgb:255,111,66;--color-important-400-rgb:255,128,88;--color-important-500-rgb:255,140,104;--color-important-600-rgb:255,178,155;--color-important-700-rgb:255,206,191;--color-important-800-rgb:255,226,217;--color-important-900-rgb:255,248,245;--color-special-50:#30216e;--color-special-100:#452da5;--color-special-200:#513baa;--color-special-300:#7055df;--color-special-400:#8166ee;--color-special-500:#8a6ff5;--color-special-600:#a38cff;--color-special-700:#c4b6ff;--color-special-800:#e4dff7;--color-special-900:#efecfa;--color-special-50-rgb:48,33,110;--color-special-100-rgb:69,45,165;--color-special-200-rgb:81,59,170;--color-special-300-rgb:112,85,223;--color-special-400-rgb:129,102,238;--color-special-500-rgb:138,111,245;--color-special-600-rgb:163,140,255;--color-special-700-rgb:196,182,255;--color-special-800-rgb:228,223,247;--color-special-900-rgb:239,236,250;--color-canvas:#0b0f18;--color-inverse:#fff;--color-surface:#353d57;--color-surface-light:#30394a;--color-surface-strong:#3d4667;--color-fore:#ebedf3;--color-focus:#173db6;--color-link:#59a5ff;--color-link-hover:#3883fa;--color-link-visited:#bcdcff;--color-link-active:#bcdcff;--color-placeholder:#4a577f;--color-border:#353d57;--color-border-strong:#3d4667;--color-border-light:#30394a;--color-canvas-rgb:11,15,24;--color-inverse-rgb:255,255,255;--color-surface-rgb:53,61,87;--color-surface-light-rgb:48,57,74;--color-surface-strong-rgb:61,70,103;--color-fore-rgb:235,237,243;--color-focus-rgb:23,61,182;--color-link-rgb:89,165,255;--color-link-hover-rgb:56,131,250;--color-link-visited-rgb:188,220,255;--color-link-active-rgb:188,220,255;--color-placeholder-rgb:74,87,127;--color-border-rgb:53,61,87;--color-border-strong-rgb:61,70,103;--color-border-light-rgb:48,57,74}}*,:after,:before{--tw-border-opacity:1;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity))}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }html{font-size:var(--font-size-root)}body{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));font-size:.8125rem;line-height:1.5384615385}.dark,body{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}:root{--font-h1-size:2.25rem}a,a.disabled:hover{--tw-text-opacity:1;color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}a:hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}a:focus-visible{outline-color:rgb(var(--color-focus-rgb));outline-offset:2px;outline-width:2px}.code,code{--tw-text-opacity:1;background-color:rgba(var(--color-important-500-rgb),.1);border-radius:var(--radius);color:rgba(var(--color-important-500-rgb),var(--tw-text-opacity));padding-left:.25rem;padding-right:.25rem}pre{font-size:.75rem;line-height:1rem;overflow:auto;padding:.5rem}pre code{background-color:transparent;color:inherit;padding:0}samp,var{font-weight:700}.blockquote,blockquote{text-wrap:balance;border-left-width:4px;font-size:.875rem;line-height:1.3rem;padding-left:.75rem}.blockquote figcaption,blockquote figcaption{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{text-wrap:balance;font-weight:700;line-height:1.5}.h1,h1{font-size:1.75rem}.h2,h2{font-size:1.5rem}.h3,h3{font-size:1.25rem}.h4,h4{font-size:1rem}.h5,h5{font-size:.875rem}.h6,h6{font-size:.75rem}ul{list-style-type:disc}ol,ul{padding-left:1.5em}ol{list-style-type:decimal}dt{font-weight:700}dd{padding-left:2em}.article{font-size:.875rem;line-height:1.75}.article audio,.article blockquote,.article figure,.article h1,.article h2,.article h3,.article h4,.article img,.article ol,.article p,.article table,.article ul,.article video{margin-bottom:.5em;margin-top:.5em}.article hr{margin-bottom:1.5em;margin-top:1.5em}.article table{border-width:1px}.article td,.article th{border-bottom-width:1px;padding:.25rem .75rem}.article thead{background-color:var(--table-head-bg,var(--color-gray-100))}.article ol *,.article table *,.article ul *{margin-bottom:0;margin-top:0}.article pre{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));border-radius:var(--radius);border-width:1px}:root{--alert-bg:var(--color-surface)}.alert{align-items:center;background-color:var(--alert-bg);border-radius:var(--radius);display:flex;gap:.75rem;padding:.5rem .75rem}.alert-content{display:flex;flex:1 1 auto;flex-direction:column;gap:1rem}.alert-close{margin-bottom:-.375rem;margin-right:-.5rem;margin-top:-.375rem}.alert-link{color:inherit;font-weight:700}.alert-link:hover{color:inherit;text-decoration-line:underline}.alert-heading{font-weight:700;margin:0}.alert-text{flex:1 1 auto;white-space:pre-line}.alert-actions{align-items:center;display:flex;gap:.5rem}:root{--breadcrumb-divider:"/";--breadcrumb-divider-color:var(--color-gray-500);--breadcrumb-color-active:var(--color-gray-500)}.breadcrumb{display:flex;gap:1.25rem;list-style-type:none;padding-left:0}.breadcrumb>li{position:relative}.breadcrumb>li+li:before{color:var(--breadcrumb-divider-color);content:var(--breadcrumb-divider);display:block;left:-1.25rem;position:absolute;text-align:center;width:1.25rem}.breadcrumb>.active{color:var(--breadcrumb-color-active)}:root{--btn-radius:var(--radius);--btn-bg:var(--color-surface);--btn-border-color:var(--color-gray-300)}.btn{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--btn-border-color);--state-active-opacity:1;align-items:center;background-color:var(--btn-bg);border-radius:var(--btn-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:inline-flex;gap:.375rem;height:2rem;justify-content:center;padding-left:.75rem;padding-right:.75rem;white-space:nowrap}.btn,.btn-default:hover{color:inherit}.btn-link{--tw-text-opacity:1;--tw-ring-color:transparent;color:rgba(var(--color-link-rgb),var(--tw-text-opacity));text-decoration-line:underline;text-underline-offset:2px}.btn-link:visited{color:rgba(var(--color-link-visited-rgb),var(--tw-text-opacity))}.btn-link:hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}.btn-link{--btn-bg:transparent}.btn.size-xs,.size-xs>.btn{font-size:.75rem;height:1.25rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}.btn.size-sm,.size-sm>.btn{font-size:.75rem;height:1.5rem;line-height:1rem}.btn.size-md,.btn.size-sm,.size-md>.btn,.size-sm>.btn{padding-left:.5rem;padding-right:.5rem}.btn.size-md,.size-md>.btn{height:1.75rem}.btn.size-lg,.size-lg>.btn{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:1rem;padding-right:1rem}.btn.size-xl,.size-xl>.btn{font-size:1.125rem;height:3rem;line-height:1.75rem;padding-left:1.25rem;padding-right:1.25rem}.btn.square{aspect-ratio:1/1;gap:.125rem;padding-left:0;padding-right:0}.btn.btn-caret{padding-left:.25rem;padding-right:.25rem}.btn.btn-wide{min-width:80px}:root{--checkbox-size:12px;--checkbox-color:var(--color-primary-500)}.checkbox,.radio{align-items:center;cursor:pointer;display:flex;gap:.375rem;min-height:20px}.checkbox>input[type=checkbox],.radio>input[type=radio]{accent-color:rgb(var(--color-primary-500-rgb));border-radius:var(--radius-lg)}.checkbox-primary,.radio-primary{display:flex;gap:.375rem;min-height:20px;position:relative}.checkbox-primary>input[type=checkbox],.radio-primary>input[type=radio]{inset:0;opacity:0;position:absolute}.checkbox-primary>label,.radio-primary>label{cursor:pointer;padding-left:calc(var(--checkbox-size) + 8px);position:relative}.checkbox-primary>label:after,.checkbox-primary>label:before,.radio-primary>label:after,.radio-primary>label:before{--tw-content:"";content:var(--tw-content);display:block;height:var(--checkbox-size);left:0;position:absolute;top:calc((20px - var(--checkbox-size))/2);transition-duration:.15s;transition-property:transform,background-color,color,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--checkbox-size)}.checkbox-primary>label:before{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity));border-radius:var(--radius-sm);border-width:1px}.checkbox-primary>label:after{--tw-scale-x:.9;--tw-scale-y:.9;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTkgMjAuNDItNi4yMS02LjIxIDIuODMtMi44M0w5IDE0Ljc3bDkuODgtOS44OSAyLjgzIDIuODN6Ii8+PC9zdmc+");transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.radio-primary>label:before{--tw-border-opacity:1;border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity));border-radius:var(--radius-full);border-width:1px}.radio-primary>label:after{--checkbox-radio-size:calc(var(--checkbox-size)*2/3);background-color:var(--checkbox-color);border-radius:var(--radius-full);height:var(--checkbox-radio-size);left:calc((var(--checkbox-size) - var(--checkbox-radio-size))/2);opacity:0;top:calc((20px - var(--checkbox-radio-size))/2);width:var(--checkbox-radio-size)}.checkbox-primary>label:hover:before,.radio-primary>label:hover:before{border-color:var(--checkbox-color)}.checkbox-primary.focus>label:before,.checkbox-primary>input[type=checkbox]:focus+label:before,.radio-primary.focus>label:before,.radio-primary>input[type=radio]:focus+label:before{border-color:var(--checkbox-color);outline-color:rgb(var(--color-focus-rgb));outline-style:solid;outline-width:2px}.checkbox-primary.checked>label:before,.checkbox-primary>input[type=checkbox]:checked+label:before{background-color:var(--checkbox-color);border-color:var(--checkbox-color)}.radio-primary.checked>label:before,.radio-primary>input[type=radio]:checked+label:before{border-color:var(--checkbox-color)}.checkbox-primary.checked>label:after,.checkbox-primary>input[type=checkbox]:checked+label:after,.radio-primary.checked>label:after,.radio-primary>input[type=radio]:checked+label:after{opacity:1}.checkbox-primary.disabled>label,.checkbox-primary>input[type=checkbox]:disabled+label,.radio-primary.disabled>label,.radio-primary>input[type=radio]:disabled+label{--tw-grayscale:grayscale(100%);cursor:not-allowed;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:.7;pointer-events:none}.checkbox-primary.indeterminate>label:after,.checkbox-primary>input[type=checkbox]:indeterminate+label:after{--tw-border-opacity:1;background-color:var(--checkbox-color);background-image:none;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));border-width:calc((var(--checkbox-size) - 2px)/2) 2px;opacity:1}.check-list{flex-direction:column;gap:.5rem}.check-list,.check-list-inline{display:flex;padding-bottom:.375rem;padding-top:.375rem}.check-list-inline{align-items:center;-moz-column-gap:1rem;column-gap:1rem;flex-direction:row;flex-wrap:wrap;row-gap:.5rem}.switch{display:flex;gap:.375rem;min-height:20px;padding-left:2.5rem;position:relative}.switch>input{inset:0;opacity:0;position:absolute}.switch>label:after,.switch>label:before{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-border-strong-rgb),var(--tw-border-opacity));border-radius:var(--radius-full);border-width:1px;content:var(--tw-content);height:1rem;left:0;position:absolute;top:.125rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2rem}.switch>label:before{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer}.switch>label:hover:before{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity))}.switch>label:after{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);height:.75rem;left:.125rem;top:.25rem;width:.75rem}.switch>input:checked+label:before{background-color:var(--checkbox-color);border-color:rgba(var(--color-inverse-rgb),.2)}.switch>input:checked+label:after{color:var(--checkbox-color);left:18px}.switch.focus>label:before,.switch>input:focus+label:before{border-color:var(--checkbox-color);outline-color:rgb(var(--color-focus-rgb));outline-style:solid;outline-width:2px}.switch.disabled>label:before,.switch>input:disabled+label:before{--tw-grayscale:grayscale(100%);cursor:not-allowed;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:.7;pointer-events:none}:root{--form-control-radius:var(--radius);--form-control-border:var(--color-border);--form-control-focus:var(--color-primary-500);--form-control-disabled:var(--color-surface);--form-control-readonly:var(--color-surface)}.dark{--form-control-border:var(--color-border-strong)}input::-moz-placeholder,textarea::-moz-placeholder{--tw-placeholder-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-placeholder-opacity))}input::placeholder,textarea::placeholder{--tw-placeholder-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-placeholder-opacity))}.form-control{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--form-control-border);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--form-control-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:block;height:2rem;outline-color:transparent;outline-style:solid;outline-width:1px;padding:.25rem .5rem;transition-duration:.15s;transition-property:outline,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.form-control.focus,.form-control:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-focus-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.3;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline-color:var(--form-control-focus)}.form-control.disabled,.form-control[disabled]{background-color:var(--form-control-disabled);opacity:1}.form-control.readonly,.form-control[readonly]{background-color:var(--form-control-readonly)}select{-webkit-appearance:none;background-image:url("data:image/gif;base64,R0lGODlhBwAEAIAAAMvQ2////yH5BAEAAAEALAAAAAAHAAQAAAIIhA+BGWoNWSgAOw==");background-position:right 8px top 50%;background-repeat:no-repeat;background-size:8px auto;padding-right:1rem}select.form-control[multiple]{background-image:none}textarea.form-control{height:auto;min-height:32px}input[type=file].form-control{padding:.125rem}input[type=file].form-control::-webkit-file-upload-button{-webkit-appearance:none;appearance:none;border-radius:inherit;border-style:none;cursor:pointer;height:1.75rem;padding-left:.5rem;padding-right:.5rem}input[type=file].form-control::-webkit-file-upload-button:hover{background-color:rgba(var(--color-black-rgb),.1)}.has-error .form-control,.has-error.form-control{--tw-ring-color:rgba(var(--color-danger-500-rgb),0.6)}.has-error .form-control.focus,.has-error .form-control:focus,.has-error.form-control.focus,.has-error.form-control:focus{--tw-ring-color:rgba(var(--color-danger-500-rgb),0.1);outline-color:rgb(var(--color-danger-500-rgb))}.has-warning .form-control,.has-warning.form-control{--tw-ring-color:rgba(var(--color-warning-500-rgb),0.6)}.has-warning .form-control.focus,.has-warning .form-control:focus,.has-warning.form-control.focus,.has-warning.form-control:focus{--tw-ring-color:rgba(var(--color-warning-500-rgb),0.2);outline-color:rgb(var(--color-warning-500-rgb))}.has-success .form-control,.has-success.form-control{--tw-ring-color:rgba(var(--color-success-500-rgb),0.6)}.has-success .form-control.focus,.has-success .form-control:focus,.has-success.form-control.focus,.has-success.form-control:focus{--tw-ring-color:rgba(var(--color-success-500-rgb),0.2);outline-color:rgb(var(--color-success-500-rgb))}.form-control.size-sm,.size-sm>.form-control{font-size:.75rem;height:1.5rem;line-height:1rem;padding-left:.5rem;padding-right:.5rem}.form-control.size-md,.size-md>.form-control{height:1.75rem;padding-left:.5rem;padding-right:.5rem}.form-control.size-lg,.size-lg>.form-control{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:.75rem;padding-right:.75rem}:root{--input-group-addon-bg:var(--color-gray-50)}.input-group{align-items:stretch;display:flex}.input-group>.form-control,.input-group>.input-control{flex:1 1 auto;z-index:1}.input-group-addon{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--form-control-border);align-items:center;background-color:var(--input-group-addon-bg);border-radius:var(--form-control-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:flex;flex:none;height:2rem;padding-left:.5rem;padding-right:.5rem;z-index:0}.size-sm>.input-group-addon{font-size:.75rem;height:1.5rem;line-height:1rem;padding-left:.5rem;padding-right:.5rem}.size-lg>.input-group-addon{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:.75rem;padding-right:.75rem}.input-group-control{flex:1 1 auto}.input-group>*+*,.input-group>*+* .form-control{border-bottom-left-radius:var(--radius-none);border-top-left-radius:var(--radius-none)}.input-group>:not(:last-child),.input-group>:not(:last-child) .form-control{border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none)}.input-group .btn:focus-visible,.input-group .form-control:focus{z-index:2}:root{--form-tip-color:var(--color-gray-400);--form-label-color:var(--color-gray-700);--form-horz-label-width:6rem;--form-grid-gap-x:1.25rem;--form-grid-gap-y:.75rem}.form{flex-direction:column;gap:1rem}.form,.form-label{display:flex}.form-label{align-items:center;color:var(--form-label-color);flex-direction:row;gap:.25rem;height:2rem;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.form-label.required:after{--tw-translate-y:0.125rem;--tw-scale-x:1.25;--tw-scale-y:1.25;--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity));content:"*";display:inline-block;margin-left:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.no-required .form-label.required:after{display:none}.form-label-actions{flex:1 1 auto;justify-content:flex-end}.form-label>.checkbox-primary{margin-left:.75rem}.form-tip{color:var(--form-tip-color);display:block;margin-top:.25rem}.has-error .form-tip{--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity))}.has-warning .form-tip{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.has-success .form-tip{--tw-text-opacity:1;color:rgba(var(--color-success-500-rgb),var(--tw-text-opacity))}.form-actions{display:flex;flex-direction:row;gap:1rem;justify-content:center}.form-grid{--form-grid-gap-x-half:calc(var(--form-grid-gap-x)/2);--form-grid-gap-y-half:calc(var(--form-grid-gap-y)/2);align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:0}.form-grid .form-group{padding:var(--form-grid-gap-y-half) var(--form-grid-gap-x-half)}.form-grid .form-label.required:after{margin-left:0;order:-9999}.form-grid .form-label .checkbox{margin-left:.75rem;margin-right:.75rem}.form-grid .has-wrap-after:after{--tw-content:"";content:var(--tw-content);display:block;width:100%}.form-grid-wrap{width:100%}.form-grid-row{display:flex;flex-direction:row;padding-bottom:var(--form-grid-gap-y-half);padding-top:var(--form-grid-gap-y-half);position:relative;width:100%}.form-grid-col{padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half)}.form-grid .form-actions{gap:1.5rem;justify-content:center;padding:var(--form-grid-gap-y) var(--form-grid-gap-x-half);width:100%}.form-grid .form-actions.is-pinned{border-top-width:1px}.form-horz .form-group,.form-horz .form-row{align-items:flex-start;display:flex;flex-direction:row}.form-horz .form-group{flex-grow:1;flex-wrap:wrap;min-height:32px;min-width:0;padding-left:var(--form-horz-label-width);position:relative}.form-horz .form-group[class*=" w-"],.form-horz .form-group[class^=w-]{flex:none}.form-horz .form-group>*{min-width:0}.form-horz .form-group.no-label{padding-left:0}.form-horz .form-group.no-label>.check-list-inline{padding-left:1rem;padding-right:1rem}.form-horz .form-label{justify-content:flex-end;left:0;padding-left:1rem;padding-right:.5rem;position:absolute;top:0;width:var(--form-horz-label-width)}.form-horz .form-label.required:after{margin-left:0;order:-9999}.form-horz .form-tip{width:100%}.form-horz .form-tip,.form-horz .input-control,.form-horz .input-group{flex:1 1 auto}.form .form-group-wrapper,.form-horz .form-group-wrapper{flex:1 1 auto;min-width:0;width:100%;z-index:1}.form .form-group-wrapper.flex-none,.form-horz .form-group-wrapper.flex-none{flex:none}.form fieldset>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.form fieldset{padding-bottom:1rem;padding-left:1rem}.form-grid fieldset>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.form legend{--tw-border-opacity:1;border-bottom-color:rgba(var(--color-primary-100-rgb),var(--tw-border-opacity));border-bottom-width:1px;display:flex;justify-content:flex-start;margin-left:-1rem;width:100%;width:calc(100% + 1rem)}.form-title{align-items:center;background-color:rgba(var(--color-primary-50-rgb),.5);display:flex;font-weight:700;height:1.75rem;padding-left:.75rem;padding-right:.75rem}:root{--input-control-fix-width-sm:2rem;--input-control-fix-width:4.375rem;--input-control-fix-width-lg:6.75rem}.input-control{--input-control-prefix:8px;--input-control-suffix:8px;position:relative}.input-control-prefix,.input-control-suffix{align-items:center;display:flex;height:100%;left:0;opacity:.5;padding-left:.5rem;padding-right:.5rem;position:absolute;top:0;white-space:nowrap;width:var(--input-control-prefix);z-index:1}.input-control-suffix{justify-content:flex-end;left:auto;right:0;width:var(--input-control-suffix)}.form-control:focus+.input-control-prefix,.form-control:focus+.input-control-suffix{opacity:1}.input-control>.form-control{padding-left:var(--input-control-prefix);padding-right:var(--input-control-suffix)}.input-control>select.form-control{background-position-x:calc(100% - var(--input-control-suffix) - 8px);padding-right:calc(var(--input-control-suffix) + 20px)}.has-prefix{--input-control-prefix:var(--input-control-fix-width)}.has-suffix{--input-control-suffix:var(--input-control-fix-width)}.has-prefix-sm{--input-control-prefix:var(--input-control-fix-width-sm)}.has-suffix-sm{--input-control-suffix:var(--input-control-fix-width-sm)}.has-prefix-lg{--input-control-prefix:var(--input-control-fix-width-lg)}.has-suffix-lg{--input-control-suffix:var(--input-control-fix-width-lg)}.has-prefix-icon{--input-control-prefix:32px}.has-suffix-icon{--input-control-suffix:32px}.input-control.has-prefix-icon{--input-control-prefix:32px}.input-control.has-suffix-icon{--input-control-suffix:32px}.input-control.has-prefix-icon>.input-control-prefix,.input-control.has-suffix-icon>.input-control-suffix{justify-content:center;padding:0}.input-control.size-sm>.form-control,.input-control.size-sm>.input-control-prefix,.input-control.size-sm>.input-control-suffix{font-size:.75rem;line-height:1rem}.input-control.size-lg>.form-control,.input-control.size-lg>.input-control-prefix,.input-control.size-lg>.input-control-suffix{font-size:1rem;line-height:1.5rem}:root{--label-bg:var(--color-gray-50);--label-border-color:var(--color-gray-500);--label-color:var(--color-gray-500);--label-radius:var(--radius)}.label{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--label-border-color);align-items:center;background-color:var(--label-bg);border-radius:var(--label-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--label-color);display:inline-flex;font-size:.75rem;height:1.25rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem;white-space:pre-line}.label.size-lg{font-size:.8125rem;height:1.5rem;line-height:1.25rem;padding-left:.5rem;padding-right:.5rem}.label.size-sm{height:1rem}.label-dot{aspect-ratio:1/1;border-radius:var(--radius-full);height:.5rem;padding-left:0;padding-right:0}.caret,.caret-down,.caret-left,.caret-right,.caret-up{border:var(--caret-size,4px) solid transparent;display:inline-block;height:0;opacity:var(--caret-opacity,.5);width:0}:focus>.caret,:hover>.caret{opacity:inherit}.disabled .caret,.readonly .caret{opacity:var(--caret-opacity,.5)}.caret,.caret-down{border-bottom-width:0;border-top-color:currentColor}.caret-up{border-bottom-color:currentColor;border-top-width:0}.caret-right{border-left-color:currentColor;border-right-width:0}.caret-left{border-left-width:0;border-right-color:currentColor}.listitem{align-items:center;border-radius:var(--radius);display:flex;flex-direction:row;flex-wrap:nowrap;gap:.5rem;padding:.25rem}.listitem.selected{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.listitem.active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.item-actions,.item-avatar,.item-icon,.item-trailing,.item-trailing-icon{flex:none}.item-icon.icon-EMPTY{display:none}.item-subtitle{font-size:.75rem;line-height:1rem;opacity:.8}.item-content,.item-text{flex:1 1 auto;min-width:0}.item-leading,.item-trailing{align-items:center;display:flex;flex:none;gap:.5rem}.item-checkbox{margin-right:-.5rem}.item-content{align-items:center;display:flex;gap:.5rem}.multiline>.item-content{align-items:flex-start;flex-direction:column;gap:.25rem}.list{list-style-type:none;padding-left:0}.list-heading-inner .item-title{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-weight:700}.list.is-nested-sub{padding-left:var(--list-indent)}.is-nested-collapsed{display:none}.nested-toggle-icon{align-items:center;border-radius:var(--radius);display:flex;height:1rem;justify-content:center;margin-right:-.25rem;width:1rem}.magnifier{display:inline-block;height:1em;position:relative;width:1em}.magnifier:after,.magnifier:before{border-radius:var(--radius-full);content:"";display:block;position:absolute}.magnifier:before{border:1px solid;height:.75em;width:.75em}.magnifier:after{--tw-rotate:45deg;background-color:currentColor;height:1px;left:.55em;top:.7em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5em}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.search-box.compact.has-prefix-icon{--input-control-prefix:24px}.search-box.compact.has-suffix-icon{--input-control-suffix:24px}:root{--menu-bg:var(--color-canvas);--menu-active-bg:var(--color-primary-500);--menu-active-color:var(--color-canvas);--menu-selected-bg:var(--color-primary-50);--menu-selected-color:var(--color-primary-500);--menu-icon-opacity:.5;--menu-icon-margin:1.75rem;--menu-min-width:3rem;--menu-heading-color:var(--color-gray-500)}.menu{background:var(--menu-bg);max-width:var(--menu-max-width);min-width:var(--menu-min-width);padding:.5rem}.menu-wrapper{display:flex;flex-direction:column;min-height:0}.menu-wrapper>.menu{flex:1 1 auto;min-height:0;overflow:auto}.menu-item>.item-inner,.menu-item>a{align-items:center;border-radius:var(--radius);color:inherit;cursor:pointer;display:flex;gap:.5rem;justify-content:space-between;overflow:hidden;padding:.25rem .5rem;position:relative;text-overflow:ellipsis;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);white-space:nowrap}.menu-item>.selected{background:var(--menu-selected-bg);color:var(--menu-selected-color)}.menu-item>.active,.menu-item>a.hover,.menu-item>a:hover{background:var(--menu-active-bg);color:var(--menu-active-color)}.menu-item.disabled>a:hover,.menu-item>a.disabled:hover{background-color:inherit;color:inherit}.menu-item>a>.item-title{flex:1 1 auto}.menu>.divider{margin:.5rem .25rem}.menu-heading{align-items:center;color:var(--menu-heading-color);display:flex;font-size:.75rem;font-weight:700;height:2rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}.has-icons>.menu-item>a>.item-icon{align-items:center;display:flex;height:1rem;justify-content:center;opacity:var(--menu-icon-opacity);width:1rem}.menu-nested{--menu-indent:10px}.menu-nested .menu{background-color:transparent;margin-bottom:-.5rem;margin-left:var(--menu-indent);margin-top:-.5rem;padding-right:0}.menu-nested .menu-item>.item-inner{padding-left:0}.menu.compact .menu-item>a{padding-bottom:.125rem;padding-top:.125rem}.menu.compact .menu-heading{height:1.75rem}.search-menu-header{padding:.5rem .5rem .125rem}.search-menu-footer{padding:.125rem .5rem .5rem}.search-menu .item.is-not-match{display:none}.search-menu .item.is-not-match.has-match-child{display:list-item}.search-menu .item.is-not-match.has-match-child>.item-inner{opacity:.5;pointer-events:none}.search-menu.no-toggle-on-search .nested-toggle-icon{pointer-events:none}.search-menu .is-match-keys{font-weight:700;text-decoration-line:underline}.search-menu-no-match-hint{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));display:none;font-size:.75rem;line-height:1rem;padding:.5rem}.no-match-child .search-menu-no-match-hint{display:block}.no-match-child>.menu{display:none}:root{--alert-bg:var(--color-surface)}.alert{align-items:center;background-color:var(--alert-bg);border-radius:var(--radius);display:flex;gap:.75rem;padding:.5rem .75rem}.alert-content{display:flex;flex:1 1 auto;flex-direction:column;gap:1rem}.alert-close{margin-bottom:-.375rem;margin-right:-.5rem;margin-top:-.375rem}.alert-link{color:inherit;font-weight:700}.alert-link:hover{color:inherit;text-decoration-line:underline}.alert-heading{font-weight:700;margin:0}.alert-text{flex:1 1 auto;white-space:pre-line}.alert-actions{align-items:center;display:flex;gap:.5rem}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.messagers{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem;inset:0;justify-content:flex-end;padding:1rem;pointer-events:none;position:fixed;z-index:1900}.messagers-top-left,.messagers-top-right{justify-content:flex-start}.messagers-bottom-left,.messagers-top-left{align-items:flex-start}.messagers-bottom,.messagers-center,.messagers-top{align-items:center}.messagers-top,.messagers-top-left,.messagers-top-right{justify-content:flex-start}.messagers-center{justify-content:center}.messager{--tw-text-opacity:1;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-inverse-rgb),.8);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));pointer-events:auto;transition-duration:.3s}:root{--progress-radius:var(--radius);--progress-striped-size:40px;--progress-bg:var(--color-surface);--progress-bar-color:var(--color-primary-500)}.progress{background:var(--progress-bg);border-radius:var(--progress-radius);display:flex;height:1.25rem}.progress-bar{background:var(--progress-bar-color);height:100%}.progress-striped>.progress-bar{background-image:linear-gradient(45deg,rgba(var(--color-canvas-rgb),.15) 25%,transparent 25%,transparent 50%,rgba(var(--color-canvas-rgb),.15) 50%,rgba(var(--color-canvas-rgb),.15) 75%,transparent 75%,transparent);background-size:var(--progress-striped-size) var(--progress-striped-size)}.progress>.progress-bar:first-child{border-bottom-left-radius:inherit;border-top-left-radius:inherit}.progress>.progress-bar:last-child{border-bottom-right-radius:inherit;border-top-right-radius:inherit}.progress.active .progress-bar{animation:progress-bar-stripes 2s linear infinite}@keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}:root{--scrollbar-size:10px;--scrollbar-opacity:.6;--scrollbar-bg:rgba(var(--color-inverse-rgb),.15);--scrollbar-inset:inset 0 0 0 1px rgba(var(--color-inverse-rgb),.05);--scrollbar-bar-bg:rgba(var(--color-inverse-rgb),.3);--scrollbar-hover-bg:rgba(var(--color-inverse-rgb),.4);--scrollbar-drag-bg:rgba(var(--color-inverse-rgb),.5);--scrollbar-radius:var(--radius-sm);--scrollbar-duration:.7s}::-webkit-scrollbar{height:var(--scrollbar-size);width:var(--scrollbar-size)}::-webkit-scrollbar-track{box-shadow:var(--scrollbar-shadow);-webkit-transition:background-color var(--scrollbar-duration);transition:background-color var(--scrollbar-duration)}::-webkit-scrollbar-track:hover,:hover::-webkit-scrollbar-track{background:var(--scrollbar-bg)}::-webkit-scrollbar-thumb{background:var(--scrollbar-bar-bg);border-radius:var(--scrollbar-radius);min-height:var(--scrollbar-size);-webkit-transition:var(--scrollbar-duration);transition:var(--scrollbar-duration);-webkit-transition-property:background-color;transition-property:background-color}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover-bg)}::-webkit-scrollbar-thumb:active{background:var(--scrollbar-drag-bg)}.scrollbar-thin::-webkit-scrollbar{height:calc(var(--scrollbar-size)/2);width:calc(var(--scrollbar-size)/2)}.scrollbar-hover::-webkit-scrollbar,.scrollbar-hover::-webkit-scrollbar-thumb,.scrollbar-hover::-webkit-scrollbar-track{visibility:hidden}.scrollbar-hover:hover::-webkit-scrollbar,.scrollbar-hover:hover::-webkit-scrollbar-thumb,.scrollbar-hover:hover::-webkit-scrollbar-track{visibility:visible}@font-face{font-family:ZentaoIcon;font-style:normal;font-weight:400;src:url(./icons/ZentaoIcon.eot);src:url(./icons/ZentaoIcon.woff) format("woff"),url(./icons/ZentaoIcon.ttf) format("truetype"),url(./icons/ZentaoIcon.svg#regular) format("svg")}.icon,[class*=" icon-"],[class^=icon-]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-display:block;font-family:ZentaoIcon;font-size:14px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.icon:before{display:inline-block;min-width:14px;text-align:center}.icon-xs:before{font-size:.7em}.icon-sm:before{font-size:.8em}.icon-lg:before{font-size:1.25em;vertical-align:-10%}.icon-2x{font-size:28px}.icon-3x{font-size:42px}.icon-4x{font-size:56px}.icon-5x{font-size:70px}.icon-run{position:relative}.icon-run:before{opacity:.5}.icon-run:after{bottom:0;content:"\ea07";display:block;left:0;position:absolute;right:0;text-align:center;top:0}.icon-guihua:before{content:"\ea02"}.icon-memory:before{content:"\e9fd"}.icon-cpu:before{content:"\e9fe"}.icon-pause-pure:before{content:"\e9ff"}.icon-exclamation-pure:before{content:"\ea00"}.icon-zentao:before{content:"\e901"}.icon-zentao-alt:before{content:"\e900"}.icon-safe:before{content:"\ea06"}.icon-ai:before{content:"\e983"}.icon-kanban:before{content:"\e997"}.icon-college:before{content:"\e9c8"}.icon-home:before,.icon-menu-my:before{content:"\e97a"}.icon-program:before{content:"\e9aa"}.icon-lightbulb-alt:before,.icon-product:before{content:"\e98f"}.icon-project:before,.icon-rocket:before{content:"\e99c"}.icon-run:before{content:"\e9a9"}.icon-run-alt:before{content:"\ea07"}.icon-test:before{content:"\e956"}.icon-devops:before,.icon-infinite:before{content:"\e9a3"}.icon-doc:before,.icon-menu-doc:before{content:"\e99b"}.icon-statistic:before{content:"\e999"}.icon-group:before,.icon-menu-users:before,.icon-persons:before,.icon-team:before{content:"\e97e"}.icon-assets:before,.icon-diamond:before{content:"\e9ae"}.icon-flow:before{content:"\e994"}.icon-backend:before,.icon-cog-outline:before{content:"\ea05"}.icon-help:before{content:"\e968"}.icon-download:before,.icon-import:before{content:"\e904"}.icon-export:before{content:"\e905"}.icon-lightbulb:before{content:"\e91c"}.icon-close:before{content:"\e936"}.icon-check:before{content:"\e5ca"}.icon-minus:before{content:"\e926"}.icon-expand-alt:before{content:"\e6f1"}.icon-collapse-alt:before{content:"\e6f2"}.icon-fullscreen:before{content:"\e96b"}.icon-star-empty:before{content:"\e94a"}.icon-star:before{content:"\e94b"}.icon-exclamation-sign:before{content:"\e930"}.icon-info-sign:before{content:"\e9d5"}.icon-flag:before{content:"\e937"}.icon-check-circle:before{content:"\e92f"}.icon-check-sign:before{content:"\e938"}.icon-chart-pie:before{content:"\e95b"}.icon-history:before{content:"\e95f"}.icon-pencil:before{content:"\e254"}.icon-search:before{content:"\e928"}.icon-restart:before{content:"\e95e"}.icon-cog:before{content:"\e93b"}.icon-chart-line:before{content:"\e95c"}.icon-bar-chart:before,.icon-chart-bar:before{content:"\e95d"}.icon-exchange:before{content:"\e927"}.icon-severity:before{content:"\e973"}.icon-book:before{content:"\f02d"}.icon-treemap-alt:before{content:"\e971"}.icon-severity-solid:before{content:"\e902"}.icon-chat-line:before{content:"\e998"}.icon-stack:before{content:"\e943"}.icon-cube:before{content:"\e967"}.icon-minus-sign:before{content:"\e939"}.icon-bars-sign:before{content:"\e93a"}.icon-chat:before,.icon-message:before{content:"\e940"}.icon-more:before{content:"\e744"}.icon-certificate:before{content:"\f0a3"}.icon-bell:before{content:"\e7f5"}.icon-columns:before{content:"\f0db"}.icon-envelope-o:before{content:"\e92a"}.icon-unfold-all:before{content:"\e931"}.icon-fold-all:before{content:"\e932"}.icon-bars:before{content:"\e948"}.icon-cards-view:before{content:"\e949"}.icon-ellipsis-v:before{content:"\e5d4"}.icon-spinner-indicator:before{content:"\e982"}.icon-up-circle:before{content:"\e92b"}.icon-right-circle:before{content:"\e92c"}.icon-down-circle:before{content:"\e92d"}.icon-left-circle:before{content:"\e92e"}.icon-angle-double-right:before{content:"\f101"}.icon-angle-down:before{content:"\e313"}.icon-angle-left:before{content:"\e314"}.icon-angle-right:before{content:"\e315"}.icon-angle-top:before{content:"\e316"}.icon-first-page:before{content:"\e5dc"}.icon-last-page:before{content:"\e5dd"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-arrow-up:before{content:"\e923"}.icon-arrow-down:before{content:"\e924"}.icon-arrow-left:before{content:"\e952"}.icon-arrow-right:before{content:"\e93e"}.icon-chevron-left:before{content:"\e934"}.icon-chevron-right:before{content:"\e935"}.icon-chevron-double-up:before{content:"\e959"}.icon-chevron-double-down:before{content:"\e95a"}.icon-folder-account:before{content:"\e942"}.icon-folder-move:before{content:"\e960"}.icon-folder-plus:before{content:"\e961"}.icon-folder-upload:before{content:"\e962"}.icon-folder-star:before{content:"\e963"}.icon-folder-edit:before{content:"\e964"}.icon-folder-download:before{content:"\e965"}.icon-folder-outline:before{content:"\e966"}.icon-folder:before{content:"\e944"}.icon-folder-o:before{content:"\e945"}.icon-folder-open-o:before{content:"\e946"}.icon-folder-open:before{content:"\e947"}.icon-color:before{content:"\e93c"}.icon-paper-clip:before{content:"\e93d"}.icon-text:before{content:"\e929"}.icon-share:before{content:"\f064"}.icon-format-list-bulleted:before{content:"\e9a8"}.icon-format-bold:before{content:"\e953"}.icon-format-header-pound:before{content:"\e954"}.icon-format-italic:before{content:"\e955"}.icon-format-list-numbers:before{content:"\e969"}.icon-format-quote-close:before{content:"\e96a"}.icon-image:before{content:"\e96c"}.icon-table-large:before{content:"\e96d"}.icon-productplan:before{content:"\e9fc"}.icon-aiux:before{content:"\e99e"}.icon-qc:before{content:"\e986"}.icon-qc-q:before{content:"\e985"}.icon-qc-c:before{content:"\e987"}.icon-sonarqube:before{content:"\e9ba"}.icon-market:before{content:"\ea01"}.icon-ztool:before{content:"\e9c1"}.icon-contacts:before{content:"\e9c3"}.icon-chats:before{content:"\e9c4"}.icon-ops:before{content:"\e903"}.icon-menu-backend:before{content:"\e993"}.icon-feedback:before{content:"\e991"}.icon-oa:before{content:"\e9a1"}.icon-more-circle:before{content:"\e988"}.icon-controls:before{content:"\e995"}.icon-account:before{content:"\e992"}.icon-about:before,.icon-info:before{content:"\e996"}.icon-exclamation:before{content:"\e9fa"}.icon-exit:before{content:"\e99a"}.icon-theme:before{content:"\e9a0"}.icon-globe:before,.icon-lang:before{content:"\f0ac"}.icon-template:before{content:"\e9fb"}.icon-seal:before{content:"\e9f8"}.icon-menu-arrow-left:before{content:"\e9f0"}.icon-menu-arrow-right:before{content:"\e9f1"}.icon-add-directory:before{content:"\e9ef"}.icon-design:before{content:"\e9ec"}.icon-download-alt:before{content:"\e9ea"}.icon-blame:before{content:"\e9e0"}.icon-draft-edit:before{content:"\e9dc"}.icon-sub-review-user:before{content:"\e9db"}.icon-sub-review:before{content:"\e9df"}.icon-ztf:before{content:"\e9dd"}.icon-save:before{content:"\e9d8"}.icon-list-box:before{content:"\e9b4"}.icon-usecase:before{content:"\e99d"}.icon-code:before{content:"\e990"}.icon-summary:before{content:"\e9ad"}.icon-more-alt:before{content:"\e9a7"}.icon-customer:before{content:"\e9d9"}.icon-or:before{content:"\ea0b"}.icon-manager:before{content:"\ea0c"}.icon-target:before{content:"\ea0a"}.icon-ipd:before{content:"\e9f9"}.icon-wiki-lib:before{content:"\e9f5"}.icon-annex-lib:before{content:"\e9f6"}.icon-interface-lib:before{content:"\e9f7"}.icon-has-authority-pack:before{content:"\e9f3"}.icon-without-authority-pack:before{content:"\e9f4"}.icon-data-structure:before{content:"\e9f2"}.icon-waterfallplus:before{content:"\e9ed"}.icon-agileplus:before{content:"\e9ee"}.icon-horn:before{content:"\e9eb"}.icon-resume:before{content:"\e9e9"}.icon-mirror:before{content:"\e9e6"}.icon-remote:before{content:"\e9e7"}.icon-moon:before{content:"\e9e8"}.icon-ticket:before{content:"\e9e1"}.icon-gantt-alt:before{content:"\e9e2"}.icon-tree:before{content:"\e9c9"}.icon-list:before{content:"\e9cb"}.icon-gantt:before{content:"\e9cc"}.icon-group-view:before{content:"\e9cd"}.icon-inherit-space:before{content:"\e9c2"}.icon-card-archive:before{content:"\e9b8"}.icon-col-archive:before{content:"\e9b9"}.icon-col-add-right:before{content:"\e9bb"}.icon-col-add-left:before{content:"\e9bc"}.icon-col-split:before{content:"\e9bd"}.icon-waterfall:before{content:"\e9a4"}.icon-manual:before{content:"\e98d"}.icon-lane:before{content:"\e9b1"}.icon-unpinned:before{content:"\ea08"}.icon-pinned:before{content:"\ea09"}.icon-support-ticket:before{content:"\ea04"}.icon-snap-house:before{content:"\e9e3"}.icon-wrench:before{content:"\e9e4"}.icon-desktop:before{content:"\e9e5"}.icon-back-circle:before{content:"\e9da"}.icon-back:before{content:"\e9d3"}.icon-shield:before{content:"\e9ca"}.icon-meh:before{content:"\e9ce"}.icon-frown:before{content:"\e9cf"}.icon-smile:before{content:"\e9d0"}.icon-unlock-solid:before{content:"\e9d1"}.icon-lock-solid:before{content:"\e9d2"}.icon-ver:before{content:"\e9c6"}.icon-publish:before,.icon-send:before{content:"\e9c7"}.icon-tag:before{content:"\e9be"}.icon-tag-lock:before{content:"\e9bf"}.icon-code-fork:before{content:"\f126"}.icon-branch-lock:before{content:"\e9c0"}.icon-groups:before{content:"\e9af"}.icon-thumbs-up:before{content:"\f087"}.icon-thumbs-down:before{content:"\f088"}.icon-thumbs-up-solid:before{content:"\e9d6"}.icon-thumbs-down-solid:before{content:"\e9d7"}.icon-hash:before,.icon-version:before{content:"\e9ab"}.icon-p-square:before{content:"\e97b"}.icon-video-play:before{content:"\e97f"}.icon-plus-solid-circle:before{content:"\e974"}.icon-minuse-solid-circle:before{content:"\e9b6"}.icon-s:before{content:"\e975"}.icon-c:before{content:"\e976"}.icon-t:before{content:"\e977"}.icon-guide:before{content:"\e978"}.icon-todo:before{content:"\e979"}.icon-plus:before{content:"\e925"}.icon-side-left:before{content:"\e9b3"}.icon-side-right:before{content:"\e9b2"}.icon-fullscreen-exit:before{content:"\e972"}.icon-alert:before{content:"\e99f"}.icon-undo:before{content:"\e93f"}.icon-redo:before{content:"\e9d4"}.icon-swap:before{content:"\e9b0"}.icon-chat-solid:before{content:"\e9b5"}.icon-clock:before{content:"\e97c"}.icon-cost:before{content:"\e97d"}.icon-pencil-alt:before{content:"\e984"}.icon-size-height:before{content:"\e9c5"}.icon-upload-file:before{content:"\ea03"}.icon-file-log:before{content:"\e9de"}.icon-rich-text:before{content:"\e913"}.icon-markdown:before{content:"\e916"}.icon-excel:before{content:"\e933"}.icon-text-link:before{content:"\e94d"}.icon-ppt:before{content:"\e957"}.icon-word:before{content:"\e958"}.icon-doc-lib:before{content:"\e96f"}.icon-file-empty:before,.icon-file:before{content:"\f016"}.icon-file-text:before{content:"\f0f6"}.icon-file-alt:before{content:"\f15b"}.icon-file-text-alt:before{content:"\f15c"}.icon-file-pdf:before{content:"\f1c1"}.icon-file-word:before{content:"\f1c2"}.icon-file-excel:before{content:"\f1c3"}.icon-file-powerpoint:before{content:"\f1c4"}.icon-file-image:before{content:"\f1c5"}.icon-file-archive:before{content:"\f1c6"}.icon-file-audio:before{content:"\f1c7"}.icon-file-video:before{content:"\f1c8"}.icon-file-code:before{content:"\f1c9"}.icon-menu-collapse:before{content:"\e980"}.icon-menu-expand:before{content:"\e981"}.icon-estimate:before{content:"\e9ac"}.icon-sprint:before{content:"\e9a2"}.icon-shield-check:before{content:"\e9a5"}.icon-ok:before{content:"\e9a6"}.icon-printer:before{content:"\e906"}.icon-bullhorn:before{content:"\e910"}.icon-person:before{content:"\e941"}.icon-fields:before{content:"\e989"}.icon-trigger:before{content:"\e98a"}.icon-layout:before{content:"\e98b"}.icon-audit:before{content:"\e98c"}.icon-ban-circle:before,.icon-cancel:before{content:"\e951"}.icon-eye:before{content:"\e94e"}.icon-eye-off:before{content:"\e96e"}.icon-unlock:before{content:"\e94f"}.icon-lock:before,.icon-private:before{content:"\e950"}.icon-move:before{content:"\e94c"}.icon-hand-right:before{content:"\e907"}.icon-checked:before{content:"\e908"}.icon-off:before{content:"\e909"}.icon-play:before,.icon-start:before{content:"\e90a"}.icon-time:before{content:"\e90b"}.icon-edit:before{content:"\e90c"}.icon-trash:before{content:"\e90d"}.icon-link:before{content:"\e90e"}.icon-unlink:before{content:"\e90f"}.icon-bug:before{content:"\e911"}.icon-list-alt:before{content:"\e912"}.icon-alter:before,.icon-change:before{content:"\e970"}.icon-glasses:before,.icon-review:before{content:"\e914"}.icon-sitemap:before,.icon-testcase:before{content:"\e915"}.icon-pluses:before{content:"\e917"}.icon-report-list:before{content:"\e918"}.icon-active:before,.icon-magic:before{content:"\e919"}.icon-treemap:before{content:"\e91a"}.icon-confirm:before{content:"\e91b"}.icon-split:before{content:"\e98e"}.icon-calendar:before,.icon-delay:before{content:"\e91d"}.icon-pause:before{content:"\e91e"}.icon-ban:before{content:"\e91f"}.icon-plus-bold:before{content:"\e920"}.icon-copy:before{content:"\e921"}.icon-refresh:before{content:"\e922"}.icon-diff:before{content:"\e9b7"}.status-active,.status-asked,.status-normal,.status-unconfirmed,.status-wait{color:#313c52}.status-active.status-issue,.status-checking,.status-commenting,.status-confirmed,.status-doing{color:#ff6f42}.status-blocked,.status-hangup,.status-pause,.status-suspended{color:#b89664}.status-clarify,.status-draft{color:#8166ee}.status-noreview,.status-reviewing,.status-wait.status-testcase{color:#18a6fd}.status-active.status-risk,.status-changed,.status-changing,.status-fail{color:#fb2b2b}.status-checked,.status-done,.status-pass,.status-replied,.status-resolved,.status-success{color:#0dbb7d}.status-cancel,.status-canceled,.status-investigate{color:#838a9d}.status-canceled,.status-closed,.status-testtask.status-done{color:#9ea3b0}.pri,[class*=" pri-"],[class^=pri-]{--tw-text-opacity:1;border-color:currentColor;border-radius:var(--radius-full);border-width:1px;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity));display:inline-block;font-size:.75rem;height:1rem;line-height:1rem;line-height:14px;max-width:54px;min-width:16px;overflow:hidden;padding-left:.125rem;padding-right:.125rem;text-align:center;white-space:nowrap}.pri-1{color:rgb(255 73 18/var(--tw-text-opacity))}.pri-1,.pri-2{--tw-text-opacity:1}.pri-2{color:rgba(var(--color-warning-600-rgb),var(--tw-text-opacity))}.pri-3{color:rgb(59 130 246/var(--tw-text-opacity))}.pri-3,.pri-4{--tw-text-opacity:1}.pri-4{color:rgb(149 211 224/var(--tw-text-opacity))}.severity{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity));display:inline-block;font-size:.75rem;height:1rem;line-height:1rem;line-height:14px;max-width:54px;min-width:16px;overflow:hidden;padding-left:.125rem;padding-right:.125rem;position:relative;text-align:center;white-space:nowrap}.severity:before{--tw-content:attr(data-severity);background-color:currentColor;background-repeat:no-repeat;content:var(--tw-content);height:100%;left:0;-webkit-mask:url('data:image/svg+xml;charset=utf-8,');mask:url('data:image/svg+xml;charset=utf-8,');-webkit-mask-size:100% 100%;mask-size:100% 100%;position:absolute;top:0;width:100%;z-index:0}.severity:after,.severity:before{display:inline-block}.severity:after{--tw-scale-x:.75;--tw-scale-y:.75;content:attr(data-severity);line-height:20px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.severity[data-severity="1"]{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.severity[data-severity="2"]{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity))}.severity[data-severity="3"]{--tw-text-opacity:1;color:rgb(250 174 26/var(--tw-text-opacity))}.severity[data-severity="4"]{--tw-text-opacity:1;color:rgb(184 150 100/var(--tw-text-opacity))}.severity[data-severity="5"]{--tw-text-opacity:1;color:rgb(158 163 176/var(--tw-text-opacity))}.severity-label{background-color:transparent}.severity-label:after,.severity-label:before{--tw-content:none;content:var(--tw-content)}.risk-high{color:rgb(220 38 38/var(--tw-text-opacity))}.risk-high,.risk-middle{--tw-text-opacity:1}.risk-middle{color:rgb(234 179 8/var(--tw-text-opacity))}.nav-feature{--nav-active-bg:rgba(var(--color-primary-800-rgb),.07)}.nav-feature .nav-checkbox>.checkbox,.nav-feature .nav-checkbox>.checkbox-primary,.nav-feature .nav-item>a{align-items:center;border-radius:var(--radius);height:2rem;padding-left:.625rem;padding-right:.625rem}.nav-feature .nav-item>a>.icon{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.sortable-list .listitem{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));cursor:move;padding-left:.5rem;padding-right:.5rem}.sortable-list .sortable-ghost>.listitem{--tw-bg-opacity:1;background-color:rgba(var(--color-warning-50-rgb),var(--tw-bg-opacity))}:root{--avatar-radius:12.5%;--avatar-bg:var(--color-surface)}.avatar{align-items:center;aspect-ratio:1/1;background:var(--avatar-bg);border-radius:var(--avatar-radius);display:inline-flex;justify-content:center;overflow:hidden;width:2rem}.avatar>img{height:100%;margin:0;-o-object-fit:cover;object-fit:cover;width:100%}.avatar.size-xs{width:1.25rem}.avatar.size-sm,.avatar.size-xs{font-size:.75rem;line-height:1rem}.avatar.size-sm{width:1.5rem}.avatar.size-lg{font-size:1.5rem;line-height:2rem;width:3rem}.avatar.size-xl{font-size:2.25rem;line-height:2.5rem;width:5rem}.avatar-group{display:flex;gap:.625rem}.avatar-group>.avatar{box-shadow:0 0 0 1px var(--color-canvas)}.avatar-group>*+*{margin-left:-1rem}.avatar-group.size-xs>*+*{margin-left:-.75rem}.avatar-group.size-sm>*+*{margin-left:-.875rem}.avatar-group.size-lg>*+*{margin-left:-1.25rem}.avatar-group.size-xl>*+*{margin-left:-1.5rem}.btn-group{display:flex;gap:1px}.btn-group>.btn.active{z-index:1}.btn-group>.btn:focus-within,.btn-group>.btn:hover{z-index:2}.btn-group>.btn.disabled,.btn-group>.btn:disabled{z-index:-1}.btn-group>.btn:not(:first-child){border-bottom-left-radius:var(--radius-none);border-left-color:rgba(var(--color-canvas-rgb),.2);border-left-width:1px;border-top-left-radius:var(--radius-none)}.btn-group>.btn:not(:first-child):before{left:-1px}.btn-group>.btn:not(:last-child){border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none)}.color-picker-heading{align-items:center;font-weight:700;justify-content:space-between;margin-bottom:-.25rem;padding:.5rem}.color-picker-heading,.color-picker-row{display:flex;flex-direction:row}.color-picker-row{flex-wrap:wrap;gap:.5rem;padding:.75rem}.color-picker-item{--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);align-items:center;border-radius:var(--radius-full);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));display:flex;height:1.25rem;justify-content:center;padding-left:.125rem;padding-right:.125rem;width:1.25rem}.pick-container{left:0;pointer-events:none;position:absolute;top:0;z-index:1600}.pick-pop{display:flex;flex-direction:column;opacity:0;pointer-events:auto;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);z-index:1200}.pick-pop.in{opacity:1}.date-picker-menu{--menu-bg:none}.date-picker-menu .mini-calendar{margin-top:-.75rem}.date-pick-menu-month,.date-pick-menu-years{display:flex;flex-direction:row;flex-wrap:wrap;gap:1px;max-height:237px;padding-bottom:.5rem;padding-left:.5rem;padding-right:.5rem}.date-pick-menu-years>.btn{width:2.5rem}.date-pick-menu-years>.btn.is-current{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.date-pick-menu-month>.btn.active,.date-pick-menu-years>.btn.active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.date-pick-menu-month>.btn{width:3rem}.date-picker-menu-footer{border-top-width:1px;display:flex;flex-direction:row;padding:.25rem}.date-picker-menu-footer>.toolbar{flex:1 1 auto;justify-content:center}.date-picker-menu>.menu{border-right-width:1px}.date-picker-menu .menu-item{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.time-picker-menu{max-height:inherit}.time-picker-menu .menu-item>a{justify-content:center}.datetime-picker-menu{max-height:inherit}.mini-calendar{padding:.5rem}.mini-calendar>.row>.col{align-items:center;justify-content:center;width:14.2857%}.mini-calendar-day{height:2rem}.mini-calendar-day.disabled{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-200-rgb),var(--tw-bg-opacity));opacity:.5;pointer-events:none}.mini-calendar-day>.btn{width:2rem}.mini-calendar-day.is-weekend>.btn{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.mini-calendar-day.active>.btn,.mini-calendar-day.is-today>.btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.mini-calendar-day.selected>.btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.mini-calendar-day.is-out-month{opacity:.5}.i-time{border-color:currentColor;border-radius:50%;border-width:.08em;display:inline-block;height:1em;position:relative;width:1em}.i-time:after{--tw-content:"";border-color:currentColor;border-width:0 0 .08em .08em;content:var(--tw-content);height:.385em;left:.3846em;position:absolute;top:.08em;width:.385em}.chevron-down,.chevron-left,.chevron-right,.chevron-up{align-items:center;display:inline-flex;height:1em;justify-content:center;position:relative;width:1em}.chevron-down:before,.chevron-left:before,.chevron-right:before,.chevron-up:before{--tw-translate-y:-0.125rem;--tw-rotate:45deg;--tw-content:"";border-color:currentColor;border-width:0 1px 1px 0;content:var(--tw-content);display:block;height:.6923077em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform-origin:center;width:.6923077em}.chevron-left:before{--tw-translate-y:0px;--tw-translate-x:0.125rem;--tw-rotate:135deg}.chevron-left:before,.chevron-right:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-right:before{--tw-translate-y:0px;--tw-translate-x:-0.125rem;--tw-rotate:-45deg}.chevron-up:before{--tw-translate-y:0.125rem;--tw-rotate:225deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.i-calendar{border-radius:2px;display:inline-block;height:.79em;margin-top:.16em;position:relative;width:1em}.i-calendar,.i-calendar:after,.i-calendar:before{border-color:currentColor;border-width:.08em}.i-calendar:after,.i-calendar:before{--tw-content:"";content:var(--tw-content);position:absolute}.i-calendar:before{border-bottom-width:0;left:.15em;top:.307em;width:.6em}.i-calendar:after{border-bottom-width:0;border-top-width:0;height:.3077em;left:.17em;top:-.154em;width:.538em}:root{--modal-radius:var(--radius-lg);--modal-bg:rgba(var(--color-inverse-rgb),.4);--modal-sm:37.5rem;--modal-base:50rem;--modal-lg:75rem;--modal-xl:90rem}.modal{align-items:center;background-color:var(--modal-bg);display:none;inset:0;justify-content:center;overflow:hidden;position:fixed;z-index:1500}.modal.load-indicator:before{background-color:transparent;transition-property:none}.modal.loading:after{--tw-text-opacity:1;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.modal.loading .modal-dialog{opacity:0!important}.modal.show{display:flex}.modal-no-backdrop{background-color:transparent;pointer-events:none}.modal-hide{opacity:0!important}.modal-dialog{--tw-bg-opacity:0.9;--tw-shadow:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--tw-shadow-colored:0 10px 50px -10px var(--tw-shadow-color),0 8px 20px -10px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--modal-radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);pointer-events:auto;position:relative;width:var(--modal-base)}.modal-content,.modal-dialog{max-height:100vh}.modal-content{display:flex;flex-direction:column;height:100%}.loading>.modal-dialog>.modal-content{opacity:0;visibility:hidden}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.modal-header{align-items:center;display:flex;flex:none;flex-wrap:nowrap;gap:1rem;padding:1rem 1.25rem;position:relative}.modal-title{flex:1 1 auto;font-size:1rem;font-weight:700;line-height:1.5rem}.modal-actions{position:absolute;right:.75rem;top:.75rem;z-index:10}.modal-body{flex:1 1 auto;overflow:auto;padding:1rem 1.25rem}.modal-footer{align-items:center;display:flex;flex:none;gap:.75rem;padding:1.25rem}.modal-dialog.size-full,.modal-dialog[data-size=full]{height:100vh;width:100vw}.modal-dialog.size-sm,.modal-dialog[data-size=sm]{width:var(--modal-sm)}.modal-dialog.size-lg,.modal-dialog[data-size=lg]{width:var(--modal-lg)}.modal-dialog.size-xl,.modal-dialog[data-size=xl]{width:var(--modal-xl)}.modal-iframe{flex:1 1 auto;width:100%}.modal-trans{opacity:0;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.modal-trans.in{opacity:1}.modal-trans>.modal-dialog{--tw-scale-x:.95;--tw-scale-y:.95;opacity:0;transition-duration:.3s;transition-property:transform,opacity}.modal-trans.in>.modal-dialog,.modal-trans>.modal-dialog{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.modal-trans.in>.modal-dialog{--tw-scale-x:1;--tw-scale-y:1;opacity:1}.modal-alert .modal-footer{justify-content:flex-end}.modal-alert .modal-header{margin-bottom:-1rem}.modal-alert .modal-body{white-space:pre-line}.modal-alert .modal-actions+.modal-body{padding-right:3rem}.modal-alert .modal-header+.modal-actions+.modal-body{padding-right:1.25rem}.file-selector{gap:.5rem;width:100%}.file-selector,.file-selector-box{display:flex;flex-direction:column}.file-selector-box{--tw-border-opacity:1;--tw-ring-color:transparent;--state-color:rgba(var(--color-primary-500-rgb),.05);background-color:rgba(var(--color-primary-50-rgb),.3);border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-style:dashed;border-width:1px;gap:0;height:auto;justify-content:center;padding:.5rem .75rem;position:relative}.file-selector-box .text{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.is-dragging .file-selector-box{border-style:solid}.file-selector-btn{align-items:center;display:flex;gap:.5rem;position:relative}.is-dragging .file-selector-btn{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.file-selector-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;inset:0;opacity:.1;position:absolute}.file-selector-tip{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.file-selector.is-mode-button{flex-direction:column-reverse}.file-selector-list.is-empty{display:none}.file-selector-item .item-avatar{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.file-selector-item .item-subtitle{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.file-selector-item .item-content{flex:none;margin-right:.25rem;max-width:100%}.file-selector-item>.listitem:hover{background-color:rgba(var(--color-gray-500-rgb),.05)}.file-selector-item.is-renaming .item-avatar+.item-content{max-width:calc(100% - 32px)}.file-selector-rename-text{max-width:100%;min-width:100px;position:relative}.file-selector-rename-text>div{overflow:hidden;pointer-events:none;visibility:hidden;white-space:nowrap}.file-selector-rename-input{inset:0;position:absolute}.file-selector-grid{--tw-bg-opacity:1;align-items:flex-start;background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity));border-color:transparent;border-radius:var(--radius);border-width:1px;display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--file-selector-grid-gap);padding:.5rem}.file-selector-grid-item{height:var(--file-selector-grid-height)}.file-selector-grid-btn,.file-selector-grid-item{width:var(--file-selector-grid-width)}.file-selector-grid-btn{--tw-border-opacity:1;--tw-ring-color:transparent;--state-color:rgba(var(--color-primary-500-rgb),.05);aspect-ratio:1/1;background-color:rgba(var(--color-primary-50-rgb),.3);border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-style:dashed;border-width:1px;display:flex;flex-direction:column;gap:0;height:auto;justify-content:center;padding:.5rem}.file-selector-grid-btn .text{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.file-selector-grid-item .listitem{flex-direction:column;height:100%;padding:0;position:relative;width:100%}.file-selector-grid-item .item-avatar{--tw-text-opacity:1;border-radius:var(--radius);border-width:1px;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));width:100%}.file-selector-grid-item .item-avatar.has-icon>.icon{font-size:calc(var(--file-selector-grid-width)/2)}.file-selector-grid-item .item-content,.file-selector-grid-item .toolbar{aspect-ratio:1/1;left:0;position:absolute;right:0;top:0;width:100%}.file-selector-grid-item .item-title{bottom:-1.25rem;font-size:.75rem;left:0;line-height:1rem;overflow:hidden;position:absolute;right:1.5rem;white-space:nowrap}.file-selector-grid-item .item-subtitle{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);bottom:.25rem;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));font-size:.75rem;left:.25rem;line-height:1rem;opacity:0;padding-left:.25rem;padding-right:.25rem;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.file-selector-grid-item:hover .item-subtitle{opacity:1}.file-selector-grid-item .toolbar .btn[data-remove-file]{--tw-text-opacity:1;background-color:rgba(var(--color-inverse-rgb),.5);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));padding:.375rem;position:absolute;right:1px;top:1px}.file-selector-grid-item .toolbar .btn[data-rename-file]{bottom:-1.5rem;padding:0;position:absolute;right:0}.file-selector-grid .file-selector-rename{bottom:0;height:1.5rem;position:absolute;top:auto}.file-selector-grid .file-selector-rename-text{width:100%}.is-dragging .file-selector-grid{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-width:1px}:root{--nav-radius:var(--radius);--nav-active-color:var(--color-primary-500);--nav-active-bg:var(--color-inherit);--nav-heading-color:var(--color-gray-500)}.nav{list-style-type:none;padding-left:0}.nav,.nav-item{align-items:center;display:flex;position:relative}.nav-item{gap:.75rem}.nav-item>a{align-items:center;color:inherit;cursor:pointer;display:flex;gap:.25rem;height:2rem;justify-content:center;padding-left:1rem;padding-right:1rem}.nav-item>.active{background:var(--nav-active-bg);color:var(--nav-active-color);font-weight:700}.nav-item>.disabled{opacity:1}.nav-item>.disabled>*{opacity:var(--disabled-opacity)}.nav-divider,.nav>.divider{margin:.5rem}.nav-heading{align-items:center;color:var(--nav-heading-color);display:flex;font-weight:700;gap:.25rem;height:2rem;justify-content:center;padding-left:1rem;padding-right:1rem}.nav-space{flex:1 1 auto;width:1rem}.nav-primary>.nav-item{position:relative}.nav-primary>.nav-item:hover{z-index:10}.nav-primary>.nav-item+.nav-item{margin-left:-1px}.nav-primary>.nav-item>a{border-radius:var(--radius-none);border-width:1px}.nav-primary>.nav-item:first-child>a,.nav-primary>.nav-item:has(.nav-heading)+.nav-item>a{border-bottom-left-radius:var(--nav-radius);border-top-left-radius:var(--nav-radius)}.nav-primary>.nav-item:last-child>a{border-bottom-right-radius:var(--nav-radius);border-top-right-radius:var(--nav-radius)}.nav-primary>.nav-item>.active{--tw-text-opacity:1;background:var(--nav-active-color);border-color:var(--nav-active-color);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.nav-primary>.nav-divider{display:none}.nav-secondary>.nav-item>a{border-radius:var(--radius-none);position:relative}.nav-secondary>.nav-item>a:after{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:-2px;content:var(--tw-content);display:block;height:2px;left:0;position:absolute;right:0}.nav-secondary>.nav-item>.active:after{background-color:currentColor}.nav-secondary>.nav-divider{margin:0 0 0 -1px}.nav-tabs>.nav-item>a{border-bottom-left-radius:var(--radius-none);border-bottom-right-radius:var(--radius-none);position:relative}.nav-tabs>.nav-item>a:after{--tw-border-opacity:1;--tw-content:"";border-color:transparent;border-bottom-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-top-left-radius:inherit;border-top-right-radius:inherit;border-width:1px;content:var(--tw-content);display:block;inset:-1px;pointer-events:none;position:absolute}.nav-tabs>.nav-item>.active:after{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-bottom-color:transparent}.nav-tabs>.nav-divider{margin:0 0 0 -1px}.nav-pills>.nav-item>a{border-radius:var(--radius-full)}.nav-pills>.nav-item>.active{--tw-text-opacity:1;background:var(--nav-active-color);border-color:var(--nav-active-color);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.nav-stacked{flex-direction:column}.nav-stacked>.nav-item{width:100%}.nav-stacked>.nav-heading,.nav-stacked>.nav-item>a{justify-content:flex-start;width:100%}.nav-stacked>.nav-divider{height:1px;margin:.5rem 0;width:100%}.nav-primary.nav-stacked>.nav-item>a{height:2.5rem}.nav-primary.nav-stacked>.nav-item+.nav-item{margin-left:0;margin-top:-1px}.nav-primary.nav-stacked>.nav-item:first-child>a{border-bottom-left-radius:0;border-top-left-radius:var(--nav-radius);border-top-right-radius:var(--nav-radius)}.nav-primary.nav-stacked>.nav-item:last-child>a{border-bottom-left-radius:var(--nav-radius);border-bottom-right-radius:var(--nav-radius);border-top-right-radius:0}.nav-secondary.nav-stacked>.nav-item>a:after{--tw-bg-opacity:1;background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:0;height:100%;left:auto;right:0;top:0;width:2px}.nav-secondary.nav-stacked>.nav-item>.active:after{background-color:currentColor}.nav-secondary.nav-stacked>.nav-divider{margin:0}.nav-tabs.nav-stacked>.nav-item>a{border-bottom-left-radius:var(--nav-radius);border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none);position:relative}.nav-tabs.nav-stacked>.nav-item>a:after{--tw-border-opacity:1;border-bottom-color:transparent;border-bottom-left-radius:inherit;border-right-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-top-left-radius:inherit}.nav-tabs.nav-stacked>.nav-item>a.active:after{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-right-color:transparent}.nav-tabs.nav-stacked>.nav-divider{margin:0}.nav-pills.nav-stacked>.nav-item+.nav-item{margin-top:.25rem}.nav-justified>.nav-item:not(.flex-none,.nav-divider){flex:1 1 auto}.nav-justified>.nav-item>a{width:100%}.arrow,.arrow:before{background:inherit;height:calc(var(--arrow-size)*1.4142);position:absolute;width:calc(var(--arrow-size)*1.4142)}.arrow{--arrow-size:5px;visibility:hidden}.arrow:before{--tw-rotate:45deg;border:inherit;content:"";transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));visibility:visible}.arrow-top,.arrow-up{border-bottom:inherit;border-right:inherit;border-width:1px 0 0 1px;top:calc(1px - var(--arrow-size))}.white>.arrow-top,.white>.arrow-up{top:calc(0px - var(--arrow-size))}.arrow-bottom,.arrow-down{border-left:inherit;border-top:inherit;border-width:0 1px 1px 0;bottom:calc(1px - var(--arrow-size))}.white>.arrow-bottom,.white>.arrow-down{bottom:calc(0px - var(--arrow-size))}.arrow-left{border-right:inherit;border-top:inherit;border-width:0 0 1px 1px;left:calc(1px - var(--arrow-size))}.white>.arrow-left{left:calc(0px - var(--arrow-size))}.arrow-right{border-bottom:inherit;border-left:inherit;border-width:1px 1px 0 0;right:calc(1px - var(--arrow-size))}.white>.arrow-right{right:calc(0px - var(--arrow-size))}.popover{display:none;position:absolute;width:-moz-max-content;width:max-content}.popover.show{display:block}.popover-heading{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-top-left-radius:inherit;border-top-right-radius:inherit;display:flex;gap:1rem;height:2.5rem;justify-content:space-between;padding-left:.75rem;padding-right:.5rem}.popover-title{flex:1 1 auto;font-weight:700}.popover-content{padding:.75rem}.popover-arrow.arrow-top,.popover-arrow.arrow-up{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.popover>.btn-close{position:absolute;right:.5rem;top:.625rem}.btn-close+.popover-content{padding-right:3rem}.btn.with-popover-show{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.with-popover-show[data-pop-placement=top]>.caret{--tw-rotate:180deg}.with-popover-show[data-pop-placement=left]>.caret,.with-popover-show[data-pop-placement=top]>.caret{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.with-popover-show[data-pop-placement=left]>.caret{--tw-rotate:90deg}.with-popover-show[data-pop-placement=right]>.caret{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pager{align-items:center;display:flex;gap:.25rem;white-space:nowrap}.menu.pager-size-menu{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center}.menu.pager-size-menu>.menu-item>a{margin:.125rem}.pager .pager-goto-group>.form-control{width:3rem}.pager .pager-goto-group>.input-group-addon{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-300-rgb),var(--tw-border-opacity));border-width:1px}.pager>.pager-nav.active{--tw-text-opacity:1;box-shadow:0 0 0 1px var(--color-primary-500);color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.panel{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);overflow:hidden}.panel-heading{background-color:var(--panel-heading-bg);flex-wrap:nowrap;gap:1rem;justify-content:space-between;padding:.5rem 1rem}.panel-heading,.panel-title{align-items:center;display:flex}.panel-title{font-weight:700;gap:.5rem;margin:0}.panel-actions{align-items:center;display:flex;margin-right:-.5rem}.panel-body{padding:.75rem 1rem}.panel-footer{align-items:center;background-color:var(--panel-footer-bg);display:flex;gap:.5rem;padding:.5rem 1rem}.size-sm .panel-body,.size-sm .panel-footer,.size-sm .panel-heading{padding:.375rem .75rem}.size-lg .panel-body,.size-lg .panel-footer,.size-lg .panel-heading{padding:1rem 1.25rem}.picker{position:relative}.picker-select{align-items:center;gap:.25rem;justify-content:space-between}.picker-select,.picker-select.form-control{display:flex}.picker-select-placeholder{--tw-text-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-text-opacity));flex:1 1 auto}.picker-select-multi .picker-select-placeholder{padding-left:.25rem;padding-right:.25rem}.picker-single-selection{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap}.picker-deselect-btn{border-radius:var(--radius-full);padding:.25rem}.picker-deselect-btn:not(:hover){opacity:.7}.picker-select-multi.form-control{height:auto;min-height:32px;padding-left:.25rem}.picker-multi-selections{display:flex;flex-wrap:wrap;gap:.25rem;min-width:0}.picker-multi-selection{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);border-width:1px;display:flex;max-width:100%;padding-left:.5rem}.readonly .picker-multi-selection{padding-right:.5rem}.picker-multi-selection>.text{max-width:180px;overflow:clip;white-space:nowrap}.picker-menu-list{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border-style:none;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);flex:1 1 auto;min-height:0;overflow-y:auto}.picker-menu-search+.picker-menu-list.menu{margin-top:-.125rem;padding-top:0}.picker-menu-list.tree{padding:.5rem}.picker-menu .search-menu-footer{border-top-width:1px;padding-bottom:.25rem;padding-top:.25rem}.picker-search-input{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)!important;border-color:transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important;height:1.75rem;outline-width:0!important;padding-left:0;padding-right:2rem}.picker-search{flex:none;position:relative;width:100%}.picker-search>.magnifier{opacity:.5;position:absolute;right:0;top:.5rem}.picker-search-clear.btn{cursor:pointer;height:1.25rem;position:absolute;right:0;top:.25rem;width:1.25rem}.picker-search.is-inline{min-width:64px;width:4rem}.is-inline>.picker-search-input{height:1.25rem;min-width:64px;padding-left:.25rem;padding-right:.25rem}.picker-search-measure{height:0;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap}.split{display:flex;flex-direction:row}.split-vert{flex-direction:column}.split-cell{min-height:0;min-width:0}.has-animation>.split-cell{transition-duration:.15s;transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter{align-items:stretch;border-radius:var(--radius);cursor:col-resize;display:flex;flex:none;flex-direction:row;justify-content:center;position:relative}.gutter-vert{cursor:row-resize;flex-direction:column}.gutter:before{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));content:var(--tw-content);display:block;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter-horz:before{width:1px}.gutter-vert:before{height:1px}.gutter-horz:hover:before{width:75%}.gutter-vert:hover:before{height:75%}.gutter-resize-handler,.gutter-toggle{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-radius:var(--radius-lg);border-width:1px;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity));display:flex;height:1.75rem;justify-content:center;margin-top:-.875rem;position:absolute;top:50%;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.75rem}.gutter-toggle>span{--tw-scale-x:.75;--tw-scale-y:.75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter:hover .gutter-toggle{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-500-rgb),var(--tw-border-opacity));color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.gutter .gutter-toggle:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.is-last>.gutter-toggle{--tw-scale-x:-1}.is-first>.gutter-toggle,.is-last>.gutter-toggle{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.is-first>.gutter-toggle{--tw-scale-x:1}.gutter-vert .gutter-toggle{--tw-rotate:90deg;left:50%;margin-left:-.375rem;margin-top:0;top:auto}.gutter-vert .gutter-toggle,.gutter.is-next-collapsed>.gutter-toggle{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.gutter.is-next-collapsed>.gutter-toggle{--tw-scale-x:1}.gutter.is-prev-collapsed>.gutter-toggle{--tw-scale-x:-1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.gutter-horz.is-first.is-prev-collapsed{transform:translateX(calc(-1px - var(--split-gutter-size)/2))}.gutter-horz.is-last.is-next-collapsed{transform:translateX(calc(1px + var(--split-gutter-size)/2))}.gutter-vert.is-first.is-prev-collapsed{transform:translateY(calc(-1px - var(--split-gutter-size)/2))}.gutter-vert.is-last.is-next-collapsed{transform:translateY(calc(1px + var(--split-gutter-size)/2))}.gutter-resize-handler{background-color:transparent;border-width:0}.gutter-resize-handler:before{--tw-content:"";border-left-width:1px;border-right-width:1px;bottom:0;content:var(--tw-content);left:.25rem;position:absolute;right:.25rem;top:0}.sidebar{--gutter-width:1px;flex:none!important;position:relative}.has-sidebar-animation .sidebar{transition-duration:.15s;transition-property:width,margin;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sidebar-left.is-collapsed{margin-left:calc(var(--gutter-width)*-1)}.sidebar-right.is-collapsed{margin-right:calc(var(--gutter-width)*-1)}.sidebar.is-collapsed>*{display:none}.sidebar.is-collapsed>.sidebar-gutter{display:flex}.sidebar-gutter{bottom:0;left:100%;position:absolute;top:0;width:var(--gutter-width)}.sidebar-right>.sidebar-gutter{left:auto;right:100%}.is-collapsed>.gutter>.gutter-toggle>span{--tw-rotate:-180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sidebar-gutter:before{border-radius:var(--radius-full);opacity:0}.sidebar-gutter:hover:before{opacity:1;width:.5rem}.is-expanded .sidebar-gutter.gutter-border:before{opacity:1}.is-sidebar-resizing{cursor:col-resize}:root{--table-head-bg:var(--color-surface);--table-striped-color:var(--color-gray-50);--table-hover-color:rgba(var(--color-primary-500-rgb),.05);--table-border-color:var(--color-border)}.table{border-color:var(--table-border-color);width:100%}.table>thead{background-color:var(--table-head-bg)}.table>*>tr{border-bottom-width:1px}.table>*>tr>*{padding:.5rem 1rem}.table-striped>tbody>tr:nth-child(2n){background:var(--table-striped-color)}.table-hover>tbody>tr:hover>*{background:var(--table-hover-color)}.table.bordered>*>tr>*{border-width:1px}.table.borderless>*>tr,.table.borderless>*>tr>*{border-style:none}.condensed>*>tr>*{padding:.375rem .75rem}.table-fixed{table-layout:fixed}.table-fixed>*>tr>*{overflow:hidden;white-space:nowrap}.toolbar{align-items:center;display:flex;position:relative}.toolbar>.divider{--tw-bg-opacity:1;background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));margin:.5rem;width:1px}.toolbar-space{flex:1 1 auto;height:1px;width:1px}.toolbar>.dropdown.show{align-items:center;display:flex;position:relative}.tooltip{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-inverse-rgb),var(--tw-border-opacity));border-radius:var(--radius);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem;max-width:28rem;padding:.25rem .5rem;z-index:1800}.tooltip:not(.white)>.arrow{border-width:0}.tooltip.white>.arrow{border-color:inherit}.tooltip-has-title{--tw-bg-opacity:0.8;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding:.5rem .75rem .75rem}.tooltip-has-title>.arrow{opacity:.75}.tooltip-heading{align-items:center;display:flex;font-size:.8125rem;font-weight:700;gap:1rem;justify-content:space-between;line-height:1.25rem;padding:.25rem}.tooltip-heading>.btn-close{margin-right:-.25rem}.tooltip-content{padding:.25rem}.tree-item-inner{flex-direction:row;min-height:24px;padding-left:var(--list-nested-indent)}.tree-item-inner,.tree-toggle{align-items:center;display:flex}.tree-toggle{--caret-size:5px;--caret-opacity:.3;border-radius:var(--radius);flex:none;height:1rem;justify-content:center;margin-right:-.375rem;width:1rem}.tree-item-inner>.item-icon{opacity:.5;width:1rem}.tree-item-inner:hover>.item-icon{opacity:.8}.tree-item-inner.has-hover{border-radius:var(--radius)}.tree-item-inner .item-title:not(:hover),.tree-item-inner>a.item-title:not(:hover){color:inherit}.tree-item-inner>.toolbar{margin-left:1rem;opacity:.6}.tree-item-inner:hover>.toolbar{opacity:1}.tree-item>.active{background:var(--menu-active-bg);color:var(--menu-active-color)}.tree-item>.selected{background:var(--menu-selected-bg)}.tree-item>.selected .item-content{color:var(--menu-selected-color);font-weight:700}.tree.search-menu-on-top>.search-box{left:0;right:0}.upload .upload-tip{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.upload .draggable-area{background-color:rgba(var(--color-primary-50-rgb),.2);border:1px dashed var(--color-primary-300)}.upload .draggable-area.dragover{background-color:rgba(var(--color-primary-500-rgb),.1);border-style:solid}.upload .upload-tip{color:var(--color-slate-500)}.file-item>.img{height:120px;width:120px}.upload .file-item:hover .file-size{display:flex!important}.panel-body>.form-batch{margin-top:-1rem}.form-batch-container{overflow-y:auto}.form-batch-table{--table-head-bg:var(--color-canvas);min-width:100%;table-layout:fixed}.form-batch-table>*>tr>*{padding-left:.375rem;padding-right:.375rem;vertical-align:top}.form-batch-table>*>tr>th{text-align:left;vertical-align:middle}.form-batch-head[data-name=ACTIONS]{width:5rem}.form-batch-label{display:inline}.form-batch-control>textarea.form-control{height:2rem}.form-batch-btn+.btn{margin-left:.25rem}.form-batch-table>tbody[data-count="1"] .form-batch-btn[data-type=delete]{display:none}.form-batch-ditto{position:relative}.form-batch-ditto-btn{bottom:0;height:auto;opacity:.5;padding-left:.5rem;padding-right:.5rem;position:absolute!important;right:0;top:0}.form-batch-ditto-btn:after{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:.5rem;content:var(--tw-content);left:-1px;position:absolute;top:.5rem;width:1px}[data-ditto=on] .form-batch-ditto-btn{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));opacity:1}.form-batch-row-actions{padding-bottom:.75rem!important;padding-top:.75rem!important}.form-batch-ditto-control .form-control{padding-right:calc(var(--form-batch-ditto-width) + 8px)}.form-batch-ditto-control .input-control>.input-control-suffix{right:var(--form-batch-ditto-width)}.form-batch-ditto-control .input-control>.form-control{padding-right:calc(var(--form-batch-ditto-width) + var(--input-control-suffix))}.form-batch-ditto-control .pick-pri>.caret{right:calc(var(--form-batch-ditto-width) + 8px)}.dropmenu-btn{gap:.25rem;padding-left:.5rem;padding-right:.5rem}.dropmenu-btn>.text{max-width:180px;overflow:hidden}.dropmenu-btn>.is-leading{left:-.625rem;position:absolute}.dropmenu-btn>.is-caret{align-items:center;background-color:rgba(var(--color-canvas-rgb),.2);border-radius:var(--radius);display:flex;height:1rem;justify-content:center;width:1rem}.dropmenu-nav{border-bottom-width:1px;margin-left:.75rem;margin-right:.75rem;margin-top:.25rem}.has-search .dropmenu-nav{margin-top:-.5rem}.dropmenu-nav>.nav-secondary{gap:.5rem}.dropmenu-nav>.nav-secondary>.nav-item>a{border-radius:var(--radius);padding-left:.5rem;padding-right:.5rem}.dropmenu-nav>.nav-secondary>.nav-item>a:after{bottom:-1px;left:1rem;opacity:0;right:1rem}.dropmenu-nav>.nav-secondary>.nav-item>.active:after{left:.5rem;opacity:1;right:.5rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dropmenu-title{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;font-weight:700;line-height:1rem;margin-bottom:-.5rem;padding:.75rem}.dropmenu-list{min-height:0;overflow-x:hidden;overflow-y:auto;padding:.5rem .75rem}.dropmenu.loading>*{opacity:0}.dropmenu-item .tree-item-inner{border-radius:var(--radius);cursor:pointer;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dropmenu-item.is-item.active>.tree-item-inner{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.tree-item-inner.is-link:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.tree-item-inner.is-link:hover .item-content,.tree-item-inner.is-link:hover .item-trailing-icon{color:inherit}.tree-item-inner.is-toggle:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity))}.dropmenu-item+.tree-item{margin-top:.125rem}.dropmenu-item .is-match{font-weight:700;text-decoration-line:underline}.dropmenu-item .item-title,.dropmenu-item .label{overflow:hidden;white-space:nowrap}.dropmenu-item .item-content{padding-left:.375rem;padding-right:.375rem}.dropmenu-item *+.item-content{padding-left:0}.tree-item-inner.is-toggle .item-title{opacity:.6}.tree-item-inner.is-toggle:hover .item-title{opacity:1}.dropmenu-item-check{align-items:center;display:flex;flex:1 1 auto;justify-content:flex-end;padding-right:.5rem}.dropmenu-item .nested-toggle-icon.is-empty{width:.25rem}.dropmenu-item .item-icon{margin-right:-.25rem}:root{--form-control-border:var(--color-border-strong)}.checkbox-primary.disabled,.checkbox-primary.disabled>label,.checkbox-primary>input[type=checkbox]:disabled,.checkbox-primary>input[type=checkbox]:disabled+label,.radio-primary.disabled,.radio-primary.disabled>label,.radio-primary>input[type=radio],.radio-primary>input[type=radio]:disabled+label{filter:none!important}.checkbox-primary.disabled>label,.radio-primary.disabled>label{opacity:1}.form-actions{gap:1rem;justify-content:center}.form-actions .btn{min-width:96px}.form-control-static{min-height:32px;padding-bottom:.375rem;padding-top:.375rem}:root{--zt-panel-form-max-width:1000px}.size-sm{--zt-panel-form-max-width:800px}.size-lg{--zt-panel-form-max-width:1200px}.panel-body>.container,.panel-heading>.container{max-width:var(--panel-container-width);min-width:0;padding-left:var(--panel-container-padding);padding-right:var(--panel-container-padding)}.panel-heading>.container{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;gap:1rem;justify-content:space-between;min-height:48px}.panel-form{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius-md);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);margin-bottom:1rem;margin-left:auto;margin-right:auto;max-width:var(--zt-panel-form-max-width);min-width:var(--zt-panel-form-min-width);overflow:visible;padding-bottom:1rem;padding-left:1rem;padding-right:1rem}.panel-form .form-actions{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),.8);bottom:0;padding-bottom:1rem;padding-top:1rem;position:sticky;z-index:1}.panel-form .form-grid{margin:calc(0px - var(--form-grid-gap-y-half)) calc(0px - var(--form-grid-gap-x-half))}.panel-form-toolbar{padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half);width:100%}.panel-form-toolbar>.toolbar{gap:1rem;padding-bottom:.75rem;padding-top:.75rem}.panel-form-divider{margin-bottom:.75rem;margin-top:1rem;padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half);width:100%}.panel-form-divider:before{--tw-content:"";background-color:rgba(var(--color-border-rgb),.7);content:var(--tw-content);display:block;height:1px}.is-full .btn-full-form,.is-lite .btn-lite-form{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-300-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));z-index:1}.btn-toggle-fold:after{content:attr(data-expand-text)}.show-fold-items .btn-toggle-fold:after{content:attr(data-collapse-text)}.is-foldable,.is-full .full\:hidden,.is-full .lite\:visible,.is-full .panel-form-divider,.is-full .panel-form-toolbar,.is-lite .full\:visible,.is-lite .lite\:hidden{display:none}.is-foldable.is-pinned,.is-full .full\:visible,.is-full .is-foldable,.is-full .lite\:hidden,.is-lite .full\:hidden,.is-lite .lite\:visible,.show-fold-items .is-foldable{display:block}.is-full .full\:w-1\/2,.is-lite .lite\:w-1\/2{width:50%}.is-full .full\:w-1\/3,.is-lite .lite\:w-1\/3{width:33.333333%}.is-full .full\:w-2\/3,.is-lite .lite\:w-2\/3{width:66.666667%}.is-full .full\:w-1\/4,.is-lite .lite\:w-1\/4{width:25%}.is-full .full\:w-2\/4,.is-lite .lite\:w-2\/4{width:50%}.is-full .full\:w-3\/4,.is-lite .lite\:w-3\/4{width:75%}.is-full .full\:w-1\/5,.is-lite .lite\:w-1\/5{width:20%}.is-full .full\:w-2\/5,.is-lite .lite\:w-2\/5{width:40%}.is-full .full\:w-3\/5,.is-lite .lite\:w-3\/5{width:60%}.is-full .full\:w-4\/5,.is-lite .lite\:w-4\/5{width:80%}.is-full .full\:w-1\/6,.is-lite .lite\:w-1\/6{width:16.666667%}.is-full .full\:w-2\/6,.is-lite .lite\:w-2\/6{width:33.333333%}.is-full .full\:w-3\/6,.is-lite .lite\:w-3\/6{width:50%}.is-full .full\:w-4\/6,.is-lite .lite\:w-4\/6{width:66.666667%}.is-full .full\:w-5\/6,.is-lite .lite\:w-5\/6{width:83.333333%}.is-full .full\:w-full,.is-lite .lite\:w-full{width:100%}.page-form{--panel-container-width:960px;--panel-container-padding:20px;--zt-panel-form-max-width:1200px;--zt-panel-form-min-width:1040px;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-left:0;padding-right:0}.page-form .panel-heading{--tw-border-opacity:0.7;border-bottom-width:1px;padding:0}.page-form .panel-title{font-size:1rem;line-height:1.5rem}@media (max-width:1240px){.page-form{--zt-panel-form-max-width:1100px}}@media (max-width:1110px){.page-form{--zt-panel-form-max-width:1040px}}.modal-body>.page-form{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);margin:-1.5rem -2rem!important}.modal-body>.page-form>.panel-heading{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);padding-bottom:.375rem;padding-top:.375rem;position:sticky;top:-1.5rem;z-index:2}.modal-body>.panel-form .form-actions{bottom:-1.5rem}.dropdown.popover{display:flex;flex-direction:column;position:absolute;z-index:1200}.dropdown.show{display:flex}.dropdown-menu{--menu-min-width:7rem;--menu-max-width:20rem;display:none}.dropdown-menu.show,.menu-wrapper>.dropdown-menu,.show>.dropdown-menu{display:block}.dropdown>.dropdown-menu,.menu-wrapper .dropdown-menu{position:relative}.show>.menu-wrapper{display:flex}.dropdown>.menu-wrapper{height:100%}.dropdown>.menu-wrapper .menu-wrapper{position:absolute}.is-contextmenu .is-nested-show>a:not(:hover){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity))}.is-contextmenu .menu-item.is-nested>.item-inner>.nested-toggle-icon{position:absolute;right:.25rem;top:.375rem}.is-contextmenu .menu-nested .menu-item>.item-inner{padding-left:.5rem;padding-right:1.25rem}.is-contextmenu .menu-nested .menu-item>.item-inner>.item-content{overflow:hidden}.dropdown>.arrow{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.global-search-panel li:not(.order-first):hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.global-search-panel li a{width:100%}.global-search-panel li{cursor:pointer}.history-panel>.panel-heading+.panel-body{margin-top:-.75rem}.history-panel-action{position:relative}.history-panel-action:before{--tw-border-opacity:1;--tw-content:"";border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-left-width:1px;bottom:-.375rem;content:var(--tw-content);left:.5rem;position:absolute;top:22px}.col-reverse>.history-panel-action:first-child:before,.col>.history-panel-action:last-child:before{display:none}.history-panel-action>.item-inner{padding-left:1.5rem}.history-panel-action>.item-inner>.avatar{left:0;position:absolute;top:.375rem}.img-cutter{background:var(--color-gray-100);border:1px solid #ddd;margin-bottom:20px;padding:10px}.img-cutter .canvas{margin:0 auto;max-width:100%;min-width:50px;position:relative}.img-cutter .cover{inset:0;position:absolute;z-index:1}.img-cutter .controller{background:none;border:1px dashed hsla(0,0%,100%,.7);cursor:move;position:absolute;z-index:5}.img-cutter .control{background:#000;background:rgba(0,0,0,.6);border:1px solid hsla(0,0%,100%,.6);height:6px;position:absolute;width:6px}.img-cutter .control[data-type=left]{cursor:w-resize;left:-4px;margin-top:-3px;top:50%}.img-cutter .control[data-type=top]{cursor:n-resize;left:50%;margin-left:-3px;top:-4px}.img-cutter .control[data-type=right]{cursor:e-resize;margin-top:-3px;right:-4px;top:50%}.img-cutter .control[data-type=bottom]{bottom:-4px;cursor:s-resize;left:50%;margin-left:-3px}.img-cutter .control[data-type=top-left]{cursor:nw-resize;left:-4px;top:-4px}.img-cutter .control[data-type=top-right]{cursor:ne-resize;right:-4px;top:-4px}.img-cutter .control[data-type=bottom-left]{bottom:-4px;cursor:sw-resize;left:-4px}.img-cutter .control[data-type=bottom-right]{bottom:-4px;cursor:se-resize;right:-4px}.img-cutter .cliper{inset:0;position:absolute;z-index:2}.messager-fail .toolbar,.messager-success .toolbar{padding-left:72px}.modal-reconfirm .modal-body{font-size:14px;font-weight:700;padding:24px 32px}.modal-reconfirm .modal-footer{justify-content:center;padding:24px}.picker-deselect-btn{opacity:.6;transition-duration:.15s;transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.picker-multi-selection{cursor:pointer;padding-right:.5rem;position:relative}.picker-multi-selection .picker-deselect-btn{--tw-scale-x:0;--tw-scale-y:0;background-color:rgba(var(--color-surface-rgb),.8);inset:0;opacity:0;position:absolute}.picker-deselect-btn:hover,.picker-multi-selection .picker-deselect-btn,.picker-multi-selection:hover .picker-deselect-btn{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.picker-deselect-btn:hover,.picker-multi-selection:hover .picker-deselect-btn{--tw-scale-x:1;--tw-scale-y:1;--state-color:rgba(var(--color-surface-rgb),.9);opacity:1}.pick-pri{align-items:center;display:flex;flex-direction:row;justify-content:flex-start;position:relative}.pick-pri>.caret{position:absolute;right:.5rem;top:.875rem}.pick-pri .placeholder{--tw-text-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-text-opacity))}.pick-pri-list>.btn{justify-content:flex-start}.disabled.pick-pri,.disabled.pick-pri>*{filter:none}.search-form{--gutter-width:12px;padding-bottom:.75rem}.search-form-container{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);min-height:116px;position:relative}.is-simple .search-form-container{min-height:56px}.search-form-field td{padding:.375rem}.search-form .sidebar-right.is-collapsed{margin-right:-.375rem}.search-form-toggle.active,.show-search-form #featureBar .search-form-toggle{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.show-search-form #featureBar .search-form-toggle{font-weight:700}.is-simple .search-form-wrapper{display:flex}.is-simple .search-form-wrapper>.row{flex:1 1 auto}.is-simple .search-form-wrapper>.toolbar{flex:none;margin-top:0}.zinbar [data-hint]{position:relative}.zinbar [data-hint]:after{--tw-bg-opacity:0.9;--tw-text-opacity:1;--tw-content:attr(data-hint);background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);bottom:100%;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));content:var(--tw-content);display:block;font-size:.75rem;line-height:1rem;opacity:0;padding:.125rem .25rem;pointer-events:none;position:absolute;right:0;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);white-space:nowrap;z-index:50}.zinbar [data-hint]:hover:after{opacity:1}.zin-perf-btn-list .text-danger{color:var(--color-danger-400)}.zinbar .state{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.zinbar .state:active{--tw-scale-x:1.05;--tw-scale-y:1.05}.zinbar .state:active,.zinbar.collapse{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.zinbar.collapse{--tw-translate-x:100%}.zinbar.collapse>div{pointer-events:none}.zinbar{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.7s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);min-height:28px;position:relative;transition-duration:.15s;transition-property:shadow,border,color,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.card-content,.card-footer,.card-header,.card-heading{padding:.25rem .5rem}.card-heading{align-items:center;display:flex;gap:.5rem}.card-icon{opacity:.5}.card-header{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.card-content{display:flex;flex-direction:column;gap:.25rem}.card-actions{position:absolute;right:.125rem;top:.125rem}.card-actions+.card-heading{padding-right:1.75rem}.card-subtitle{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.card-list{--list-gap:.625rem;--list-count-per-row:1}.card-list,.card-list-item{padding:calc(var(--list-gap)/2)}.card-list-item{width:calc(100%/var(--list-count-per-row))}.card-grid{display:flex;flex-wrap:wrap}.card-grid .card{height:100%}.contextmenu{display:none}.contextmenu.show{display:block}.contextmenu .popup .popup,.contextmenu.popup{position:absolute}.more,.more-vert{margin:.5rem;position:relative}.more,.more-vert,.more-vert:after,.more-vert:before,.more:after,.more:before{background-color:currentColor;border-radius:var(--radius-full);height:.125rem;width:.125rem}.more-vert:after,.more-vert:before,.more:after,.more:before{--tw-content:"";content:var(--tw-content);display:block;left:-5px;position:absolute;top:0}.more-vert:after,.more:after{left:5px}.more-vert{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dashboard-blocks{position:relative}.dashboard-block-cell{position:absolute;transition-duration:.15s;transition-property:left,top;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-block{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);inset:.5rem;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-block.is-dragging{opacity:0;z-index:1600}.dashboard-block-header{align-items:center;border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);display:flex;flex-direction:row;justify-content:space-between;left:0;padding:.75rem;pointer-events:none;position:absolute;right:0;top:0;z-index:10}.dashboard-block-header>*{pointer-events:auto}.dashboard-block-title{font-size:.875rem;font-weight:700;line-height:1.3rem}.dashboard-block-body{inset:0;position:absolute}.dashboard-block-body>.panel{--tw-shadow:0px 6px 16px rgba(202,215,235,.25);display:flex;flex-direction:column;height:100%;width:100%}.dashboard-block-body .panel-heading{cursor:move;flex:none}.dashboard-block-body .panel-body{flex:1 1 auto;overflow-y:auto}.has-more-menu>.dashboard-block-body .panel-heading{padding-right:3rem}.dashboard-block-body .panel-title{font-size:.875rem;height:2rem;line-height:1.3rem}.dashboard-block-actions .btn{opacity:.6}.dashboard-block-actions .btn:hover{opacity:1}.dashboard-drop-shadow{position:absolute;transition-duration:.15s;transition-property:left,top;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-drop-shadow:before{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);--tw-content:"";background-color:rgba(var(--color-inverse-rgb),.05);border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);content:var(--tw-content);inset:.5rem;position:absolute}:root{--scrollbar-size:10px;--scrollbar-opacity:.6;--scrollbar-bg:rgba(var(--color-inverse-rgb),.15);--scrollbar-inset:inset 0 0 0 1px rgba(var(--color-inverse-rgb),.05);--scrollbar-bar-bg:rgba(var(--color-inverse-rgb),.3);--scrollbar-hover-bg:rgba(var(--color-inverse-rgb),.4);--scrollbar-drag-bg:rgba(var(--color-inverse-rgb),.5);--scrollbar-radius:var(--radius-sm);--scrollbar-duration:.7s}.scrollbar{background:var(--scrollbar-bg);box-shadow:var(--scrollbar-shadow);opacity:var(--scrollbar-opacity);position:absolute;transition-duration:.15s;transition-duration:var(--scrollbar-duration);transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.scrollbar-hover .scrollbar{opacity:0}.scrollbar-hover:hover .scrollbar{opacity:var(--scrollbar-opacity)}.scrollbar.is-dragging,.scrollbar:hover{opacity:1!important}.scrollbar-bar{background:var(--scrollbar-bar-bg);border-radius:var(--scrollbar-radius);position:absolute}.scrollbar-bar:hover{background:var(--scrollbar-hover-bg)}.is-dragging>.scrollbar-bar{background:var(--scrollbar-drag-bg)}.is-horz>.scrollbar-bar{height:100%;z-index:20}.is-vert>.scrollbar-bar{width:100%;z-index:20}:root{--dtable-checked-bg:var(--color-warning-50);--dtable-checked-bg-hover:var(--color-warning-100);--dtable-checked-border:var(--color-border-strong)}.dtable-cell.is-checked,.dtable-striped .dtable-cell.is-odd-row.is-checked{background-color:var(--dtable-checked-bg)}.checkbox-primary.dtable-checkbox{margin-right:-.375rem}.dtable-checkbox{order:-5}.dtable-hover-col .dtable-cell.is-hover-col.is-checked,.dtable-hover-row .dtable-cell.is-hover-row.is-checked{background-color:var(--dtable-checked-bg-hover)}.dtable-cell.is-checked{--dtable-border-color:var(--dtable-checked-border)}.dtable-check-info{flex-shrink:1;margin-right:.5rem;overflow:hidden;white-space:nowrap}:root{--toggle-icon-size:calc(var(--font-size-root)*3/4 + 1px)}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-color:currentColor;border-width:1px;display:block;opacity:.5;position:relative}.toggle-icon-collapse:hover,.toggle-icon-expand:hover,.toggle-icon:hover{opacity:.9}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-radius:inherit;height:var(--toggle-icon-size);width:var(--toggle-icon-size)}.is-collapsed .toggle-icon:after,.is-collapsed .toggle-icon:before,.is-expanded .toggle-icon:before,.toggle-icon-collapse:after,.toggle-icon-collapse:before,.toggle-icon-expand:before{background-color:currentColor;content:" ";display:block;height:1px;left:2px;position:absolute;right:2px;top:calc((var(--toggle-icon-size) - 3px)/2)}.is-collapsed .toggle-icon:after,.toggle-icon-collapse:after{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:root{--dtable-nt-size:calc(var(--font-size-root)*3/4 + 1px)}.dtable-nested-indent{flex:none;margin-right:-.25rem;order:-100}.dtable-nested-toggle{align-items:center;border-radius:var(--radius-sm);display:flex;flex:none;height:1.25rem;justify-content:center;margin-left:-.25rem;order:-6;width:1.25rem}.dtable-nested-toggle.is-no-child{margin-right:-.25rem;opacity:0;pointer-events:none}.dtable-header-group{align-items:center;background:var(--dtable-header-bg);cursor:default;display:flex;justify-content:center;left:0;position:absolute;top:1px;z-index:30}.dtable-bordered .dtable-header-group{border-bottom:1px solid var(--dtable-border-color);border-left:1px solid var(--dtable-border-color)}.dtable-header-as-group{contain:style;content-visibility:visible;overflow:visible!important}.dtable-sorting{cursor:move}.dtable-cell.is-sorting-from{background-color:var(--dtable-bg);z-index:20}.dtable-cell.is-sorting-from:before{border-top-width:1px}.dtable-sorting .dtable-cell.is-sorting-after{--tw-translate-y:-100%}.dtable-sorting .dtable-cell.is-sorting-after,.dtable-sorting .dtable-cell.is-sorting-before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dtable-sorting .dtable-cell.is-sorting-before{--tw-translate-y:100%}.dtable-cell.is-sorting-before:before,.dtable-cell.is-sorting-from:before{border-bottom-width:1px;border-top-width:1px}:root{--dtable-bg:var(--color-canvas);--dtable-striped-bg:var(--color-gray-50);--dtable-hover-bg:rgba(var(--color-primary-500-rgb),.05);--dtable-header-bg:var(--color-surface);--dtable-footer-bg:var(--color-surface);--dtable-border-color:var(--color-border);--dtable-sorter-size:0.3125rem}.dtable{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));position:relative}.dtable.no-animation *{transition-property:none!important}.dtable-block{overflow:hidden;position:absolute;width:100%}.dtable-header{background-color:var(--dtable-header-bg);border-top-left-radius:inherit;border-top-right-radius:inherit}.dtable-body{overflow:hidden}.dtable-cells{background-color:var(--dtable-bg);height:100%;position:absolute;z-index:0}.dtable-cells-container{height:100%;position:absolute;width:100%}.dtable-header .dtable-cells{background-color:var(--dtable-header-bg)}.dtable-cells.dtable-fixed-left,.dtable-cells.dtable-fixed-right{z-index:10}.dtable-cell{position:absolute;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-cell:after,.dtable-cell:before{bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:-1px;z-index:2}.dtable-cell:before{border-bottom-width:1px;border-color:var(--dtable-border-color);opacity:1}.dtable-header .dtable-cell{align-items:center;display:flex;font-weight:700}.dtable-header .dtable-cell:after,.dtable-header .dtable-cell:before{top:0}.dtable-cell-content{align-items:center;display:flex;gap:.25rem;height:100%;overflow:hidden;padding-left:.75rem;padding-right:.75rem;position:relative;white-space:nowrap;width:100%;z-index:5}.dtable-body .dtable-cell.is-last-row:before{border-bottom-width:0}.dtable-footer{align-items:center;background-color:var(--dtable-footer-bg);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;border-color:var(--dtable-border-color);border-top-width:1px;display:flex;padding-left:.75rem;padding-right:.75rem;position:absolute;width:100%;z-index:10}.dtable-empty-tip{align-items:center;display:flex;height:100%;justify-content:center}.dtable .scrollbar{z-index:20}.dtable-header{transition-duration:1s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-scrolled-down .dtable-header{border-bottom-color:rgba(var(--color-inverse-rgb),.2);border-bottom-width:1px}.dtable-scroll-shadow{background-image:linear-gradient(90deg,rgba(0,0,0,.03),transparent),linear-gradient(90deg,rgba(0,0,0,.03),transparent 50%);opacity:0;pointer-events:none;position:absolute;top:0;transition-duration:1s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:8px;z-index:20}.dtable:hover .dtable-scroll-shadow{opacity:1}.dtable-scroll-shadow.is-right{--tw-rotate:180deg;margin-left:-7px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dtable-scroll-shadow.is-left,.dtable-scrolled-end .dtable-scroll-shadow.is-right{visibility:hidden}.dtable-scroll-shadow.is-right,.dtable-scrolled-right .dtable-scroll-shadow.is-left{visibility:visible}.dtable-sort{display:inline-flex;height:calc(var(--dtable-sorter-size)*12/5);margin-left:.25rem;opacity:.8;position:relative}.dtable-cell:hover .dtable-sort{opacity:1}.dtable-sort:after,.dtable-sort:before{--tw-content:"";border-color:transparent;border-style:solid;border-width:var(--dtable-sorter-size);content:var(--tw-content);height:0;left:0;opacity:.4;position:absolute;width:0}.dtable-sort:before{border-bottom-color:currentColor;border-top-width:0;top:0}.dtable-sort:after{border-bottom-width:0;border-top-color:currentColor;bottom:0}.dtable-sort.dtable-sort-asc:before,.dtable-sort.dtable-sort-desc:after{opacity:.9}.dtable-sort-link{align-items:center;cursor:pointer;display:inline-flex}.dtable-cells.dtable-fixed-left:before,.dtable-cells.dtable-fixed-right:before{border-color:var(--dtable-border-color);content:"";height:100%;pointer-events:none;position:absolute;width:100%;z-index:5}.dtable-cells.dtable-fixed-left:before{border-right-width:1px;right:-1px}.dtable-cells.dtable-fixed-right:before{border-left-width:1px;left:0}.dtable-bordered:before{border-color:var(--dtable-border-color);border-radius:inherit;border-width:1px;content:"";display:block;inset:0;pointer-events:none;position:absolute;z-index:15}.dtable-bordered .dtable-cell:before{border-width:1px;right:-1px}.dtable-cell.has-border-left:before{border-left-width:1px}.dtable-cell.has-border-right:before{border-right-width:1px;right:-1px}.dtable-striped .dtable-cell.is-odd-row{background-color:var(--dtable-striped-bg)}.dtable-hover-cell .dtable-cell:hover:after,.dtable-hover-col .dtable-cell.is-hover-col:before,.dtable-hover-row .dtable-body .dtable-cell.is-hover-row:before{background-color:var(--dtable-hover-bg)}:root{--kanban-lane-name-width:20px;--kanban-col-width:280px;--kanban-cols-gap:8px;--kanban-lanes-gap:8px;--kanban-header-height:32px;--kanban-lane-height:auto;--kanban-lane-color:var(--color-primary-500);--kanban-link-color:var(--color-secondary-500)}.kanban{align-items:flex-start;display:flex;flex-direction:column;min-width:-moz-fit-content;min-width:fit-content;position:relative}.kanban-header{display:flex;flex-direction:row;height:var(--kanban-header-height)}.kanban.has-sub-cols .kanban-header{height:calc(var(--kanban-header-height)*2)}.kanban-header-lane-name{background-color:rgba(var(--color-fore-rgb),.05);flex:none;width:var(--kanban-lane-name-width)}.kanban-header-cols,.kanban-header-sub-cols{display:flex;flex:1 1 0%;flex-direction:row;gap:var(--kanban-cols-gap)}.kanban-header-sub-cols{--tw-border-opacity:1;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));border-top-width:2px}.kanban-header-col{align-items:center;border-bottom-width:1px;display:flex;flex:1 1 0%;flex-direction:column;height:100%;width:var(--kanban-col-width)}.kanban-header-col.has-subs{width:auto}.kanban-header-col-wrapper{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));display:flex;flex:1 1 0%;flex-direction:row;padding-left:3.5rem;padding-right:3.5rem;position:relative;width:100%}.kanban-header-col-wrapper.is-align-left{justify-content:flex-start;padding-left:.5rem}.kanban-header-col-wrapper.is-align-left>.kanban-header-title{justify-content:flex-start}.kanban-header-title{align-items:center;display:flex;flex:1 1 auto;flex-direction:row;justify-content:center;overflow:hidden}.kanban-header-title>.as-title{color:var(--kanban-col-color);font-weight:700;overflow:hidden;white-space:nowrap}.kanban-header-col-actions{bottom:.25rem;position:absolute;right:.25rem;top:.25rem}.kanban-header-col-actions>.btn{opacity:.6}.kanban-header-col-actions>.btn:hover{opacity:1}.kanban-body{display:flex;flex-direction:column;gap:var(--kanban-lanes-gap)}.kanban-lane{display:flex;flex-direction:row;height:var(--kanban-lane-height);min-height:96px}.kanban-lane-name{--tw-text-opacity:1;align-items:center;background-color:var(--kanban-lane-color);color:rgba(var(--color-white-rgb),var(--tw-text-opacity));display:flex;justify-content:center;width:var(--kanban-lane-name-width);writing-mode:vertical-rl}.kanban-lane-actions,.kanban-lane-name{flex:none;position:relative}.kanban-lane.is-first .kanban-lane-actions{margin-top:calc(4px - var(--kanban-header-height))}.has-sub-cols .kanban-lane.is-first .kanban-lane-actions{margin-top:calc(4px - var(--kanban-header-height)*2)}.kanban-lane-actions>.btn.square{width:var(--kanban-lane-name-width)}.kanban-lane-title{align-items:center;display:flex;flex:1 1 auto;justify-content:center;overflow:hidden;white-space:nowrap}.kanban-lane-cols{display:flex;flex-direction:row;gap:var(--kanban-cols-gap)}.kanban-lane-col{background-color:rgba(var(--color-inverse-rgb),.05);display:flex;flex-direction:column;height:100%;width:var(--kanban-col-width)}.kanban-header-col,.kanban-lane-col{margin-left:calc(var(--kanban-col-gap-left) - var(--kanban-cols-gap));margin-right:calc(var(--kanban-col-gap-right) - var(--kanban-cols-gap))}.kanban-col-content{position:relative;z-index:5}.kanban-lane.is-first>.kanban-lane-name:before{--tw-content:"";background-color:var(--kanban-lane-color);bottom:100%;content:var(--tw-content);display:block;height:var(--kanban-header-height);left:0;position:absolute;right:0}.kanban.has-sub-cols .kanban-lane.is-first>.kanban-lane-name:before{height:calc(var(--kanban-header-height)*2)}.kanban-items{flex:1 1 auto;overflow:auto;scrollbar-gutter:both-edges stable}.kanban-lane.is-auto-height .kanban-items{scrollbar-gutter:auto}.kanban-item .card-actions{z-index:5}.kanban-heading{width:100%}.kanban-heading .listitem{height:2.25rem}.kanban-heading .item-title{font-weight:700}.kanban.has-dragging{cursor:move}.kanban-item.is-dragging{cursor:move;opacity:.1}.kanban-sticky .kanban-header{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));position:sticky;top:0;z-index:10}.kanban-sticky .kanban-lane-name{left:0;position:sticky;z-index:10}.kanban-region{--tw-bg-opacity:1;--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);min-width:-moz-fit-content;min-width:fit-content;padding:.75rem}.kanban-region>.kanban+.kanban{margin-top:.75rem}.kanban-region.has-heading{padding-top:0}.kanban-heading>.listitem{left:.75rem;position:sticky;width:calc(var(--kanban-list-width) - 24px)}.kanban-list{display:flex;flex-direction:column;gap:.75rem;height:100vh;overflow:auto;scrollbar-gutter:stable}.kanban-list.is-moving{cursor:grabbing}.kanban-items.is-dropping{position:relative}.kanban-item.is-dropping{position:relative;transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.kanban-item.is-dropping:after,.kanban-items.is-dropping>.card-list:after{--tw-content:"";background-color:rgba(var(--color-warning-500-rgb),.5);border-radius:var(--radius-full);content:var(--tw-content);display:block;height:.25rem}.kanban-item.is-dropping:after{left:.25rem;position:absolute;right:.25rem;top:-.25rem}.kanban-item.is-dropping[z-drop-side=before]{--tw-translate-y:0.25rem}.kanban-item.is-dropping[z-drop-side=after],.kanban-item.is-dropping[z-drop-side=before]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-item.is-dropping[z-drop-side=after]{--tw-translate-y:-0.25rem}.kanban-item.is-dropping[z-drop-side=after]:after{bottom:-.25rem;top:auto}.kanban-links{inset:0;pointer-events:none;position:absolute;z-index:20}.kanban-link{align-items:center;color:var(--kanban-link-color);display:flex;justify-content:center}.kanban-link,.kanban-link>svg{position:absolute}.kanban-link-text{border-radius:var(--radius);height:1em;line-height:1;padding-left:.125rem;padding-right:.125rem;pointer-events:auto;position:relative;text-align:center;white-space:nowrap}.kanban-link-start-point{--tw-translate-x:-0.25rem;--tw-translate-y:-0.25rem;height:.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5rem}.kanban-link-start-point,.kanban-link-start-point:before{background-color:currentColor;border-radius:var(--radius-full);position:absolute}.kanban-link-start-point:before{--tw-content:"";content:var(--tw-content);display:block;inset:-.25rem;opacity:.2}.kanban-link path{pointer-events:auto}.kanban-link path+path{opacity:.6}.kanban-link.is-hover path+path{opacity:1}.kanban-link-delete-btn{--tw-scale-x:.75;--tw-scale-y:.75;opacity:0;pointer-events:auto;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.is-hover .kanban-link-delete-btn,.kanban-link-delete-btn{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.is-hover .kanban-link-delete-btn{--tw-scale-x:1;--tw-scale-y:1;opacity:1}.kanban.is-adding-link{cursor:crosshair}.kanban-link-editor{inset:0;pointer-events:none;position:absolute;z-index:20}.kanban-link-editor-from,.kanban-link-editor-to{--tw-shadow-color:rgb(var(--color-primary-500-rgb));--tw-shadow:var(--tw-shadow-colored);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-500-rgb),var(--tw-ring-opacity));border-radius:var(--radius)}.kanban-link-editor-from,.kanban-link-editor-point,.kanban-link-editor-to{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);position:absolute}.kanban-link-editor-point{--tw-translate-x:-0.25rem;--tw-translate-y:-0.25rem;--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-primary-500-rgb),0.1);background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);cursor:move;height:.5rem;opacity:.5;pointer-events:auto;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.5rem}.kanban-link-editor-point.is-left{left:0;top:50%}.kanban-link-editor-point.is-right{--tw-translate-x:0.25rem;right:0;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-link-editor-point.is-top{left:50%;top:0}.kanban-link-editor-point.is-bottom{--tw-translate-y:0.25rem;bottom:0;left:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-link-editor-point:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-primary-500-rgb),0.5);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:1}.tab-pane{display:none}.tab-pane.active{display:block}:root{--dtable-header-bg:var(--color-surface-light);--dtable-footer-bg:var(--color-surface-light);--dtable-border-color:var(--color-border-light);--dtable-checked-border:var(--color-border);--dtable-link-color:var(--color-link);--dtable-link-hover-color:var(--color-link-hover);--dtable-link-visited-color:var(--color-link-visited)}.dtable-header .dtable-cell{font-weight:400}.dtable-cell-content[style*="--color-link"]{--dtable-link-hover-color:var(--color-link);--dtable-link-visited-color:var(--color-link)}.dtable-body .dtable-cell a:not(.btn){color:var(--dtable-link-color)}.dtable-body .dtable-cell a:not(.btn):visited{color:var(--dtable-link-visited-color)}.dtable-body .dtable-cell a:not(.btn):hover{color:var(--dtable-link-hover-color)}.dtable .btn-avatar{--tw-bg-opacity:1;--tw-ring-color:transparent;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);gap:.25rem;height:1.25rem;padding-left:0;padding-right:.5rem}.dtable .btn-avatar:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dtable .toggle-icon{border-radius:var(--radius-full)}.dtable .toggle-icon:after,.dtable .toggle-icon:before{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity))}.dtable-footer>.toolbar{margin-right:.5rem}.dtable-header .dtable-cell[data-sort]>.dtable-cell-content>a:not(:hover){color:inherit}.dtable-assign-btn{align-items:center;border-radius:var(--radius-full);display:flex;flex-direction:row;height:1.25rem;padding-left:.375rem;padding-right:.375rem}.dtable-assign-btn:not(:hover){color:inherit}.dtable-assign-btn.is-me{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.dtable-assign-btn:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.dtable-assign-btn>span{border-radius:var(--radius-full);line-height:20px;padding-left:.375rem;padding-right:.375rem}.dtable-assign-btn.is-unassigned>span{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}.dtable-assign-btn.is-unassigned:hover>span{background-color:inherit}.dtable-assign-btn>.icon{opacity:0;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-assign-btn:not(.disabled):hover>.icon{opacity:1}.dtable-header .dtable-cell[data-type=assign]{padding-left:1.5rem}.dtable-cell-icon{order:-5}.dtable-custom-cell[data-type=control]{align-items:center;display:flex;justify-content:center;padding-left:.125rem;padding-right:.125rem;z-index:1}.dtable-empty-tip{min-height:212px}.menu.menu-dtable-actions{--menu-icon-opacity:1;display:flex;gap:.25rem;min-width:auto}.menu.menu-dtable-actions>.menu-item>a{padding-left:.25rem;padding-right:.25rem}.menu.menu-dtable-actions>.menu-item>a>.item-content{display:none}:root{--zt-page-bg:var(--color-gray-100);--zt-header-bg:var(--color-canvas);--zt-header-color:var(--color-fore);--zt-sidebar-width:160px;--zt-navbar-active-color:var(--color-primary-500)}body{background-color:var(--zt-page-bg)}.page-app{overflow:overlay}.container{min-width:1200px}#header{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background:var(--zt-header-bg);border-bottom:1px solid var(--zt-header-border,rgba(var(--color-inverse-rgb),.05));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:var(--zt-header-color);height:3rem}#header>.container{height:100%;position:relative}#heading{align-items:center;bottom:0;display:flex;gap:.25rem;left:1rem;position:absolute;top:0}#heading>.toolbar{margin-left:-.75rem}#heading .dropmenu-btn>.text{max-width:142px}#heading>[data-zui-dropmenu]+div .dropmenu-btn>.text,#heading>[data-zui-dropmenu]+div+div .dropmenu-btn>.text{max-width:78px}#navbar{align-items:center;display:flex;font-size:.875rem;height:100%;justify-content:center;line-height:1.3rem}#navbar>.nav{--nav-active-color:var(--zt-navbar-active-color,var(--color-current));--nav-item-padding:12px;--nav-divider-margin:8px;margin-left:var(--nav-offset-left)}#navbar>.nav>.nav-item>a{height:3rem;padding-left:var(--nav-item-padding);padding-right:var(--nav-item-padding)}#navbar>.nav>.nav-item>a:after{--tw-scale-x:.5;background-color:currentColor;bottom:.5rem;content:"";height:.125rem;left:.75rem;opacity:0;position:absolute;right:.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}#navbar>.nav>.nav-item>a:hover:after{opacity:.5}#navbar>.nav>.nav-item>a.active:after,#navbar>.nav>.nav-item>a:hover:after{--tw-scale-x:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#navbar>.nav>.nav-item>a.active:after{opacity:.9}#navbar>.nav>.divider{align-self:center;height:1.25rem;margin-left:var(--nav-divider-margin);margin-right:var(--nav-divider-margin)}#navbar>.nav.compact{font-size:.8125rem;line-height:1.25rem}#navbar>.nav.compact-extra{font-size:.75rem;line-height:1rem}#toolbar{align-items:center;bottom:0;display:flex;gap:.25rem;position:absolute;right:1rem;top:0}#main{min-height:100vh}#header+#main{min-height:calc(100vh - 3rem)}#main>.container{padding-left:1rem;padding-right:1rem;position:relative}@media (min-width:1400px){#header>.container,#main>.container,#mainNavbar>.container{padding-left:2.5rem;padding-right:2.5rem}#heading{left:2.5rem}#toolbar{right:2.5rem}}#mainNavbar{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));height:2.75rem}#mainNavbar>.container{position:relative}#mainNavbar .nav{height:2.75rem;inset:0;justify-content:center;position:absolute}#mainNavbar .nav-item{font-size:.875rem;line-height:1.3rem}#mainNavbar .nav-item>a{border-radius:var(--radius)}#mainMenu{gap:1rem;justify-content:space-between;padding-bottom:.75rem;padding-top:.75rem}#featureBar,#mainMenu{align-items:center;display:flex}#featureBar{flex:1 1 auto;gap:.5rem}#featureBar .nav .btn>.icon{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}#actionBar{gap:.5rem}#actionBar>.nav-divider{margin-left:-.25rem;margin-right:-.25rem}#mainContent{padding-top:.75rem}#mainMenu+#mainContent{padding-top:0}#mainContent.row{align-items:stretch;display:flex;gap:1rem;justify-content:space-between}#mainContent.row>*{flex:1 1 auto;min-width:0}#mainContainer.has-sidebar-left{--gutter-left-size:16px}#mainContainer.is-sidebar-left-collapsed{--gutter-left-size:0}.has-sidebar-animation.has-sidebar-left #mainMenu{transition-duration:.15s;transition-property:padding-left;transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--modal-radius:var(--radius);--avatar-bg:var(--color-gray-200)}.modal-alert .modal-footer{justify-content:center}.modal-dialog{--tw-bg-opacity:1}.modal-body,.modal-footer,.modal-header{padding:1.5rem 2rem}.modal-header{padding-right:3rem}.modal-actions{top:1rem}.modal-body+.modal-footer,.modal-header+.modal-actions+.modal-body,.modal-header+.modal-body{padding-top:0}.modal-condensed .modal-body,.modal-condensed .modal-header{padding:1rem 1.25rem}.modal-condensed .modal-actions{top:.75rem}:root{--label-bg:var(--color-gray-100);--label-color:var(--color-gray-800)}.label[class$=-pale],.label[class*="-pale "]{--tw-bg-opacity:0.4;--tw-ring-opacity:0.4}.tree{--tree-indent:14px}.body-modal .panel-form,.modal .panel-form{margin:0;padding:0}.modal .panel-body{padding:1px}.modal-body>.form{padding-top:1px}.modal .history,.modal .panel-body>.form{padding:0}.arrow,.arrow:before{background:inherit;height:calc(var(--arrow-size)*1.4142);position:absolute;width:calc(var(--arrow-size)*1.4142)}.arrow{--arrow-size:5px;visibility:hidden}.arrow:before{--tw-rotate:45deg;border:inherit;content:"";transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));visibility:visible}.arrow-top,.arrow-up{border-bottom:inherit;border-right:inherit;border-width:1px 0 0 1px;top:calc(1px - var(--arrow-size))}.white>.arrow-top,.white>.arrow-up{top:calc(0px - var(--arrow-size))}.arrow-bottom,.arrow-down{border-left:inherit;border-top:inherit;border-width:0 1px 1px 0;bottom:calc(1px - var(--arrow-size))}.white>.arrow-bottom,.white>.arrow-down{bottom:calc(0px - var(--arrow-size))}.arrow-left{border-right:inherit;border-top:inherit;border-width:0 0 1px 1px;left:calc(1px - var(--arrow-size))}.white>.arrow-left{left:calc(0px - var(--arrow-size))}.arrow-right{border-bottom:inherit;border-left:inherit;border-width:1px 1px 0 0;right:calc(1px - var(--arrow-size))}.white>.arrow-right{right:calc(0px - var(--arrow-size))}.caret,.caret-down,.caret-left,.caret-right,.caret-up{border:var(--caret-size,4px) solid transparent;display:inline-block;height:0;opacity:var(--caret-opacity,.5);width:0}:focus>.caret,:hover>.caret{opacity:inherit}.disabled .caret,.readonly .caret{opacity:var(--caret-opacity,.5)}.caret,.caret-down{border-bottom-width:0;border-top-color:currentColor}.caret-up{border-bottom-color:currentColor;border-top-width:0}.caret-right{border-left-color:currentColor;border-right-width:0}.caret-left{border-left-width:0;border-right-color:currentColor}:root{--toggle-icon-size:calc(var(--font-size-root)*3/4 + 1px)}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-color:currentColor;border-width:1px;display:block;opacity:.5;position:relative}.toggle-icon-collapse:hover,.toggle-icon-expand:hover,.toggle-icon:hover{opacity:.9}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-radius:inherit;height:var(--toggle-icon-size);width:var(--toggle-icon-size)}.is-collapsed .toggle-icon:after,.is-collapsed .toggle-icon:before,.is-expanded .toggle-icon:before,.toggle-icon-collapse:after,.toggle-icon-collapse:before,.toggle-icon-expand:before{background-color:currentColor;content:" ";display:block;height:1px;left:2px;position:absolute;right:2px;top:calc((var(--toggle-icon-size) - 3px)/2)}.is-collapsed .toggle-icon:after,.toggle-icon-collapse:after{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.spinner,.spinner:after,.spinner:before{display:block;height:1em;position:relative;width:1em}.spinner:after,.spinner:before{border-radius:var(--radius-full);content:" ";position:absolute}.spinner:before{animation:-spin 1s cubic-bezier(.6,0,.4,1) infinite;border:.16667em solid transparent;border-top-color:currentcolor}.spinner:after{border:.16667em solid;opacity:.2}.magnifier{display:inline-block;height:1em;position:relative;width:1em}.magnifier:after,.magnifier:before{border-radius:var(--radius-full);content:"";display:block;position:absolute}.magnifier:before{border:1px solid;height:.75em;width:.75em}.magnifier:after{--tw-rotate:45deg;background-color:currentColor;height:1px;left:.55em;top:.7em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5em}.more,.more-vert{margin:.5rem;position:relative}.more,.more-vert,.more-vert:after,.more-vert:before,.more:after,.more:before{background-color:currentColor;border-radius:var(--radius-full);height:.125rem;width:.125rem}.more-vert:after,.more-vert:before,.more:after,.more:before{--tw-content:"";content:var(--tw-content);display:block;left:-5px;position:absolute;top:0}.more-vert:after,.more:after{left:5px}.more-vert{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-down,.chevron-left,.chevron-right,.chevron-up{align-items:center;display:inline-flex;height:1em;justify-content:center;position:relative;width:1em}.chevron-down:before,.chevron-left:before,.chevron-right:before,.chevron-up:before{--tw-translate-y:-0.125rem;--tw-rotate:45deg;--tw-content:"";border-color:currentColor;border-width:0 1px 1px 0;content:var(--tw-content);display:block;height:.6923077em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform-origin:center;width:.6923077em}.chevron-left:before{--tw-translate-y:0px;--tw-translate-x:0.125rem;--tw-rotate:135deg}.chevron-left:before,.chevron-right:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-right:before{--tw-translate-y:0px;--tw-translate-x:-0.125rem;--tw-rotate:-45deg}.chevron-up:before{--tw-translate-y:0.125rem;--tw-rotate:225deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.i-time{border-color:currentColor;border-radius:50%;border-width:.08em;display:inline-block;height:1em;position:relative;width:1em}.i-time:after{--tw-content:"";border-color:currentColor;border-width:0 0 .08em .08em;content:var(--tw-content);height:.385em;left:.3846em;position:absolute;top:.08em;width:.385em}.i-calendar{border-color:currentColor;border-radius:2px;border-width:.08em;display:inline-block;height:.79em;margin-top:.16em;position:relative;width:1em}.i-calendar:after,.i-calendar:before{--tw-content:"";border-color:currentColor;border-width:.08em;content:var(--tw-content);position:absolute}.i-calendar:before{border-bottom-width:0;left:.15em;top:.307em;width:.6em}.i-calendar:after{border-bottom-width:0;border-top-width:0;height:.3077em;left:.17em;top:-.154em;width:.538em}:root{--state-color:rgba(0,0,0,.05);--state-scale:.9;--opacity-disabled:.65;--opacity-muted:.5}.btn,.item>a,.state{cursor:pointer;position:relative}.btn:before,.item>a:before,.state:before{background:var(--state-color);border-radius:inherit;content:" ";display:block;inset:0;opacity:0;pointer-events:none;position:absolute;transform:scale(var(--state-scale));transition-duration:.2s;transition-property:opacity,transform,box-shadow,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn.active:not(:hover,:focus-visible,:focus-within,:active):before,.item>a.active:not(:hover,:focus-visible,:focus-within,:active):before,.state.active:not(:hover,:focus-visible,:focus-within,:active):before{--tw-scale-x:1;--tw-scale-y:1;--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);background:var(--state-active-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);opacity:var(--state-active-opacity,0);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.7s}.btn.selected:not(:hover,:focus-visible,:focus-within,:active):before,.item>a.selected:not(:hover,:focus-visible,:focus-within,:active):before,.state.selected:not(:hover,:focus-visible,:focus-within,:active):before{--tw-scale-x:1;--tw-scale-y:1;background:var(--state-selected-color,var(--state-scale));opacity:var(--state-selected-opacity,.1);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn:focus-visible,.item>a:focus-visible,.state:focus-visible{outline:2px solid transparent;outline-offset:2px}.btn:active:before,.btn:focus-visible:before,.btn:hover:before,.item>a:active:before,.item>a:focus-visible:before,.item>a:hover:before,.state:active:before,.state:focus-visible:before,.state:hover:before{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn:hover:before,.item>a:hover:before,.state:hover:before{opacity:var(--state-hover-opacity,1)}.btn:active:before,.item>a:active:before,.state:active:before{--tw-ring-color:var(--state-ring-color,currentColor);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);background:var(--state-pressed-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:var(--state-pressed-opacity,.6);transition-duration:.7s}.btn:focus-visible:before,.item>a:focus-visible:before,.state:focus-visible:before{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-focus-rgb),var(--tw-ring-opacity));background:var(--state-focus-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:var(--state-focus-opacity,1)}.btn.disabled:before,.btn[disabled]:before,.item>a.disabled:before,.item>a[disabled]:before,.state.disabled:before,.state[disabled]:before{display:none}.disabled,.disabled *,[disabled],[disabled] *{--tw-grayscale:grayscale(100%);cursor:not-allowed!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:var(--opacity-disabled)}.load-indicator:after,.load-indicator:before{display:block;opacity:0;position:absolute;transition-delay:0s;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);visibility:hidden}.load-indicator:before{--tw-content:attr(data-loading);align-items:center;background-color:rgba(var(--color-canvas-rgb),.7);border-radius:inherit;content:var(--tw-content);display:flex;font-size:.75rem;inset:0;justify-content:center;line-height:1rem;z-index:99}.load-indicator[data-loading]:before{padding-top:3.5rem}.load-indicator:after{--tw-content:"";border-color:transparent currentcolor currentcolor;border-radius:var(--radius-full);border-style:dotted;border-width:4px 3px 4px 4px;content:var(--tw-content);height:2rem;left:50%;margin-left:-1rem;margin-top:-1rem;top:50%;width:2rem;z-index:100}.load-indicator.loading:after,.load-indicator.loading:before{opacity:1;transition-delay:.5s;visibility:visible}@keyframes -spin{to{transform:rotate(1turn)}}.load-indicator.loading:after{animation:-spin 1s linear infinite;opacity:.5}.events-none,.pointer-events-none{pointer-events:none}.events-auto,.pointer-events-auto{pointer-events:auto}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.cursor-text{cursor:text}.cursor-move{cursor:move}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.active\:opacity-100.active,.active\:opacity-100:active,.group.active .group-active\:opacity-100,.group:active .group-active\:opacity-100,.group:hover .group-hover\:opacity-100,.hover\:opacity-100:hover{opacity:1}.active\:text-primary.active,.active\:text-primary:active,.group.active .group-active\:text-primary,.group:active .group-active\:text-primary,.group:hover .group-hover\:text-primary,.hover\:text-primary:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.active\:border-primary.active,.active\:border-primary:active,.group.active .group-active\:border-primary,.group:active .group-active\:border-primary,.group:hover .group-hover\:border-primary,.hover\:border-primary:hover{--tw-border-opacity:1;border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity))}.active\:primary-pale.active,.active\:primary-pale:active,.group.active .group-active\:primary-pale,.group:active .group-active\:primary-pale,.group:hover .group-hover\:primary-pale,.hover\:primary-pale:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.active\:primary.active,.active\:primary:active,.group.active .group-active\:primary,.group:active .group-active\:primary,.group:hover .group-hover\:primary,.hover\:primary:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.active\:canvas.active,.active\:canvas:active,.group.active .group-active\:canvas,.group:active .group-active\:canvas,.group:hover .group-hover\:canvas,.hover\:canvas:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.active\:font-bold.active,.active\:font-bold:active,.group.active .group-active\:font-bold,.group:active .group-active\:font-bold,.group:hover .group-hover\:font-bold,.hover\:font-bold:hover{font-weight:700}.active\:shadow.active,.active\:shadow:active,.group.active .group-active\:shadow,.group:active .group-active\:shadow,.group:hover .group-hover\:shadow,.hover\:shadow:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.container{width:100%}@media (min-width:1720px){.container{max-width:1720px}}.container{margin-left:auto;margin-right:auto}.popup{--tw-bg-opacity:0.85;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.table-row{display:table-row}.hidden{display:none!important}.pull-right{float:right}.pull-left{float:left}.clearfix:after{clear:both;content:"";display:block}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.object-bottom{-o-object-position:bottom;object-position:bottom}.object-center{-o-object-position:center;object-position:center}.object-left{-o-object-position:left;object-position:left}.object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.object-left-top{-o-object-position:left top;object-position:left top}.object-right{-o-object-position:right;object-position:right}.object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.object-right-top{-o-object-position:right top;object-position:right top}.object-top{-o-object-position:top;object-position:top}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overflow-overlay{overflow:overlay}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-auto{inset:auto}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-full{top:100%}.right-full{right:100%}.bottom-full{bottom:100%}.left-full{left:100%}.top-auto{top:auto}.right-auto{right:auto}.bottom-auto{bottom:auto}.left-auto{left:auto}.top-px{top:1px}.right-px{right:1px}.bottom-px{bottom:1px}.left-px{left:1px}.top-0\.5{top:.125rem}.right-0\.5{right:.125rem}.bottom-0\.5{bottom:.125rem}.left-0\.5{left:.125rem}.top-1{top:.25rem}.right-1{right:.25rem}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.top-1\.5{top:.375rem}.right-1\.5{right:.375rem}.bottom-1\.5{bottom:.375rem}.left-1\.5{left:.375rem}.top-2{top:.5rem}.right-2{right:.5rem}.bottom-2{bottom:.5rem}.left-2{left:.5rem}.top-2\.5{top:.625rem}.right-2\.5{right:.625rem}.bottom-2\.5{bottom:.625rem}.left-2\.5{left:.625rem}.top-3{top:.75rem}.right-3{right:.75rem}.bottom-3{bottom:.75rem}.left-3{left:.75rem}.top-3\.5{top:.875rem}.right-3\.5{right:.875rem}.bottom-3\.5{bottom:.875rem}.left-3\.5{left:.875rem}.top-4{top:1rem}.right-4{right:1rem}.bottom-4{bottom:1rem}.left-4{left:1rem}.top-5{top:1.25rem}.right-5{right:1.25rem}.bottom-5{bottom:1.25rem}.left-5{left:1.25rem}.top-6{top:1.5rem}.right-6{right:1.5rem}.bottom-6{bottom:1.5rem}.left-6{left:1.5rem}.top-7{top:1.75rem}.right-7{right:1.75rem}.bottom-7{bottom:1.75rem}.left-7{left:1.75rem}.top-8{top:2rem}.right-8{right:2rem}.bottom-8{bottom:2rem}.left-8{left:2rem}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.m-0{margin:0}.mx-0{margin-left:0;margin-right:0}.my-0{margin-bottom:0}.mt-0,.my-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.ml-0{margin-left:0}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-bottom:auto}.mt-auto,.my-auto{margin-top:auto}.mr-auto{margin-right:auto}.mb-auto{margin-bottom:auto}.ml-auto{margin-left:auto}.m-px{margin:1px}.mx-px{margin-left:1px;margin-right:1px}.my-px{margin-bottom:1px}.mt-px,.my-px{margin-top:1px}.mr-px{margin-right:1px}.mb-px{margin-bottom:1px}.ml-px{margin-left:1px}.m-0\.5{margin:.125rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.my-0\.5{margin-bottom:.125rem}.mt-0\.5,.my-0\.5{margin-top:.125rem}.mr-0\.5{margin-right:.125rem}.mb-0\.5{margin-bottom:.125rem}.ml-0\.5{margin-left:.125rem}.m-1{margin:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-1{margin-bottom:.25rem}.mt-1,.my-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.m-1\.5{margin:.375rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.my-1\.5{margin-bottom:.375rem}.mt-1\.5,.my-1\.5{margin-top:.375rem}.mr-1\.5{margin-right:.375rem}.mb-1\.5{margin-bottom:.375rem}.ml-1\.5{margin-left:.375rem}.m-2{margin:.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-2{margin-bottom:.5rem}.mt-2,.my-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.m-2\.5{margin:.625rem}.mx-2\.5{margin-left:.625rem;margin-right:.625rem}.my-2\.5{margin-bottom:.625rem}.mt-2\.5,.my-2\.5{margin-top:.625rem}.mr-2\.5{margin-right:.625rem}.mb-2\.5{margin-bottom:.625rem}.ml-2\.5{margin-left:.625rem}.m-3{margin:.75rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.my-3{margin-bottom:.75rem}.mt-3,.my-3{margin-top:.75rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.m-3\.5{margin:.875rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.my-3\.5{margin-bottom:.875rem}.mt-3\.5,.my-3\.5{margin-top:.875rem}.mr-3\.5{margin-right:.875rem}.mb-3\.5{margin-bottom:.875rem}.ml-3\.5{margin-left:.875rem}.m-4{margin:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-4{margin-bottom:1rem}.mt-4,.my-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.m-5{margin:1.25rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.my-5{margin-bottom:1.25rem}.mt-5,.my-5{margin-top:1.25rem}.mr-5{margin-right:1.25rem}.mb-5{margin-bottom:1.25rem}.ml-5{margin-left:1.25rem}.m-6{margin:1.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-6{margin-bottom:1.5rem}.mt-6,.my-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.m-7{margin:1.75rem}.mx-7{margin-left:1.75rem;margin-right:1.75rem}.my-7{margin-bottom:1.75rem}.mt-7,.my-7{margin-top:1.75rem}.mr-7{margin-right:1.75rem}.mb-7{margin-bottom:1.75rem}.ml-7{margin-left:1.75rem}.m-8{margin:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.my-8{margin-bottom:2rem}.mt-8,.my-8{margin-top:2rem}.mr-8{margin-right:2rem}.mb-8{margin-bottom:2rem}.ml-8{margin-left:2rem}.m-9{margin:2.25rem}.mx-9{margin-left:2.25rem;margin-right:2.25rem}.my-9{margin-bottom:2.25rem}.mt-9,.my-9{margin-top:2.25rem}.mr-9{margin-right:2.25rem}.mb-9{margin-bottom:2.25rem}.ml-9{margin-left:2.25rem}.m-10{margin:2.5rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.my-10{margin-bottom:2.5rem}.mt-10,.my-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mb-10{margin-bottom:2.5rem}.ml-10{margin-left:2.5rem}.p-0{padding:0}.p-px{padding:1px}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.p-9{padding:2.25rem}.p-10{padding:2.5rem}.px-0{padding-left:0;padding-right:0}.py-0{padding-bottom:0}.pt-0,.py-0{padding-top:0}.pr-0{padding-right:0}.pb-0{padding-bottom:0}.pl-0{padding-left:0}.px-px{padding-left:1px;padding-right:1px}.py-px{padding-bottom:1px}.pt-px,.py-px{padding-top:1px}.pr-px{padding-right:1px}.pb-px{padding-bottom:1px}.pl-px{padding-left:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.py-0\.5{padding-bottom:.125rem}.pt-0\.5,.py-0\.5{padding-top:.125rem}.pr-0\.5{padding-right:.125rem}.pb-0\.5{padding-bottom:.125rem}.pl-0\.5{padding-left:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-1{padding-bottom:.25rem}.pt-1,.py-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.py-1\.5{padding-bottom:.375rem}.pt-1\.5,.py-1\.5{padding-top:.375rem}.pr-1\.5{padding-right:.375rem}.pb-1\.5{padding-bottom:.375rem}.pl-1\.5{padding-left:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-2{padding-bottom:.5rem}.pt-2,.py-2{padding-top:.5rem}.pr-2{padding-right:.5rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-2\.5{padding-bottom:.625rem}.pt-2\.5,.py-2\.5{padding-top:.625rem}.pr-2\.5{padding-right:.625rem}.pb-2\.5{padding-bottom:.625rem}.pl-2\.5{padding-left:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-bottom:.75rem}.pt-3,.py-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.py-3\.5{padding-bottom:.875rem}.pt-3\.5,.py-3\.5{padding-top:.875rem}.pr-3\.5{padding-right:.875rem}.pb-3\.5{padding-bottom:.875rem}.pl-3\.5{padding-left:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.py-4{padding-bottom:1rem}.pt-4,.py-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-5{padding-bottom:1.25rem}.pt-5,.py-5{padding-top:1.25rem}.pr-5{padding-right:1.25rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-6{padding-bottom:1.5rem}.pt-6,.py-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-7{padding-bottom:1.75rem}.pt-7,.py-7{padding-top:1.75rem}.pr-7{padding-right:1.75rem}.pb-7{padding-bottom:1.75rem}.pl-7{padding-left:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-8{padding-bottom:2rem}.pt-8,.py-8{padding-top:2rem}.pr-8{padding-right:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-9{padding-bottom:2.25rem}.pt-9,.py-9{padding-top:2.25rem}.pr-9{padding-right:2.25rem}.pb-9{padding-bottom:2.25rem}.pl-9{padding-left:2.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-10{padding-bottom:2.5rem}.pt-10,.py-10{padding-top:2.5rem}.pr-10{padding-right:2.5rem}.pb-10{padding-bottom:2.5rem}.pl-10{padding-left:2.5rem}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(0px*(1 - var(--tw-space-x-reverse)));margin-right:calc(0px*var(--tw-space-x-reverse))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.125rem*var(--tw-space-x-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.125rem*var(--tw-space-y-reverse));margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.375rem*var(--tw-space-x-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-2\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.625rem*var(--tw-space-x-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.625rem*var(--tw-space-y-reverse));margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-x-3\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.875rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.875rem*var(--tw-space-x-reverse))}.space-y-3\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.875rem*var(--tw-space-y-reverse));margin-top:calc(.875rem*(1 - var(--tw-space-y-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.25rem*var(--tw-space-x-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-7>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.75rem*var(--tw-space-x-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.75rem*var(--tw-space-y-reverse));margin-top:calc(1.75rem*(1 - var(--tw-space-y-reverse)))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.space-x-9>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.25rem*var(--tw-space-x-reverse))}.space-y-9>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.25rem*var(--tw-space-y-reverse));margin-top:calc(2.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.5rem*var(--tw-space-y-reverse));margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1px*(1 - var(--tw-space-x-reverse)));margin-right:calc(1px*var(--tw-space-x-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1px*var(--tw-space-y-reverse));margin-top:calc(1px*(1 - var(--tw-space-y-reverse)))}.w-0{width:0}.w-px{width:1px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-32{width:8rem}.w-36{width:9rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-52{width:13rem}.w-56{width:14rem}.w-60{width:15rem}.w-64{width:16rem}.w-72{width:18rem}.w-80{width:20rem}.w-96{width:24rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-1\/6{width:16.666667%}.w-2\/6{width:33.333333%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.w-min{width:-moz-min-content;width:min-content}.w-max{width:-moz-max-content;width:max-content}.w-fit{width:-moz-fit-content;width:fit-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.min-w-min{min-width:-moz-min-content;min-width:min-content}.min-w-max{min-width:-moz-max-content;min-width:max-content}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.max-w-0{max-width:0}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.max-w-min{max-width:-moz-min-content;max-width:min-content}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.h-0{height:0}.h-px{height:1px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-32{height:8rem}.h-36{height:9rem}.h-40{height:10rem}.h-44{height:11rem}.h-48{height:12rem}.h-52{height:13rem}.h-56{height:14rem}.h-60{height:15rem}.h-64{height:16rem}.h-72{height:18rem}.h-80{height:20rem}.h-96{height:24rem}.h-1\/2{height:50%}.h-1\/3{height:33.333333%}.h-2\/3{height:66.666667%}.h-1\/4{height:25%}.h-2\/4{height:50%}.h-3\/4{height:75%}.h-1\/5{height:20%}.h-2\/5{height:40%}.h-3\/5{height:60%}.h-4\/5{height:80%}.h-1\/6{height:16.666667%}.h-2\/6{height:33.333333%}.h-3\/6{height:50%}.h-4\/6{height:66.666667%}.h-5\/6{height:83.333333%}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h-min{height:-moz-min-content;height:min-content}.h-max{height:-moz-max-content;height:max-content}.h-fit{height:-moz-fit-content;height:fit-content}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-min{min-height:-moz-min-content;min-height:min-content}.min-h-max{min-height:-moz-max-content;min-height:max-content}.min-h-fit{min-height:-moz-fit-content;min-height:fit-content}.max-h-0{max-height:0}.max-h-px{max-height:1px}.max-h-none{max-height:none}.max-h-full{max-height:100%}.max-h-min{max-height:-moz-min-content;max-height:min-content}.max-h-max{max-height:-moz-max-content;max-height:max-content}.max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.canvas,.surface,.surface-light,.surface-strong{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}.canvas{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.surface-light{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-light-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity))}.surface{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.surface-strong{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-strong-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-strong-rgb),var(--tw-bg-opacity))}.inverse{background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.inverse,.white{--tw-bg-opacity:1;--tw-text-opacity:1}.white{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-white-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-white-rgb),var(--tw-bg-opacity));color:rgba(var(--color-fore-in-light-rgb),var(--tw-text-opacity))}.black{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-black-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-black-rgb),var(--tw-bg-opacity));color:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity))}.transparent{--tw-ring-color:transparent;background-color:transparent}.skin{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.skin:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger,.darken,.darker,.darkest,.gray,.gray-100,.gray-200,.gray-300,.gray-400,.gray-50,.gray-500,.gray-600,.gray-700,.gray-800,.gray-900,.gray-950,.important,.lighten,.lighter,.lightest,.primary,.secondary,.special,.success,.warning{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger:hover,.darken:hover,.darker:hover,.darkest:hover,.gray-100:hover,.gray-200:hover,.gray-300:hover,.gray-400:hover,.gray-500:hover,.gray-50:hover,.gray-600:hover,.gray-700:hover,.gray-800:hover,.gray-900:hover,.gray-950:hover,.gray:hover,.important:hover,.lighten:hover,.lighter:hover,.lightest:hover,.primary:hover,.secondary:hover,.special:hover,.success:hover,.warning:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger,.darken,.darker,.darkest,.gray,.gray-100,.gray-200,.gray-300,.gray-400,.gray-50,.gray-500,.gray-600,.gray-700,.gray-800,.gray-900,.gray-950,.important,.lighten,.lighter,.lightest,.primary,.secondary,.special,.success,.warning{--skin-text:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity));--skin-color:rgba(var(--skin-solid-rgb),1);--state-ring-color:var(--skin-color);--state-active-color:rgba(0,0,0,.1);--state-pressed-color:rgba(0,0,0,.1);--state-color:hsla(0,0%,100%,.1);--state-focus-color:rgba(0,0,0,.1)}.primary{--skin-solid-rgb:var(--color-primary-500-rgb)}.secondary{--skin-solid-rgb:var(--color-secondary-500-rgb)}.success{--skin-solid-rgb:var(--color-success-500-rgb)}.warning{--skin-solid-rgb:var(--color-warning-500-rgb)}.danger{--skin-solid-rgb:var(--color-danger-500-rgb)}.important{--skin-solid-rgb:var(--color-important-500-rgb)}.special{--skin-solid-rgb:var(--color-special-500-rgb)}.gray-50{--skin-bg:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-100{--skin-solid-rgb:var(--color-gray-100-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-200,.lightest{--skin-solid-rgb:var(--color-gray-200-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-300,.lighter{--skin-solid-rgb:var(--color-gray-300-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-400,.lighten{--skin-solid-rgb:var(--color-gray-400-rgb)}.gray,.gray-500{--skin-solid-rgb:var(--color-gray-500-rgb)}.darken,.gray-600{--skin-solid-rgb:var(--color-gray-600-rgb)}.darker,.gray-700{--skin-solid-rgb:var(--color-gray-700-rgb)}.darkest,.gray-800{--skin-solid-rgb:var(--color-gray-800-rgb)}.gray-900{--skin-solid-rgb:var(--color-gray-900-rgb)}.gray-950{--skin-solid-rgb:var(--color-gray-950-rgb)}.danger-pale,.gray-100-pale,.gray-200-pale,.gray-300-pale,.gray-400-pale,.gray-50-pale,.gray-500-pale,.gray-600-pale,.gray-700-pale,.gray-800-pale,.gray-900-pale,.gray-950-pale,.gray-pale,.important-pale,.pale,.primary-pale,.secondary-pale,.special-pale,.success-pale,.warning-pale{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-pale:hover,.gray-100-pale:hover,.gray-200-pale:hover,.gray-300-pale:hover,.gray-400-pale:hover,.gray-50-pale:hover,.gray-500-pale:hover,.gray-600-pale:hover,.gray-700-pale:hover,.gray-800-pale:hover,.gray-900-pale:hover,.gray-950-pale:hover,.gray-pale:hover,.important-pale:hover,.pale:hover,.primary-pale:hover,.secondary-pale:hover,.special-pale:hover,.success-pale:hover,.warning-pale:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-pale,.gray-100-pale,.gray-200-pale,.gray-300-pale,.gray-400-pale,.gray-50-pale,.gray-500-pale,.gray-600-pale,.gray-700-pale,.gray-800-pale,.gray-900-pale,.gray-950-pale,.gray-pale,.important-pale,.pale,.primary-pale,.secondary-pale,.special-pale,.success-pale,.warning-pale{--skin-color:rgba(var(--skin-pale-rgb),.1);--skin-text:rgba(var(--skin-pale-rgb),1);--state-color:rgba(var(--skin-pale-rgb),.1)}.pale{--skin-pale-rgb:var(--color-gray-500-rgb)}.primary-pale{--skin-pale-rgb:var(--color-primary-500-rgb)}.secondary-pale{--skin-pale-rgb:var(--color-secondary-500-rgb)}.success-pale{--skin-pale-rgb:var(--color-success-500-rgb)}.warning-pale{--skin-pale-rgb:var(--color-warning-500-rgb)}.danger-pale{--skin-pale-rgb:var(--color-danger-500-rgb)}.important-pale{--skin-pale-rgb:var(--color-important-500-rgb)}.special-pale{--skin-pale-rgb:var(--color-special-500-rgb)}.gray-50-pale{--skin-pale-rgb:var(--color-gray-50-rgb);--skin-text:var(--color-gray-400)}.gray-100-pale{--skin-pale-rgb:var(--color-gray-100-rgb);--skin-text:var(--color-gray-400)}.gray-200-pale{--skin-pale-rgb:var(--color-gray-200-rgb);--skin-text:var(--color-gray-400)}.gray-300-pale{--skin-pale-rgb:var(--color-gray-300-rgb);--skin-text:var(--color-gray-500)}.gray-400-pale{--skin-pale-rgb:var(--color-gray-400-rgb);--skin-text:var(--color-gray-500)}.gray-500-pale,.gray-pale{--skin-pale-rgb:var(--color-gray-500-rgb)}.gray-600-pale{--skin-pale-rgb:var(--color-gray-600-rgb)}.gray-700-pale{--skin-pale-rgb:var(--color-gray-700-rgb)}.gray-800-pale{--skin-pale-rgb:var(--color-gray-800-rgb)}.gray-900-pale{--skin-pale-rgb:var(--color-gray-900-rgb)}.gray-950-pale{--skin-pale-rgb:var(--color-gray-950-rgb)}.danger-outline,.gray-300-outline,.gray-400-outline,.gray-600-outline,.gray-outline,.important-outline,.outline,.primary-outline,.secondary-outline,.special-outline,.success-outline,.warning-outline{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-outline:hover,.gray-300-outline:hover,.gray-400-outline:hover,.gray-600-outline:hover,.gray-outline:hover,.important-outline:hover,.outline:hover,.primary-outline:hover,.secondary-outline:hover,.special-outline:hover,.success-outline:hover,.warning-outline:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-outline,.gray-300-outline,.gray-400-outline,.gray-600-outline,.gray-outline,.important-outline,.outline,.primary-outline,.secondary-outline,.special-outline,.success-outline,.warning-outline{--skin-text:var(--skin-color,inherit);--skin-bg:transparent;--skin-color:rgba(var(--skin-outline-rgb),1);--state-color:rgba(var(--skin-outline-rgb),.1)}.outline{--skin-outline-rgb:var(--color-fore-rgb)}.primary-outline{--skin-outline-rgb:var(--color-primary-500-rgb)}.secondary-outline{--skin-outline-rgb:var(--color-secondary-500-rgb)}.success-outline{--skin-outline-rgb:var(--color-success-500-rgb)}.warning-outline{--skin-outline-rgb:var(--color-warning-500-rgb)}.danger-outline{--skin-outline-rgb:var(--color-danger-500-rgb)}.important-outline{--skin-outline-rgb:var(--color-important-500-rgb)}.special-outline{--skin-outline-rgb:var(--color-special-500-rgb)}.gray-300-outline{--skin-text:var(--color-gray-500);--skin-outline-rgb:var(--color-gray-300-rgb)}.gray-400-outline{--skin-text:var(--color-gray-500);--skin-outline-rgb:var(--color-gray-400-rgb)}.gray-outline{--skin-outline-rgb:var(--color-gray-500-rgb)}.gray-600-outline{--skin-outline-rgb:var(--color-gray-600-rgb)}.danger-ghost,.ghost,.important-ghost,.primary-ghost,.secondary-ghost,.special-ghost,.success-ghost,.warning-ghost{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-ghost:hover,.ghost:hover,.important-ghost:hover,.primary-ghost:hover,.secondary-ghost:hover,.special-ghost:hover,.success-ghost:hover,.warning-ghost:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-ghost,.ghost,.important-ghost,.primary-ghost,.secondary-ghost,.special-ghost,.success-ghost,.warning-ghost{--tw-ring-opacity:0;--tw-bg-opacity:0;--skin-text:var(--skin-color,inherit);--skin-bg:transparent;--skin-ring:transparent;--skin-color:rgba(var(--skin-ghost-rgb),1);--state-color:rgba(var(--skin-ghost-rgb),.1)}.ghost{--skin-ghost-rgb:var(--color-fore-rgb);--skin-text:inherit}.primary-ghost{--skin-ghost-rgb:var(--color-primary-500-rgb)}.secondary-ghost{--skin-ghost-rgb:var(--color-secondary-500-rgb)}.success-ghost{--skin-ghost-rgb:var(--color-success-500-rgb)}.warning-ghost{--skin-ghost-rgb:var(--color-warning-500-rgb)}.danger-ghost{--skin-ghost-rgb:var(--color-danger-500-rgb)}.important-ghost{--skin-ghost-rgb:var(--color-important-500-rgb)}.special-ghost{--skin-ghost-rgb:var(--color-special-500-rgb)}.font-sans{font-family:-apple-system,Noto Sans,Helvetica Neue,Helvetica,Nimbus Sans L,Arial,Liberation Sans,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,Source Han Sans CN,Microsoft YaHei,Wenquanyi Micro Hei,WenQuanYi Zen Hei,ST Heiti,SimHei,WenQuanYi Zen Hei Sharp,sans-serif}.font-serif{font-family:Nimbus Roman No9 L,Songti SC,Noto Serif CJK SC,Source Han Serif SC,Source Han Serif CN,STSong,AR PL New Sung,AR PL SungtiL GB,NSimSun,SimSun,TW-Sung,WenQuanYi Bitmap Song,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR PL UMing TW MBE,PMingLiU,MingLiU,serif}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-root{font-size:16px}.text-sm{font-size:.75rem;line-height:1rem}.text-base{font-size:.8125rem;line-height:1.25rem}.text-md{font-size:.875rem;line-height:1.3rem}.text-lg{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.125rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-thin{font-weight:100}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-black{font-weight:900}.leading-3{line-height:.75rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-9{line-height:2.25rem}.leading-10{line-height:2.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-loose{line-height:2}.line-1{-webkit-line-clamp:1}.line-1,.line-2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-2{-webkit-line-clamp:2}.line-3{-webkit-line-clamp:3}.line-3,.line-4{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-4{-webkit-line-clamp:4}.line-5{-webkit-line-clamp:5}.line-5,.line-6{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-6{-webkit-line-clamp:6}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.align-bottom{vertical-align:bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.text-primary{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.text-secondary{--tw-text-opacity:1;color:rgba(var(--color-secondary-500-rgb),var(--tw-text-opacity))}.text-success{--tw-text-opacity:1;color:rgba(var(--color-success-500-rgb),var(--tw-text-opacity))}.text-warning{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.text-danger{--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity))}.text-important{--tw-text-opacity:1;color:rgba(var(--color-important-500-rgb),var(--tw-text-opacity))}.text-special{--tw-text-opacity:1;color:rgba(var(--color-special-500-rgb),var(--tw-text-opacity))}.text-primary-50{--tw-text-opacity:1;color:rgba(var(--color-primary-50-rgb),var(--tw-text-opacity))}.text-primary-100{--tw-text-opacity:1;color:rgba(var(--color-primary-100-rgb),var(--tw-text-opacity))}.text-primary-200{--tw-text-opacity:1;color:rgba(var(--color-primary-200-rgb),var(--tw-text-opacity))}.text-primary-300{--tw-text-opacity:1;color:rgba(var(--color-primary-300-rgb),var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgba(var(--color-primary-400-rgb),var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgba(var(--color-primary-600-rgb),var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgba(var(--color-primary-700-rgb),var(--tw-text-opacity))}.text-primary-800{--tw-text-opacity:1;color:rgba(var(--color-primary-800-rgb),var(--tw-text-opacity))}.text-primary-900{--tw-text-opacity:1;color:rgba(var(--color-primary-900-rgb),var(--tw-text-opacity))}.text-primary-950{--tw-text-opacity:1;color:rgba(var(--color-primary-950-rgb),var(--tw-text-opacity))}.text-secondary-50{--tw-text-opacity:1;color:rgba(var(--color-secondary-50-rgb),var(--tw-text-opacity))}.text-secondary-100{--tw-text-opacity:1;color:rgba(var(--color-secondary-100-rgb),var(--tw-text-opacity))}.text-secondary-200{--tw-text-opacity:1;color:rgba(var(--color-secondary-200-rgb),var(--tw-text-opacity))}.text-secondary-300{--tw-text-opacity:1;color:rgba(var(--color-secondary-300-rgb),var(--tw-text-opacity))}.text-secondary-400{--tw-text-opacity:1;color:rgba(var(--color-secondary-400-rgb),var(--tw-text-opacity))}.text-secondary-500{--tw-text-opacity:1;color:rgba(var(--color-secondary-500-rgb),var(--tw-text-opacity))}.text-secondary-600{--tw-text-opacity:1;color:rgba(var(--color-secondary-600-rgb),var(--tw-text-opacity))}.text-secondary-700{--tw-text-opacity:1;color:rgba(var(--color-secondary-700-rgb),var(--tw-text-opacity))}.text-secondary-800{--tw-text-opacity:1;color:rgba(var(--color-secondary-800-rgb),var(--tw-text-opacity))}.text-secondary-900{--tw-text-opacity:1;color:rgba(var(--color-secondary-900-rgb),var(--tw-text-opacity))}.text-secondary-950{--tw-text-opacity:1;color:rgba(var(--color-secondary-950-rgb),var(--tw-text-opacity))}.text-gray-50{--tw-text-opacity:1;color:rgba(var(--color-gray-50-rgb),var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(var(--color-gray-100-rgb),var(--tw-text-opacity))}.text-gray-200,.text-lightest{--tw-text-opacity:1;color:rgba(var(--color-gray-200-rgb),var(--tw-text-opacity))}.text-gray-300,.text-lighter{--tw-text-opacity:1;color:rgba(var(--color-gray-300-rgb),var(--tw-text-opacity))}.text-gray-400,.text-lighten{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.text-gray,.text-gray-500{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.text-darken,.text-gray-600{--tw-text-opacity:1;color:rgba(var(--color-gray-600-rgb),var(--tw-text-opacity))}.text-darker,.text-gray-700{--tw-text-opacity:1;color:rgba(var(--color-gray-700-rgb),var(--tw-text-opacity))}.text-darkest,.text-gray-800{--tw-text-opacity:1;color:rgba(var(--color-gray-800-rgb),var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(var(--color-gray-900-rgb),var(--tw-text-opacity))}.text-gray-950{--tw-text-opacity:1;color:rgba(var(--color-gray-950-rgb),var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(var(--color-white-rgb),var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgba(var(--color-black-rgb),var(--tw-text-opacity))}.text-transparent{color:transparent}.text-canvas{--tw-text-opacity:1;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.text-surface-light{--tw-text-opacity:1;color:rgba(var(--color-surface-light-rgb),var(--tw-text-opacity))}.text-surface{--tw-text-opacity:1;color:rgba(var(--color-surface-rgb),var(--tw-text-opacity))}.text-surface-strong{--tw-text-opacity:1;color:rgba(var(--color-surface-strong-rgb),var(--tw-text-opacity))}.text-inverse{--tw-text-opacity:1;color:rgba(var(--color-inverse-rgb),var(--tw-text-opacity))}.text-fore-in-light{--tw-text-opacity:1;color:rgba(var(--color-fore-in-light-rgb),var(--tw-text-opacity))}.text-fore-in-dark{--tw-text-opacity:1;color:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity))}.text-fore{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}.text-focus{--tw-text-opacity:1;color:rgba(var(--color-focus-rgb),var(--tw-text-opacity))}.text-link{--tw-text-opacity:1;color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}.text-link-hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}.text-current{color:currentColor}.text-inherit{color:inherit}.clip,.ellipsis,.text-clip,.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clip,.text-clip{text-overflow:clip}.nowrap,.whitespace-nowrap{white-space:nowrap}.pre,.whitespace-pre{white-space:pre}.pre-line,.whitespace-pre-line{white-space:pre-line}.pre-wrap,.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-opacity-0{--tw-text-opacity:0}.text-opacity-5{--tw-text-opacity:.05}.text-opacity-10{--tw-text-opacity:.1}.text-opacity-20{--tw-text-opacity:.2}.text-opacity-25{--tw-text-opacity:.25}.text-opacity-30{--tw-text-opacity:.3}.text-opacity-40{--tw-text-opacity:.4}.text-opacity-50{--tw-text-opacity:.5}.text-opacity-60{--tw-text-opacity:.6}.text-opacity-70{--tw-text-opacity:.7}.text-opacity-80{--tw-text-opacity:.8}.text-opacity-90{--tw-text-opacity:.9}.text-opacity-95{--tw-text-opacity:.95}.text-opacity-100{--tw-text-opacity:1}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.list-unstyled{list-style-type:none;padding-left:0}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.bg-primary{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity))}.bg-secondary{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-500-rgb),var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity:1;background-color:rgba(var(--color-success-500-rgb),var(--tw-bg-opacity))}.bg-warning{--tw-bg-opacity:1;background-color:rgba(var(--color-warning-500-rgb),var(--tw-bg-opacity))}.bg-danger{--tw-bg-opacity:1;background-color:rgba(var(--color-danger-500-rgb),var(--tw-bg-opacity))}.bg-important{--tw-bg-opacity:1;background-color:rgba(var(--color-important-500-rgb),var(--tw-bg-opacity))}.bg-special{--tw-bg-opacity:1;background-color:rgba(var(--color-special-500-rgb),var(--tw-bg-opacity))}.bg-primary-50{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity))}.bg-primary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-200-rgb),var(--tw-bg-opacity))}.bg-primary-300{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-300-rgb),var(--tw-bg-opacity))}.bg-primary-400{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-400-rgb),var(--tw-bg-opacity))}.bg-primary-500{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600-rgb),var(--tw-bg-opacity))}.bg-primary-700{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-700-rgb),var(--tw-bg-opacity))}.bg-primary-800{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-800-rgb),var(--tw-bg-opacity))}.bg-primary-900{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900-rgb),var(--tw-bg-opacity))}.bg-primary-950{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-950-rgb),var(--tw-bg-opacity))}.bg-secondary-50{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-50-rgb),var(--tw-bg-opacity))}.bg-secondary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-100-rgb),var(--tw-bg-opacity))}.bg-secondary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-200-rgb),var(--tw-bg-opacity))}.bg-secondary-300{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-300-rgb),var(--tw-bg-opacity))}.bg-secondary-400{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-400-rgb),var(--tw-bg-opacity))}.bg-secondary-500{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-500-rgb),var(--tw-bg-opacity))}.bg-secondary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-600-rgb),var(--tw-bg-opacity))}.bg-secondary-700{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-700-rgb),var(--tw-bg-opacity))}.bg-secondary-800{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-800-rgb),var(--tw-bg-opacity))}.bg-secondary-900{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-900-rgb),var(--tw-bg-opacity))}.bg-secondary-950{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-950-rgb),var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity))}.bg-gray-200,.bg-lightest{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-200-rgb),var(--tw-bg-opacity))}.bg-gray-300,.bg-lighter{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-300-rgb),var(--tw-bg-opacity))}.bg-gray-400,.bg-light{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-400-rgb),var(--tw-bg-opacity))}.bg-gray,.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-500-rgb),var(--tw-bg-opacity))}.bg-darken,.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-600-rgb),var(--tw-bg-opacity))}.bg-darker,.bg-gray-700{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-700-rgb),var(--tw-bg-opacity))}.bg-darkest,.bg-gray-800{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-800-rgb),var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-900-rgb),var(--tw-bg-opacity))}.bg-gray-950{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-950-rgb),var(--tw-bg-opacity))}.bg-canvas{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.bg-surface-light{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity))}.bg-surface{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.bg-surface-strong{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-strong-rgb),var(--tw-bg-opacity))}.bg-inverse{--tw-bg-opacity:1;background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity))}.bg-fore-in-light{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-in-light-rgb),var(--tw-bg-opacity))}.bg-fore-in-dark{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-in-dark-rgb),var(--tw-bg-opacity))}.bg-fore{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity))}.bg-focus{--tw-bg-opacity:1;background-color:rgba(var(--color-focus-rgb),var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(var(--color-white-rgb),var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(var(--color-black-rgb),var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-current{background-color:currentColor}.bg-inherit{background-color:inherit}.bg-none{background-image:none}.bg-opacity-0{--tw-bg-opacity:0}.bg-opacity-5{--tw-bg-opacity:.05}.bg-opacity-10{--tw-bg-opacity:.1}.bg-opacity-20{--tw-bg-opacity:.2}.bg-opacity-30{--tw-bg-opacity:.3}.bg-opacity-40{--tw-bg-opacity:.4}.bg-opacity-50{--tw-bg-opacity:.5}.bg-opacity-60{--tw-bg-opacity:.6}.bg-opacity-70{--tw-bg-opacity:.7}.bg-opacity-80{--tw-bg-opacity:.8}.bg-opacity-90{--tw-bg-opacity:.9}.bg-opacity-100{--tw-bg-opacity:1}.bg-auto{background-size:auto}.bg-cover{background-size:cover}.bg-contain{background-size:contain}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-bottom{background-position:bottom}.bg-center{background-position:50%}.bg-left{background-position:0}.bg-left-bottom{background-position:0 100%}.bg-left-top{background-position:0 0}.bg-right{background-position:100%}.bg-right-bottom{background-position:100% 100%}.bg-right-top{background-position:100% 0}.bg-top{background-position:top}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.divider{align-self:stretch;border-color:currentColor;border-left-width:1px;border-top-width:1px;opacity:.1}.border-0{border-width:0}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-t{border-top-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-t-0{border-top-width:0}.border-r-0{border-right-width:0}.border-b-0{border-bottom-width:0}.border-l-0{border-left-width:0}.border-t-2{border-top-width:2px}.border-l-2{border-left-width:2px}.border-r-2{border-right-width:2px}.border-b-2{border-bottom-width:2px}.border-t-4{border-top-width:4px}.border-l-4{border-left-width:4px}.border-r-4{border-right-width:4px}.border-b-4{border-bottom-width:4px}.border-light{--tw-border-opacity:1;border-color:rgba(var(--color-border-light-rgb),var(--tw-border-opacity))}.border-strong{--tw-border-opacity:1;border-color:rgba(var(--color-border-strong-rgb),var(--tw-border-opacity))}.border-primary{--tw-border-opacity:1;border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity))}.border-secondary{--tw-border-opacity:1;border-color:rgba(var(--color-secondary-500-rgb),var(--tw-border-opacity))}.border-success{--tw-border-opacity:1;border-color:rgba(var(--color-success-500-rgb),var(--tw-border-opacity))}.border-warning{--tw-border-opacity:1;border-color:rgba(var(--color-warning-500-rgb),var(--tw-border-opacity))}.border-danger{--tw-border-opacity:1;border-color:rgba(var(--color-danger-500-rgb),var(--tw-border-opacity))}.border-important{--tw-border-opacity:1;border-color:rgba(var(--color-important-500-rgb),var(--tw-border-opacity))}.border-special{--tw-border-opacity:1;border-color:rgba(var(--color-special-500-rgb),var(--tw-border-opacity))}.border-gray-50{--tw-border-opacity:1;border-color:rgba(var(--color-gray-50-rgb),var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgba(var(--color-gray-100-rgb),var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(var(--color-gray-200-rgb),var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(var(--color-gray-300-rgb),var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity))}.border-gray,.border-gray-500{--tw-border-opacity:1;border-color:rgba(var(--color-gray-500-rgb),var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgba(var(--color-gray-600-rgb),var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity:1;border-color:rgba(var(--color-gray-700-rgb),var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgba(var(--color-gray-800-rgb),var(--tw-border-opacity))}.border-gray-900{--tw-border-opacity:1;border-color:rgba(var(--color-gray-900-rgb),var(--tw-border-opacity))}.border-gray-950{--tw-border-opacity:1;border-color:rgba(var(--color-gray-950-rgb),var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgba(var(--color-white-rgb),var(--tw-border-opacity))}.border-black{--tw-border-opacity:1;border-color:rgba(var(--color-black-rgb),var(--tw-border-opacity))}.border-canvas{--tw-border-opacity:1;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity))}.border-surface-light{--tw-border-opacity:1;border-color:rgba(var(--color-surface-light-rgb),var(--tw-border-opacity))}.border-surface{--tw-border-opacity:1;border-color:rgba(var(--color-surface-rgb),var(--tw-border-opacity))}.border-surface-strong{--tw-border-opacity:1;border-color:rgba(var(--color-surface-strong-rgb),var(--tw-border-opacity))}.border-inverse{--tw-border-opacity:1;border-color:rgba(var(--color-inverse-rgb),var(--tw-border-opacity))}.border-fore-in-light{--tw-border-opacity:1;border-color:rgba(var(--color-fore-in-light-rgb),var(--tw-border-opacity))}.border-fore-in-dark{--tw-border-opacity:1;border-color:rgba(var(--color-fore-in-dark-rgb),var(--tw-border-opacity))}.border-fore{--tw-border-opacity:1;border-color:rgba(var(--color-fore-rgb),var(--tw-border-opacity))}.border-focus{--tw-border-opacity:1;border-color:rgba(var(--color-focus-rgb),var(--tw-border-opacity))}.border-link{--tw-border-opacity:1;border-color:rgba(var(--color-link-rgb),var(--tw-border-opacity))}.border-link-hover{--tw-border-opacity:1;border-color:rgba(var(--color-link-hover-rgb),var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-current{border-color:currentColor}.border-inherit{border-color:inherit}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-opacity-0{--tw-border-opacity:0}.border-opacity-5{--tw-border-opacity:.05}.border-opacity-10{--tw-border-opacity:.1}.border-opacity-20{--tw-border-opacity:.2}.border-opacity-25{--tw-border-opacity:.25}.border-opacity-30{--tw-border-opacity:.3}.border-opacity-40{--tw-border-opacity:.4}.border-opacity-50{--tw-border-opacity:.5}.border-opacity-60{--tw-border-opacity:.6}.border-opacity-70{--tw-border-opacity:.7}.border-opacity-80{--tw-border-opacity:.8}.border-opacity-90{--tw-border-opacity:.9}.border-opacity-95{--tw-border-opacity:.95}.border-opacity-100{--tw-border-opacity:1}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.circle,.rounded-full{border-radius:var(--radius-full)}.rounded-l-none{border-bottom-left-radius:var(--radius-none);border-top-left-radius:var(--radius-none)}.rounded-t-none{border-top-left-radius:var(--radius-none)}.rounded-r-none,.rounded-t-none{border-top-right-radius:var(--radius-none)}.rounded-b-none,.rounded-r-none{border-bottom-right-radius:var(--radius-none)}.rounded-b-none{border-bottom-left-radius:var(--radius-none)}.rounded-br-none{border-bottom-right-radius:var(--radius-none)}.rounded-bl-none{border-bottom-left-radius:var(--radius-none)}.rounded-tr-none{border-top-right-radius:var(--radius-none)}.rounded-tl-none{border-top-left-radius:var(--radius-none)}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-border-light{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-light-rgb),var(--tw-ring-opacity))}.ring-border{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity))}.ring-border-strong{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-strong-rgb),var(--tw-ring-opacity))}.ring-light{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05}.ring-gray{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.1}.ring-dark{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.2}.ring-darker{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.3}.ring-darkest{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.5}.ring-primary{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-500-rgb),var(--tw-ring-opacity))}.ring-secondary{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-secondary-500-rgb),var(--tw-ring-opacity))}.ring-warning{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-warning-500-rgb),var(--tw-ring-opacity))}.ring-success{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-success-500-rgb),var(--tw-ring-opacity))}.ring-danger{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-danger-500-rgb),var(--tw-ring-opacity))}.ring-important{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-important-500-rgb),var(--tw-ring-opacity))}.ring-special{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-special-500-rgb),var(--tw-ring-opacity))}.ring-gray-50{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-50-rgb),var(--tw-ring-opacity))}.ring-gray-100{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-100-rgb),var(--tw-ring-opacity))}.ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-200-rgb),var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-300-rgb),var(--tw-ring-opacity))}.ring-gray-400{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-400-rgb),var(--tw-ring-opacity))}.ring-gray-500{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-500-rgb),var(--tw-ring-opacity))}.ring-gray-600{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-600-rgb),var(--tw-ring-opacity))}.ring-gray-700{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-700-rgb),var(--tw-ring-opacity))}.ring-gray-800{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-800-rgb),var(--tw-ring-opacity))}.ring-gray-900{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-900-rgb),var(--tw-ring-opacity))}.ring-gray-950{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-950-rgb),var(--tw-ring-opacity))}.ring-inverse{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity))}.ring-canvas{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-canvas-rgb),var(--tw-ring-opacity))}.ring-surface{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-rgb),var(--tw-ring-opacity))}.ring-fore{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-fore-rgb),var(--tw-ring-opacity))}.ring-transparent{--tw-ring-color:transparent}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-black-rgb),var(--tw-ring-opacity))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-white-rgb),var(--tw-ring-opacity))}.ring-inherit{--tw-ring-color:inherit}.ring-current{--tw-ring-color:currentColor}.ring-opacity-0{--tw-ring-opacity:0}.ring-opacity-5{--tw-ring-opacity:.05}.ring-opacity-10{--tw-ring-opacity:.1}.ring-opacity-20{--tw-ring-opacity:.2}.ring-opacity-30{--tw-ring-opacity:.3}.ring-opacity-40{--tw-ring-opacity:.4}.ring-opacity-50{--tw-ring-opacity:.5}.ring-opacity-60{--tw-ring-opacity:.6}.ring-opacity-70{--tw-ring-opacity:.7}.ring-opacity-80{--tw-ring-opacity:.8}.ring-opacity-90{--tw-ring-opacity:.9}.ring-opacity-100{--tw-ring-opacity:1}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-0,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-3{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-3,.ring-4{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-8{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-offset-0{--tw-ring-offset-width:0px}.ring-offset-1{--tw-ring-offset-width:1px}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-4{--tw-ring-offset-width:4px}.ring-offset-8{--tw-ring-offset-width:8px}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color)}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 2px 6px -1px rgba(0,0,0,.2),0 1px 4px -2px rgba(0,0,0,.15);--tw-shadow-colored:0 2px 6px -1px var(--tw-shadow-color),0 1px 4px -2px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 5px 15px -3px rgba(0,0,0,.2),0 2px 6px -4px rgba(0,0,0,.15);--tw-shadow-colored:0 5px 15px -3px var(--tw-shadow-color),0 2px 6px -4px var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color)}.shadow-2xl,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--tw-shadow-colored:0 10px 50px -10px var(--tw-shadow-color),0 8px 20px -10px var(--tw-shadow-color)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color)}.shadow-inner,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.muted{opacity:var(--opacity-muted)}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.blur-none{--tw-blur:blur(0)}.blur-none,.blur-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-sm{--tw-blur:blur(4px)}.blur{--tw-blur:blur(8px)}.blur,.blur-md{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-md{--tw-blur:blur(12px)}.blur-lg{--tw-blur:blur(16px)}.blur-lg,.blur-xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-xl{--tw-blur:blur(24px)}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter-none{filter:none!important}.drop-shadow-none{--tw-drop-shadow:drop-shadow(0 0 #0000)}.drop-shadow-none,.drop-shadow-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgba(0,0,0,.05))}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.drop-shadow-md{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}.drop-shadow-lg{--tw-drop-shadow:drop-shadow(0 10px 8px rgba(0,0,0,.04)) drop-shadow(0 4px 3px rgba(0,0,0,.1))}.drop-shadow-lg,.drop-shadow-xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-xl{--tw-drop-shadow:drop-shadow(0 20px 13px rgba(0,0,0,.03)) drop-shadow(0 8px 5px rgba(0,0,0,.08))}.drop-shadow-2xl{--tw-drop-shadow:drop-shadow(0 25px 25px rgba(0,0,0,.15));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-none{--tw-backdrop-blur:blur(0)}.backdrop-blur-none,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.backdrop-blur-lg,.backdrop-blur-xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(40px)}.backdrop-blur-2xl,.backdrop-blur-3xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(64px)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fade,.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{opacity:0;transition-duration:.15s;transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{--tw-scale-x:.9;--tw-scale-y:.9}.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-bottom{--tw-translate-y:25%}.fade-from-top{--tw-translate-y:-25%}.fade-from-left,.fade-from-top{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-left{--tw-translate-x:-25%}.fade-from-right{--tw-translate-x:25%}.fade-from-bottom.in,.fade-from-center.in,.fade-from-left.in,.fade-from-right,.fade-from-right.in,.fade-from-top.in,.fade.in{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-bottom.in,.fade-from-center.in,.fade-from-left.in,.fade-from-right.in,.fade-from-top.in,.fade.in{--tw-translate-x:0px;--tw-translate-y:0px;--tw-scale-x:1;--tw-scale-y:1;opacity:1}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-1000{transition-duration:1s}@keyframes -spin{to{transform:rotate(1turn)}}.animate-spin,.spin{animation:-spin 1s linear infinite}@keyframes -ping{75%,to{opacity:0;transform:scale(2)}}.animate-ping,.ping{animation:-ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes -pulse{50%{opacity:.5}}.animate-pulse,.pulse{animation:-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes -bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-bounce,.bounce{animation:-bounce 1s infinite}.scale-0{--tw-scale-x:0;--tw-scale-y:0}.scale-0,.scale-50{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-50{--tw-scale-x:.5;--tw-scale-y:.5}.scale-75{--tw-scale-x:.75;--tw-scale-y:.75}.scale-75,.scale-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-100,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.scale-105,.scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}.scale-125,.scale-150{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-150{--tw-scale-x:1.5;--tw-scale-y:1.5}.flip-x{--tw-scale-x:-1}.flip-x,.flip-y{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flip-y{--tw-scale-y:-1}.rotate-0{--tw-rotate:0deg}.rotate-0,.rotate-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-1{--tw-rotate:1deg}.rotate-2{--tw-rotate:2deg}.rotate-2,.rotate-3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-3{--tw-rotate:3deg}.rotate-6{--tw-rotate:6deg}.rotate-12,.rotate-6{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-12{--tw-rotate:12deg}.rotate-45{--tw-rotate:45deg}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.rotate-135{--tw-rotate:135deg}.rotate-135,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.rotate-270{--tw-rotate:270deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.basis-0{flex-basis:0px}.basis-1{flex-basis:0.25rem}.basis-2{flex-basis:0.5rem}.basis-3{flex-basis:0.75rem}.basis-4{flex-basis:1rem}.basis-5{flex-basis:1.25rem}.basis-6{flex-basis:1.5rem}.basis-7{flex-basis:1.75rem}.basis-8{flex-basis:2rem}.basis-9{flex-basis:2.25rem}.basis-10{flex-basis:2.5rem}.basis-11{flex-basis:2.75rem}.basis-12{flex-basis:3rem}.basis-14{flex-basis:3.5rem}.basis-16{flex-basis:4rem}.basis-20{flex-basis:5rem}.basis-24{flex-basis:6rem}.basis-28{flex-basis:7rem}.basis-32{flex-basis:8rem}.basis-36{flex-basis:9rem}.basis-40{flex-basis:10rem}.basis-44{flex-basis:11rem}.basis-48{flex-basis:12rem}.basis-52{flex-basis:13rem}.basis-56{flex-basis:14rem}.basis-60{flex-basis:15rem}.basis-64{flex-basis:16rem}.basis-72{flex-basis:18rem}.basis-80{flex-basis:20rem}.basis-96{flex-basis:24rem}.basis-auto{flex-basis:auto}.basis-px{flex-basis:1px}.basis-0\.5{flex-basis:0.125rem}.basis-1\.5{flex-basis:0.375rem}.basis-2\.5{flex-basis:0.625rem}.basis-3\.5{flex-basis:0.875rem}.basis-1\/2{flex-basis:50%}.basis-1\/3{flex-basis:33.333333%}.basis-2\/3{flex-basis:66.666667%}.basis-1\/4{flex-basis:25%}.basis-2\/4{flex-basis:50%}.basis-3\/4{flex-basis:75%}.basis-1\/5{flex-basis:20%}.basis-2\/5{flex-basis:40%}.basis-3\/5{flex-basis:60%}.basis-4\/5{flex-basis:80%}.basis-1\/6{flex-basis:16.666667%}.basis-2\/6{flex-basis:33.333333%}.basis-3\/6{flex-basis:50%}.basis-4\/6{flex-basis:66.666667%}.basis-5\/6{flex-basis:83.333333%}.basis-1\/12{flex-basis:8.333333%}.basis-2\/12{flex-basis:16.666667%}.basis-3\/12{flex-basis:25%}.basis-4\/12{flex-basis:33.333333%}.basis-5\/12{flex-basis:41.666667%}.basis-6\/12{flex-basis:50%}.basis-7\/12{flex-basis:58.333333%}.basis-8\/12{flex-basis:66.666667%}.basis-9\/12{flex-basis:75%}.basis-10\/12{flex-basis:83.333333%}.basis-11\/12{flex-basis:91.666667%}.basis-full{flex-basis:100%}.row{display:flex;flex-direction:row}.center,.col{display:flex;flex-direction:column}.center,.center-row{align-items:center;justify-content:center}.center-row{display:flex;flex-direction:row}.center-x,.center-y{align-items:center;display:flex}.center-y{flex-direction:column}.row-reverse{display:flex;flex-direction:row-reverse}.col-reverse{display:flex;flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.grow{flex-grow:1!important}.grow-0{flex-grow:0!important}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.order-first{order:-9999}.order-last{order:9999}.order-none{order:0}.gap-0{gap:0}.gap-x-0{-moz-column-gap:0;column-gap:0}.gap-y-0{row-gap:0}.gap-px{gap:1px}.gap-x-px{-moz-column-gap:1px;column-gap:1px}.gap-y-px{row-gap:1px}.gap-0\.5{gap:.125rem}.gap-x-0\.5{-moz-column-gap:.125rem;column-gap:.125rem}.gap-y-0\.5{row-gap:.125rem}.gap-3px{gap:3px}.gap-1{gap:.25rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-y-1{row-gap:.25rem}.gap-1\.5{gap:.375rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-y-1\.5{row-gap:.375rem}.gap-2{gap:.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-2{row-gap:.5rem}.gap-2\.5{gap:.625rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-y-2\.5{row-gap:.625rem}.gap-3{gap:.75rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-3{row-gap:.75rem}.gap-3\.5{gap:.875rem}.gap-x-3\.5{-moz-column-gap:.875rem;column-gap:.875rem}.gap-y-3\.5{row-gap:.875rem}.gap-4{gap:1rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-4{row-gap:1rem}.gap-5{gap:1.25rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-5{row-gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-6{row-gap:1.5rem}.gap-7{gap:1.75rem}.gap-x-7{-moz-column-gap:1.75rem;column-gap:1.75rem}.gap-y-7{row-gap:1.75rem}.gap-8{gap:2rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-8{row-gap:2rem}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}@font-face{font-display:fallback;font-family:D-DIN-PRO;font-weight:400;src:url(./fonts/D-DIN-PRO-400-Regular.otf)}@font-face{font-display:fallback;font-family:D-DIN-PRO;font-weight:500;src:url(./fonts/D-DIN-PRO-700-Bold.otf)}.num{font-family:D-DIN-PRO;font-weight:400}@font-face{font-display:fallback;font-family:Nunito;font-weight:400;src:url(./fonts/Nunito-Regular.ttf)}@font-face{font-display:fallback;font-family:Nunito;font-weight:700;src:url(./fonts/Nunito-bold.ttf)}@font-face{font-display:fallback;font-family:Nunito;font-weight:300;src:url(./fonts/Nunito-Light.ttf)}.font-brand{font-family:Nunito;font-weight:400} \ No newline at end of file +/*! tailwindcss v3.3.6 | MIT License | https://tailwindcss.com*/*,:after,:before{border-color:rgb(var(--color-gray-200-rgb));border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:-apple-system,Noto Sans,Helvetica Neue,Helvetica,Nimbus Sans L,Arial,Liberation Sans,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,Source Han Sans CN,Microsoft YaHei,Wenquanyi Micro Hei,WenQuanYi Zen Hei,ST Heiti,SimHei,WenQuanYi Zen Hei Sharp,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:rgb(var(--color-gray-400-rgb));opacity:1}input::placeholder,textarea::placeholder{color:rgb(var(--color-gray-400-rgb));opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}:root{--screen-2xl:1720px;--color-gray-50:#fcfdfe;--color-gray-100:#eff1f3;--color-gray-200:#ebedf3;--color-gray-300:#d2d6e5;--color-gray-400:#b2b9c5;--color-gray-500:#64758b;--color-gray-600:#4a577f;--color-gray-700:#3d4667;--color-gray-800:#353d57;--color-gray-900:#30394a;--color-gray-950:#0b0f18;--color-gray-50-rgb:252,253,254;--color-gray-100-rgb:239,241,243;--color-gray-200-rgb:235,237,243;--color-gray-300-rgb:210,214,229;--color-gray-400-rgb:178,185,197;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:74,87,127;--color-gray-700-rgb:61,70,103;--color-gray-800-rgb:53,61,87;--color-gray-900-rgb:48,57,74;--color-gray-950-rgb:11,15,24;--color-primary-50:#eef6ff;--color-primary-100:#d9eaff;--color-primary-200:#bcdcff;--color-primary-300:#8ec6ff;--color-primary-400:#59a5ff;--color-primary-500:#3883fa;--color-primary-600:#2b67e5;--color-primary-700:#144ce1;--color-primary-800:#173db6;--color-primary-900:#19388f;--color-primary-950:#142457;--color-primary-50-rgb:238,246,255;--color-primary-100-rgb:217,234,255;--color-primary-200-rgb:188,220,255;--color-primary-300-rgb:142,198,255;--color-primary-400-rgb:89,165,255;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:43,103,229;--color-primary-700-rgb:20,76,225;--color-primary-800-rgb:23,61,182;--color-primary-900-rgb:25,56,143;--color-primary-950-rgb:20,36,87;--color-secondary-50:#e7f6ff;--color-secondary-100:#cdecff;--color-secondary-200:#9bd9ff;--color-secondary-300:#77cbff;--color-secondary-400:#60c2ff;--color-secondary-500:#37b2fe;--color-secondary-600:#18a6fd;--color-secondary-700:#1099ed;--color-secondary-800:#078ada;--color-secondary-900:#046bab;--color-secondary-950:#062a4b;--color-secondary-50-rgb:231,246,255;--color-secondary-100-rgb:205,236,255;--color-secondary-200-rgb:155,217,255;--color-secondary-300-rgb:119,203,255;--color-secondary-400-rgb:96,194,255;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:24,166,253;--color-secondary-700-rgb:16,153,237;--color-secondary-800-rgb:7,138,218;--color-secondary-900-rgb:4,107,171;--color-secondary-950-rgb:6,42,75;--color-success-50:#ecfff8;--color-success-100:#d0f6e8;--color-success-200:#b1ecd6;--color-success-300:#7adfba;--color-success-400:#48d1a0;--color-success-500:#22c98d;--color-success-600:#0dbb7d;--color-success-700:#0ca76f;--color-success-800:#0e8d60;--color-success-900:#186c4e;--color-success-50-rgb:236,255,248;--color-success-100-rgb:208,246,232;--color-success-200-rgb:177,236,214;--color-success-300-rgb:122,223,186;--color-success-400-rgb:72,209,160;--color-success-500-rgb:34,201,141;--color-success-600-rgb:13,187,125;--color-success-700-rgb:12,167,111;--color-success-800-rgb:14,141,96;--color-success-900-rgb:24,108,78;--color-warning-50:#fff4ea;--color-warning-100:#ffecdb;--color-warning-200:#ffd2a9;--color-warning-300:#ffbc7e;--color-warning-400:#ffaf65;--color-warning-500:#ff9f46;--color-warning-600:#f38f19;--color-warning-700:#ed8307;--color-warning-800:#d17100;--color-warning-900:#af5f01;--color-warning-50-rgb:255,244,234;--color-warning-100-rgb:255,236,219;--color-warning-200-rgb:255,210,169;--color-warning-300-rgb:255,188,126;--color-warning-400-rgb:255,175,101;--color-warning-500-rgb:255,159,70;--color-warning-600-rgb:243,143,25;--color-warning-700-rgb:237,131,7;--color-warning-800-rgb:209,113,0;--color-warning-900-rgb:175,95,1;--color-danger-50:#ffebeb;--color-danger-100:#ffd5d5;--color-danger-200:#ffb1b1;--color-danger-300:#ff9292;--color-danger-400:#ff7c7c;--color-danger-500:#fc5959;--color-danger-600:#fb2b2b;--color-danger-700:#d91b1b;--color-danger-800:#ba1313;--color-danger-900:#a20606;--color-danger-50-rgb:255,235,235;--color-danger-100-rgb:255,213,213;--color-danger-200-rgb:255,177,177;--color-danger-300-rgb:255,146,146;--color-danger-400-rgb:255,124,124;--color-danger-500-rgb:252,89,89;--color-danger-600-rgb:251,43,43;--color-danger-700-rgb:217,27,27;--color-danger-800-rgb:186,19,19;--color-danger-900-rgb:162,6,6;--color-important-50:#fff8f5;--color-important-100:#ffe2d9;--color-important-200:#ffcebf;--color-important-300:#ffb29b;--color-important-400:#ff8c68;--color-important-500:#ff8058;--color-important-600:#ff6f42;--color-important-700:#ff4912;--color-important-800:#c83509;--color-important-900:#611700;--color-important-50-rgb:255,248,245;--color-important-100-rgb:255,226,217;--color-important-200-rgb:255,206,191;--color-important-300-rgb:255,178,155;--color-important-400-rgb:255,140,104;--color-important-500-rgb:255,128,88;--color-important-600-rgb:255,111,66;--color-important-700-rgb:255,73,18;--color-important-800-rgb:200,53,9;--color-important-900-rgb:97,23,0;--color-special-50:#efecfa;--color-special-100:#e4dff7;--color-special-200:#c4b6ff;--color-special-300:#a38cff;--color-special-400:#8a6ff5;--color-special-500:#8166ee;--color-special-600:#7055df;--color-special-700:#513baa;--color-special-800:#452da5;--color-special-900:#30216e;--color-special-50-rgb:239,236,250;--color-special-100-rgb:228,223,247;--color-special-200-rgb:196,182,255;--color-special-300-rgb:163,140,255;--color-special-400-rgb:138,111,245;--color-special-500-rgb:129,102,238;--color-special-600-rgb:112,85,223;--color-special-700-rgb:81,59,170;--color-special-800-rgb:69,45,165;--color-special-900-rgb:48,33,110;--color-inherit:inherit;--color-transparent:transparent;--color-current:currentColor;--color-black:#000;--color-white:#fff;--color-canvas:#fff;--color-canvas-light:#fff;--color-canvas-dark:#fcfdfe;--color-inverse:#000;--color-surface:#eff1f3;--color-surface-light:#fcfdfe;--color-surface-strong:#ebedf3;--color-fore:#30394a;--color-fore-in-light:#30394a;--color-fore-in-dark:#fff;--color-focus:#bcdcff;--color-link:#2b47a2;--color-link-hover:#144ce1;--color-link-visited:#6328a4;--color-link-active:#144ce1;--color-placeholder:#b2b9c5;--color-border:#ebedf3;--color-border-strong:#d2d6e5;--color-border-light:#eff1f3;--color-black-rgb:0,0,0;--color-white-rgb:255,255,255;--color-canvas-rgb:255,255,255;--color-canvas-light-rgb:255,255,255;--color-canvas-dark-rgb:252,253,254;--color-inverse-rgb:0,0,0;--color-surface-rgb:239,241,243;--color-surface-light-rgb:252,253,254;--color-surface-strong-rgb:235,237,243;--color-fore-rgb:48,57,74;--color-fore-in-light-rgb:48,57,74;--color-fore-in-dark-rgb:255,255,255;--color-focus-rgb:188,220,255;--color-link-rgb:43,71,162;--color-link-hover-rgb:20,76,225;--color-link-visited-rgb:99,40,164;--color-link-active-rgb:20,76,225;--color-placeholder-rgb:178,185,197;--color-border-rgb:235,237,243;--color-border-strong-rgb:210,214,229;--color-border-light-rgb:239,241,243;--radius-none:0px;--radius-sm:0.0625rem;--radius:0.125rem;--radius-md:0.25rem;--radius-lg:0.375rem;--radius-xl:0.5rem;--radius-2xl:0.75rem;--radius-3xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--shadow-md:0 2px 6px -1px rgba(0,0,0,.2),0 1px 4px -2px rgba(0,0,0,.15);--shadow-lg:0 5px 15px -3px rgba(0,0,0,.2),0 2px 6px -4px rgba(0,0,0,.15);--shadow-xl:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--shadow-2xl:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--shadow-inner:inset 0 2px 4px 0 rgba(0,0,0,.05);--shadow-none:none;--space:0.25rem;--font-size-article:0.875rem;--font-size-root:16px;--font-size-page-lineHeight:1.5384615385}.dark{--color-gray-50:#0b0f18;--color-gray-100:#30394a;--color-gray-200:#353d57;--color-gray-300:#3d4667;--color-gray-400:#4a577f;--color-gray-500:#64758b;--color-gray-600:#b2b9c5;--color-gray-700:#d2d6e5;--color-gray-800:#ebedf3;--color-gray-900:#eff1f3;--color-gray-950:#fcfdfe;--color-gray-50-rgb:11,15,24;--color-gray-100-rgb:48,57,74;--color-gray-200-rgb:53,61,87;--color-gray-300-rgb:61,70,103;--color-gray-400-rgb:74,87,127;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:178,185,197;--color-gray-700-rgb:210,214,229;--color-gray-800-rgb:235,237,243;--color-gray-900-rgb:239,241,243;--color-gray-950-rgb:252,253,254;--color-primary-50:#142457;--color-primary-100:#19388f;--color-primary-200:#173db6;--color-primary-300:#144ce1;--color-primary-400:#2b67e5;--color-primary-500:#3883fa;--color-primary-600:#59a5ff;--color-primary-700:#8ec6ff;--color-primary-800:#bcdcff;--color-primary-900:#d9eaff;--color-primary-950:#eef6ff;--color-primary-50-rgb:20,36,87;--color-primary-100-rgb:25,56,143;--color-primary-200-rgb:23,61,182;--color-primary-300-rgb:20,76,225;--color-primary-400-rgb:43,103,229;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:89,165,255;--color-primary-700-rgb:142,198,255;--color-primary-800-rgb:188,220,255;--color-primary-900-rgb:217,234,255;--color-primary-950-rgb:238,246,255;--color-secondary-50:#062a4b;--color-secondary-100:#046bab;--color-secondary-200:#078ada;--color-secondary-300:#1099ed;--color-secondary-400:#18a6fd;--color-secondary-500:#37b2fe;--color-secondary-600:#60c2ff;--color-secondary-700:#77cbff;--color-secondary-800:#9bd9ff;--color-secondary-900:#cdecff;--color-secondary-950:#e7f6ff;--color-secondary-50-rgb:6,42,75;--color-secondary-100-rgb:4,107,171;--color-secondary-200-rgb:7,138,218;--color-secondary-300-rgb:16,153,237;--color-secondary-400-rgb:24,166,253;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:96,194,255;--color-secondary-700-rgb:119,203,255;--color-secondary-800-rgb:155,217,255;--color-secondary-900-rgb:205,236,255;--color-secondary-950-rgb:231,246,255;--color-success-50:#186c4e;--color-success-100:#0e8d60;--color-success-200:#0ca76f;--color-success-300:#0dbb7d;--color-success-400:#22c98d;--color-success-500:#48d1a0;--color-success-600:#7adfba;--color-success-700:#b1ecd6;--color-success-800:#d0f6e8;--color-success-900:#ecfff8;--color-success-50-rgb:24,108,78;--color-success-100-rgb:14,141,96;--color-success-200-rgb:12,167,111;--color-success-300-rgb:13,187,125;--color-success-400-rgb:34,201,141;--color-success-500-rgb:72,209,160;--color-success-600-rgb:122,223,186;--color-success-700-rgb:177,236,214;--color-success-800-rgb:208,246,232;--color-success-900-rgb:236,255,248;--color-warning-50:#af5f01;--color-warning-100:#d17100;--color-warning-200:#ed8307;--color-warning-300:#f38f19;--color-warning-400:#ff9f46;--color-warning-500:#ffaf65;--color-warning-600:#ffbc7e;--color-warning-700:#ffd2a9;--color-warning-800:#ffecdb;--color-warning-900:#fff4ea;--color-warning-50-rgb:175,95,1;--color-warning-100-rgb:209,113,0;--color-warning-200-rgb:237,131,7;--color-warning-300-rgb:243,143,25;--color-warning-400-rgb:255,159,70;--color-warning-500-rgb:255,175,101;--color-warning-600-rgb:255,188,126;--color-warning-700-rgb:255,210,169;--color-warning-800-rgb:255,236,219;--color-warning-900-rgb:255,244,234;--color-danger-50:#a20606;--color-danger-100:#ba1313;--color-danger-200:#d91b1b;--color-danger-300:#fb2b2b;--color-danger-400:#fc5959;--color-danger-500:#ff7c7c;--color-danger-600:#ff9292;--color-danger-700:#ffb1b1;--color-danger-800:#ffd5d5;--color-danger-900:#ffebeb;--color-danger-50-rgb:162,6,6;--color-danger-100-rgb:186,19,19;--color-danger-200-rgb:217,27,27;--color-danger-300-rgb:251,43,43;--color-danger-400-rgb:252,89,89;--color-danger-500-rgb:255,124,124;--color-danger-600-rgb:255,146,146;--color-danger-700-rgb:255,177,177;--color-danger-800-rgb:255,213,213;--color-danger-900-rgb:255,235,235;--color-important-50:#611700;--color-important-100:#c83509;--color-important-200:#ff4912;--color-important-300:#ff6f42;--color-important-400:#ff8058;--color-important-500:#ff8c68;--color-important-600:#ffb29b;--color-important-700:#ffcebf;--color-important-800:#ffe2d9;--color-important-900:#fff8f5;--color-important-50-rgb:97,23,0;--color-important-100-rgb:200,53,9;--color-important-200-rgb:255,73,18;--color-important-300-rgb:255,111,66;--color-important-400-rgb:255,128,88;--color-important-500-rgb:255,140,104;--color-important-600-rgb:255,178,155;--color-important-700-rgb:255,206,191;--color-important-800-rgb:255,226,217;--color-important-900-rgb:255,248,245;--color-special-50:#30216e;--color-special-100:#452da5;--color-special-200:#513baa;--color-special-300:#7055df;--color-special-400:#8166ee;--color-special-500:#8a6ff5;--color-special-600:#a38cff;--color-special-700:#c4b6ff;--color-special-800:#e4dff7;--color-special-900:#efecfa;--color-special-50-rgb:48,33,110;--color-special-100-rgb:69,45,165;--color-special-200-rgb:81,59,170;--color-special-300-rgb:112,85,223;--color-special-400-rgb:129,102,238;--color-special-500-rgb:138,111,245;--color-special-600-rgb:163,140,255;--color-special-700-rgb:196,182,255;--color-special-800-rgb:228,223,247;--color-special-900-rgb:239,236,250;--color-canvas:#0b0f18;--color-inverse:#fff;--color-surface:#353d57;--color-surface-light:#30394a;--color-surface-strong:#3d4667;--color-fore:#ebedf3;--color-focus:#173db6;--color-link:#59a5ff;--color-link-hover:#3883fa;--color-link-visited:#bcdcff;--color-link-active:#bcdcff;--color-placeholder:#4a577f;--color-border:#353d57;--color-border-strong:#3d4667;--color-border-light:#30394a;--color-canvas-rgb:11,15,24;--color-inverse-rgb:255,255,255;--color-surface-rgb:53,61,87;--color-surface-light-rgb:48,57,74;--color-surface-strong-rgb:61,70,103;--color-fore-rgb:235,237,243;--color-focus-rgb:23,61,182;--color-link-rgb:89,165,255;--color-link-hover-rgb:56,131,250;--color-link-visited-rgb:188,220,255;--color-link-active-rgb:188,220,255;--color-placeholder-rgb:74,87,127;--color-border-rgb:53,61,87;--color-border-strong-rgb:61,70,103;--color-border-light-rgb:48,57,74}.light-in-dark{--color-gray-50:#fcfdfe;--color-gray-100:#eff1f3;--color-gray-200:#ebedf3;--color-gray-300:#d2d6e5;--color-gray-400:#b2b9c5;--color-gray-500:#64758b;--color-gray-600:#4a577f;--color-gray-700:#3d4667;--color-gray-800:#353d57;--color-gray-900:#30394a;--color-gray-950:#0b0f18;--color-gray-50-rgb:252,253,254;--color-gray-100-rgb:239,241,243;--color-gray-200-rgb:235,237,243;--color-gray-300-rgb:210,214,229;--color-gray-400-rgb:178,185,197;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:74,87,127;--color-gray-700-rgb:61,70,103;--color-gray-800-rgb:53,61,87;--color-gray-900-rgb:48,57,74;--color-gray-950-rgb:11,15,24;--color-primary-50:#eef6ff;--color-primary-100:#d9eaff;--color-primary-200:#bcdcff;--color-primary-300:#8ec6ff;--color-primary-400:#59a5ff;--color-primary-500:#3883fa;--color-primary-600:#2b67e5;--color-primary-700:#144ce1;--color-primary-800:#173db6;--color-primary-900:#19388f;--color-primary-950:#142457;--color-primary-50-rgb:238,246,255;--color-primary-100-rgb:217,234,255;--color-primary-200-rgb:188,220,255;--color-primary-300-rgb:142,198,255;--color-primary-400-rgb:89,165,255;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:43,103,229;--color-primary-700-rgb:20,76,225;--color-primary-800-rgb:23,61,182;--color-primary-900-rgb:25,56,143;--color-primary-950-rgb:20,36,87;--color-secondary-50:#e7f6ff;--color-secondary-100:#cdecff;--color-secondary-200:#9bd9ff;--color-secondary-300:#77cbff;--color-secondary-400:#60c2ff;--color-secondary-500:#37b2fe;--color-secondary-600:#18a6fd;--color-secondary-700:#1099ed;--color-secondary-800:#078ada;--color-secondary-900:#046bab;--color-secondary-950:#062a4b;--color-secondary-50-rgb:231,246,255;--color-secondary-100-rgb:205,236,255;--color-secondary-200-rgb:155,217,255;--color-secondary-300-rgb:119,203,255;--color-secondary-400-rgb:96,194,255;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:24,166,253;--color-secondary-700-rgb:16,153,237;--color-secondary-800-rgb:7,138,218;--color-secondary-900-rgb:4,107,171;--color-secondary-950-rgb:6,42,75;--color-success-50:#ecfff8;--color-success-100:#d0f6e8;--color-success-200:#b1ecd6;--color-success-300:#7adfba;--color-success-400:#48d1a0;--color-success-500:#22c98d;--color-success-600:#0dbb7d;--color-success-700:#0ca76f;--color-success-800:#0e8d60;--color-success-900:#186c4e;--color-success-50-rgb:236,255,248;--color-success-100-rgb:208,246,232;--color-success-200-rgb:177,236,214;--color-success-300-rgb:122,223,186;--color-success-400-rgb:72,209,160;--color-success-500-rgb:34,201,141;--color-success-600-rgb:13,187,125;--color-success-700-rgb:12,167,111;--color-success-800-rgb:14,141,96;--color-success-900-rgb:24,108,78;--color-warning-50:#fff4ea;--color-warning-100:#ffecdb;--color-warning-200:#ffd2a9;--color-warning-300:#ffbc7e;--color-warning-400:#ffaf65;--color-warning-500:#ff9f46;--color-warning-600:#f38f19;--color-warning-700:#ed8307;--color-warning-800:#d17100;--color-warning-900:#af5f01;--color-warning-50-rgb:255,244,234;--color-warning-100-rgb:255,236,219;--color-warning-200-rgb:255,210,169;--color-warning-300-rgb:255,188,126;--color-warning-400-rgb:255,175,101;--color-warning-500-rgb:255,159,70;--color-warning-600-rgb:243,143,25;--color-warning-700-rgb:237,131,7;--color-warning-800-rgb:209,113,0;--color-warning-900-rgb:175,95,1;--color-danger-50:#ffebeb;--color-danger-100:#ffd5d5;--color-danger-200:#ffb1b1;--color-danger-300:#ff9292;--color-danger-400:#ff7c7c;--color-danger-500:#fc5959;--color-danger-600:#fb2b2b;--color-danger-700:#d91b1b;--color-danger-800:#ba1313;--color-danger-900:#a20606;--color-danger-50-rgb:255,235,235;--color-danger-100-rgb:255,213,213;--color-danger-200-rgb:255,177,177;--color-danger-300-rgb:255,146,146;--color-danger-400-rgb:255,124,124;--color-danger-500-rgb:252,89,89;--color-danger-600-rgb:251,43,43;--color-danger-700-rgb:217,27,27;--color-danger-800-rgb:186,19,19;--color-danger-900-rgb:162,6,6;--color-important-50:#fff8f5;--color-important-100:#ffe2d9;--color-important-200:#ffcebf;--color-important-300:#ffb29b;--color-important-400:#ff8c68;--color-important-500:#ff8058;--color-important-600:#ff6f42;--color-important-700:#ff4912;--color-important-800:#c83509;--color-important-900:#611700;--color-important-50-rgb:255,248,245;--color-important-100-rgb:255,226,217;--color-important-200-rgb:255,206,191;--color-important-300-rgb:255,178,155;--color-important-400-rgb:255,140,104;--color-important-500-rgb:255,128,88;--color-important-600-rgb:255,111,66;--color-important-700-rgb:255,73,18;--color-important-800-rgb:200,53,9;--color-important-900-rgb:97,23,0;--color-special-50:#efecfa;--color-special-100:#e4dff7;--color-special-200:#c4b6ff;--color-special-300:#a38cff;--color-special-400:#8a6ff5;--color-special-500:#8166ee;--color-special-600:#7055df;--color-special-700:#513baa;--color-special-800:#452da5;--color-special-900:#30216e;--color-special-50-rgb:239,236,250;--color-special-100-rgb:228,223,247;--color-special-200-rgb:196,182,255;--color-special-300-rgb:163,140,255;--color-special-400-rgb:138,111,245;--color-special-500-rgb:129,102,238;--color-special-600-rgb:112,85,223;--color-special-700-rgb:81,59,170;--color-special-800-rgb:69,45,165;--color-special-900-rgb:48,33,110;--color-inherit:inherit;--color-transparent:transparent;--color-current:currentColor;--color-black:#000;--color-white:#fff;--color-canvas:#fff;--color-canvas-light:#fff;--color-canvas-dark:#fcfdfe;--color-inverse:#000;--color-surface:#eff1f3;--color-surface-light:#fcfdfe;--color-surface-strong:#ebedf3;--color-fore:#30394a;--color-fore-in-light:#30394a;--color-fore-in-dark:#fff;--color-focus:#bcdcff;--color-link:#2b47a2;--color-link-hover:#144ce1;--color-link-visited:#6328a4;--color-link-active:#144ce1;--color-placeholder:#b2b9c5;--color-border:#ebedf3;--color-border-strong:#d2d6e5;--color-border-light:#eff1f3;--color-black-rgb:0,0,0;--color-white-rgb:255,255,255;--color-canvas-rgb:255,255,255;--color-canvas-light-rgb:255,255,255;--color-canvas-dark-rgb:252,253,254;--color-inverse-rgb:0,0,0;--color-surface-rgb:239,241,243;--color-surface-light-rgb:252,253,254;--color-surface-strong-rgb:235,237,243;--color-fore-rgb:48,57,74;--color-fore-in-light-rgb:48,57,74;--color-fore-in-dark-rgb:255,255,255;--color-focus-rgb:188,220,255;--color-link-rgb:43,71,162;--color-link-hover-rgb:20,76,225;--color-link-visited-rgb:99,40,164;--color-link-active-rgb:20,76,225;--color-placeholder-rgb:178,185,197;--color-border-rgb:235,237,243;--color-border-strong-rgb:210,214,229;--color-border-light-rgb:239,241,243}body{--btn-bg:var(--color-gray-50)}@media (prefers-color-scheme:dark){.dark-auto{--color-gray-50:#0b0f18;--color-gray-100:#30394a;--color-gray-200:#353d57;--color-gray-300:#3d4667;--color-gray-400:#4a577f;--color-gray-500:#64758b;--color-gray-600:#b2b9c5;--color-gray-700:#d2d6e5;--color-gray-800:#ebedf3;--color-gray-900:#eff1f3;--color-gray-950:#fcfdfe;--color-gray-50-rgb:11,15,24;--color-gray-100-rgb:48,57,74;--color-gray-200-rgb:53,61,87;--color-gray-300-rgb:61,70,103;--color-gray-400-rgb:74,87,127;--color-gray-500-rgb:100,117,139;--color-gray-600-rgb:178,185,197;--color-gray-700-rgb:210,214,229;--color-gray-800-rgb:235,237,243;--color-gray-900-rgb:239,241,243;--color-gray-950-rgb:252,253,254;--color-primary-50:#142457;--color-primary-100:#19388f;--color-primary-200:#173db6;--color-primary-300:#144ce1;--color-primary-400:#2b67e5;--color-primary-500:#3883fa;--color-primary-600:#59a5ff;--color-primary-700:#8ec6ff;--color-primary-800:#bcdcff;--color-primary-900:#d9eaff;--color-primary-950:#eef6ff;--color-primary-50-rgb:20,36,87;--color-primary-100-rgb:25,56,143;--color-primary-200-rgb:23,61,182;--color-primary-300-rgb:20,76,225;--color-primary-400-rgb:43,103,229;--color-primary-500-rgb:56,131,250;--color-primary-600-rgb:89,165,255;--color-primary-700-rgb:142,198,255;--color-primary-800-rgb:188,220,255;--color-primary-900-rgb:217,234,255;--color-primary-950-rgb:238,246,255;--color-secondary-50:#062a4b;--color-secondary-100:#046bab;--color-secondary-200:#078ada;--color-secondary-300:#1099ed;--color-secondary-400:#18a6fd;--color-secondary-500:#37b2fe;--color-secondary-600:#60c2ff;--color-secondary-700:#77cbff;--color-secondary-800:#9bd9ff;--color-secondary-900:#cdecff;--color-secondary-950:#e7f6ff;--color-secondary-50-rgb:6,42,75;--color-secondary-100-rgb:4,107,171;--color-secondary-200-rgb:7,138,218;--color-secondary-300-rgb:16,153,237;--color-secondary-400-rgb:24,166,253;--color-secondary-500-rgb:55,178,254;--color-secondary-600-rgb:96,194,255;--color-secondary-700-rgb:119,203,255;--color-secondary-800-rgb:155,217,255;--color-secondary-900-rgb:205,236,255;--color-secondary-950-rgb:231,246,255;--color-success-50:#186c4e;--color-success-100:#0e8d60;--color-success-200:#0ca76f;--color-success-300:#0dbb7d;--color-success-400:#22c98d;--color-success-500:#48d1a0;--color-success-600:#7adfba;--color-success-700:#b1ecd6;--color-success-800:#d0f6e8;--color-success-900:#ecfff8;--color-success-50-rgb:24,108,78;--color-success-100-rgb:14,141,96;--color-success-200-rgb:12,167,111;--color-success-300-rgb:13,187,125;--color-success-400-rgb:34,201,141;--color-success-500-rgb:72,209,160;--color-success-600-rgb:122,223,186;--color-success-700-rgb:177,236,214;--color-success-800-rgb:208,246,232;--color-success-900-rgb:236,255,248;--color-warning-50:#af5f01;--color-warning-100:#d17100;--color-warning-200:#ed8307;--color-warning-300:#f38f19;--color-warning-400:#ff9f46;--color-warning-500:#ffaf65;--color-warning-600:#ffbc7e;--color-warning-700:#ffd2a9;--color-warning-800:#ffecdb;--color-warning-900:#fff4ea;--color-warning-50-rgb:175,95,1;--color-warning-100-rgb:209,113,0;--color-warning-200-rgb:237,131,7;--color-warning-300-rgb:243,143,25;--color-warning-400-rgb:255,159,70;--color-warning-500-rgb:255,175,101;--color-warning-600-rgb:255,188,126;--color-warning-700-rgb:255,210,169;--color-warning-800-rgb:255,236,219;--color-warning-900-rgb:255,244,234;--color-danger-50:#a20606;--color-danger-100:#ba1313;--color-danger-200:#d91b1b;--color-danger-300:#fb2b2b;--color-danger-400:#fc5959;--color-danger-500:#ff7c7c;--color-danger-600:#ff9292;--color-danger-700:#ffb1b1;--color-danger-800:#ffd5d5;--color-danger-900:#ffebeb;--color-danger-50-rgb:162,6,6;--color-danger-100-rgb:186,19,19;--color-danger-200-rgb:217,27,27;--color-danger-300-rgb:251,43,43;--color-danger-400-rgb:252,89,89;--color-danger-500-rgb:255,124,124;--color-danger-600-rgb:255,146,146;--color-danger-700-rgb:255,177,177;--color-danger-800-rgb:255,213,213;--color-danger-900-rgb:255,235,235;--color-important-50:#611700;--color-important-100:#c83509;--color-important-200:#ff4912;--color-important-300:#ff6f42;--color-important-400:#ff8058;--color-important-500:#ff8c68;--color-important-600:#ffb29b;--color-important-700:#ffcebf;--color-important-800:#ffe2d9;--color-important-900:#fff8f5;--color-important-50-rgb:97,23,0;--color-important-100-rgb:200,53,9;--color-important-200-rgb:255,73,18;--color-important-300-rgb:255,111,66;--color-important-400-rgb:255,128,88;--color-important-500-rgb:255,140,104;--color-important-600-rgb:255,178,155;--color-important-700-rgb:255,206,191;--color-important-800-rgb:255,226,217;--color-important-900-rgb:255,248,245;--color-special-50:#30216e;--color-special-100:#452da5;--color-special-200:#513baa;--color-special-300:#7055df;--color-special-400:#8166ee;--color-special-500:#8a6ff5;--color-special-600:#a38cff;--color-special-700:#c4b6ff;--color-special-800:#e4dff7;--color-special-900:#efecfa;--color-special-50-rgb:48,33,110;--color-special-100-rgb:69,45,165;--color-special-200-rgb:81,59,170;--color-special-300-rgb:112,85,223;--color-special-400-rgb:129,102,238;--color-special-500-rgb:138,111,245;--color-special-600-rgb:163,140,255;--color-special-700-rgb:196,182,255;--color-special-800-rgb:228,223,247;--color-special-900-rgb:239,236,250;--color-canvas:#0b0f18;--color-inverse:#fff;--color-surface:#353d57;--color-surface-light:#30394a;--color-surface-strong:#3d4667;--color-fore:#ebedf3;--color-focus:#173db6;--color-link:#59a5ff;--color-link-hover:#3883fa;--color-link-visited:#bcdcff;--color-link-active:#bcdcff;--color-placeholder:#4a577f;--color-border:#353d57;--color-border-strong:#3d4667;--color-border-light:#30394a;--color-canvas-rgb:11,15,24;--color-inverse-rgb:255,255,255;--color-surface-rgb:53,61,87;--color-surface-light-rgb:48,57,74;--color-surface-strong-rgb:61,70,103;--color-fore-rgb:235,237,243;--color-focus-rgb:23,61,182;--color-link-rgb:89,165,255;--color-link-hover-rgb:56,131,250;--color-link-visited-rgb:188,220,255;--color-link-active-rgb:188,220,255;--color-placeholder-rgb:74,87,127;--color-border-rgb:53,61,87;--color-border-strong-rgb:61,70,103;--color-border-light-rgb:48,57,74}}*,:after,:before{--tw-border-opacity:1;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity))}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }html{font-size:var(--font-size-root)}body{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));font-size:.8125rem;line-height:1.5384615385}.dark,body{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}:root{--font-h1-size:2.25rem;--article-p-space:0.5em;--article-hr-space:1.5em;--article-cell-padding:0.25rem 0.75rem}a,a.disabled:hover{--tw-text-opacity:1;color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}a:hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}a:focus-visible{outline-color:rgb(var(--color-focus-rgb));outline-offset:2px;outline-width:2px}.code,code{--tw-text-opacity:1;background-color:rgba(var(--color-important-500-rgb),.1);border-radius:var(--radius);color:rgba(var(--color-important-500-rgb),var(--tw-text-opacity));padding-left:.25rem;padding-right:.25rem}pre{font-size:.75rem;line-height:1rem;overflow:auto;padding:.5rem}pre code{background-color:transparent;color:inherit;padding:0}samp,var{font-weight:700}.blockquote,blockquote{text-wrap:balance;border-left-width:4px;font-size:.875rem;line-height:1.3rem;padding-left:.75rem}.blockquote figcaption,blockquote figcaption{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{text-wrap:balance;font-weight:700;line-height:1.5}.h1,h1{font-size:1.75rem}.h2,h2{font-size:1.5rem}.h3,h3{font-size:1.25rem}.h4,h4{font-size:1rem}.h5,h5{font-size:.875rem}.h6,h6{font-size:.75rem}ul{list-style-type:disc}ol,ul{padding-left:1.5em}ol{list-style-type:decimal}dt{font-weight:700}dd{padding-left:2em}.article{color:var(--font-size-article)}.article audio,.article blockquote,.article figure,.article h1,.article h2,.article h3,.article h4,.article img,.article ol,.article p,.article table,.article ul,.article video{margin-bottom:var(--article-p-space);margin-top:var(--article-p-space)}.article hr{margin-bottom:var(--article-hr-space);margin-top:var(--article-hr-space)}.article table{border-width:1px}.article td,.article th{border-bottom-width:1px;padding:var(--article-cell-padding)}.article thead{background-color:var(--table-head-bg,var(--color-gray-100))}.article ol *,.article table *,.article ul *{margin-bottom:0;margin-top:0}.article pre{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));border-radius:var(--radius);border-width:1px}:root{--alert-bg:var(--color-surface)}.alert{align-items:center;background-color:var(--alert-bg);border-radius:var(--radius);display:flex;gap:.75rem;padding:.5rem .75rem}.alert-content{display:flex;flex:1 1 auto;flex-direction:column;gap:1rem}.alert-close{margin-bottom:-.375rem;margin-right:-.5rem;margin-top:-.375rem}.alert-link{color:inherit;font-weight:700}.alert-link:hover{color:inherit;text-decoration-line:underline}.alert-heading{font-weight:700;margin:0}.alert-text{flex:1 1 auto;white-space:pre-line}.alert-actions{align-items:center;display:flex;gap:.5rem}:root{--breadcrumb-divider:"/";--breadcrumb-divider-color:var(--color-gray-500);--breadcrumb-color-active:var(--color-gray-500)}.breadcrumb{display:flex;gap:1.25rem;list-style-type:none;padding-left:0}.breadcrumb>li{position:relative}.breadcrumb>li+li:before{color:var(--breadcrumb-divider-color);content:var(--breadcrumb-divider);display:block;left:-1.25rem;position:absolute;text-align:center;width:1.25rem}.breadcrumb>.active{color:var(--breadcrumb-color-active)}:root{--btn-radius:var(--radius);--btn-bg:var(--color-surface);--btn-border-color:var(--color-gray-300)}.btn{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--btn-border-color);--state-active-opacity:1;align-items:center;background-color:var(--btn-bg);border-radius:var(--btn-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:inline-flex;gap:.375rem;height:2rem;justify-content:center;padding-left:.75rem;padding-right:.75rem;white-space:nowrap}.btn,.btn-default:hover{color:inherit}.btn-link{--tw-text-opacity:1;--tw-ring-color:transparent;color:rgba(var(--color-link-rgb),var(--tw-text-opacity));text-decoration-line:underline;text-underline-offset:2px}.btn-link:visited{color:rgba(var(--color-link-visited-rgb),var(--tw-text-opacity))}.btn-link:hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}.btn-link{--btn-bg:transparent}.btn.size-xs,.size-xs>.btn{font-size:.75rem;height:1.25rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}.btn.size-sm,.size-sm>.btn{font-size:.75rem;height:1.5rem;line-height:1rem}.btn.size-md,.btn.size-sm,.size-md>.btn,.size-sm>.btn{padding-left:.5rem;padding-right:.5rem}.btn.size-md,.size-md>.btn{height:1.75rem}.btn.size-lg,.size-lg>.btn{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:1rem;padding-right:1rem}.btn.size-xl,.size-xl>.btn{font-size:1.125rem;height:3rem;line-height:1.75rem;padding-left:1.25rem;padding-right:1.25rem}.btn.square{aspect-ratio:1/1;gap:.125rem;padding-left:0;padding-right:0}.btn.btn-caret{padding-left:.25rem;padding-right:.25rem}.btn.btn-wide{min-width:80px}:root{--checkbox-size:12px;--checkbox-color:var(--color-primary-500)}.checkbox,.radio{align-items:center;cursor:pointer;display:flex;gap:.375rem;min-height:20px}.checkbox>input[type=checkbox],.radio>input[type=radio]{accent-color:rgb(var(--color-primary-500-rgb));border-radius:var(--radius-lg)}.checkbox-primary,.radio-primary{display:flex;gap:.375rem;min-height:20px;position:relative}.checkbox-primary>input[type=checkbox],.radio-primary>input[type=radio]{inset:0;opacity:0;position:absolute}.checkbox-primary>label,.radio-primary>label{cursor:pointer;padding-left:calc(var(--checkbox-size) + 8px);position:relative}.checkbox-primary>label:after,.checkbox-primary>label:before,.radio-primary>label:after,.radio-primary>label:before{--tw-content:"";content:var(--tw-content);display:block;height:var(--checkbox-size);left:0;position:absolute;top:calc((20px - var(--checkbox-size))/2);transition-duration:.15s;transition-property:transform,background-color,color,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--checkbox-size)}.checkbox-primary>label:before{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity));border-radius:var(--radius-sm);border-width:1px}.checkbox-primary>label:after{--tw-scale-x:.9;--tw-scale-y:.9;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTkgMjAuNDItNi4yMS02LjIxIDIuODMtMi44M0w5IDE0Ljc3bDkuODgtOS44OSAyLjgzIDIuODN6Ii8+PC9zdmc+");transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.radio-primary>label:before{--tw-border-opacity:1;border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity));border-radius:var(--radius-full);border-width:1px}.radio-primary>label:after{--checkbox-radio-size:calc(var(--checkbox-size)*2/3);background-color:var(--checkbox-color);border-radius:var(--radius-full);height:var(--checkbox-radio-size);left:calc((var(--checkbox-size) - var(--checkbox-radio-size))/2);opacity:0;top:calc((20px - var(--checkbox-radio-size))/2);width:var(--checkbox-radio-size)}.checkbox-primary>label:hover:before,.radio-primary>label:hover:before{border-color:var(--checkbox-color)}.checkbox-primary.focus>label:before,.checkbox-primary>input[type=checkbox]:focus+label:before,.radio-primary.focus>label:before,.radio-primary>input[type=radio]:focus+label:before{border-color:var(--checkbox-color);outline-color:rgb(var(--color-focus-rgb));outline-style:solid;outline-width:2px}.checkbox-primary.checked>label:before,.checkbox-primary>input[type=checkbox]:checked+label:before{background-color:var(--checkbox-color);border-color:var(--checkbox-color)}.radio-primary.checked>label:before,.radio-primary>input[type=radio]:checked+label:before{border-color:var(--checkbox-color)}.checkbox-primary.checked>label:after,.checkbox-primary>input[type=checkbox]:checked+label:after,.radio-primary.checked>label:after,.radio-primary>input[type=radio]:checked+label:after{opacity:1}.checkbox-primary.disabled>label,.checkbox-primary>input[type=checkbox]:disabled+label,.radio-primary.disabled>label,.radio-primary>input[type=radio]:disabled+label{--tw-grayscale:grayscale(100%);cursor:not-allowed;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:.7;pointer-events:none}.checkbox-primary.indeterminate>label:after,.checkbox-primary>input[type=checkbox]:indeterminate+label:after{--tw-border-opacity:1;background-color:var(--checkbox-color);background-image:none;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));border-width:calc((var(--checkbox-size) - 2px)/2) 2px;opacity:1}.check-list{flex-direction:column;gap:.5rem}.check-list,.check-list-inline{display:flex;padding-bottom:.375rem;padding-top:.375rem}.check-list-inline{align-items:center;-moz-column-gap:1rem;column-gap:1rem;flex-direction:row;flex-wrap:wrap;row-gap:.5rem}.switch{display:flex;gap:.375rem;min-height:20px;padding-left:2.5rem;position:relative}.switch>input{inset:0;opacity:0;position:absolute}.switch>label:after,.switch>label:before{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-border-strong-rgb),var(--tw-border-opacity));border-radius:var(--radius-full);border-width:1px;content:var(--tw-content);height:1rem;left:0;position:absolute;top:.125rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2rem}.switch>label:before{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer}.switch>label:hover:before{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity))}.switch>label:after{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);height:.75rem;left:.125rem;top:.25rem;width:.75rem}.switch>input:checked+label:before{background-color:var(--checkbox-color);border-color:rgba(var(--color-inverse-rgb),.2)}.switch>input:checked+label:after{color:var(--checkbox-color);left:18px}.switch.focus>label:before,.switch>input:focus+label:before{border-color:var(--checkbox-color);outline-color:rgb(var(--color-focus-rgb));outline-style:solid;outline-width:2px}.switch.disabled>label:before,.switch>input:disabled+label:before{--tw-grayscale:grayscale(100%);cursor:not-allowed;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:.7;pointer-events:none}:root{--form-control-radius:var(--radius);--form-control-border:var(--color-border);--form-control-focus:var(--color-primary-500);--form-control-disabled:var(--color-surface);--form-control-readonly:var(--color-surface)}.dark{--form-control-border:var(--color-border-strong)}input::-moz-placeholder,textarea::-moz-placeholder{--tw-placeholder-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-placeholder-opacity))}input::placeholder,textarea::placeholder{--tw-placeholder-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-placeholder-opacity))}.form-control{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--form-control-border);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--form-control-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:block;height:2rem;outline-color:transparent;outline-style:solid;outline-width:1px;padding:.25rem .5rem;transition-duration:.15s;transition-property:outline,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.form-control.focus,.form-control:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-focus-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.3;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline-color:var(--form-control-focus)}.form-control.disabled,.form-control[disabled]{background-color:var(--form-control-disabled);opacity:1}.form-control.readonly,.form-control[readonly]{background-color:var(--form-control-readonly)}select{-webkit-appearance:none;background-image:url("data:image/gif;base64,R0lGODlhBwAEAIAAAMvQ2////yH5BAEAAAEALAAAAAAHAAQAAAIIhA+BGWoNWSgAOw==");background-position:right 8px top 50%;background-repeat:no-repeat;background-size:8px auto;padding-right:1rem}select.form-control[multiple]{background-image:none}textarea.form-control{height:auto;min-height:32px}input[type=file].form-control{padding:.125rem}input[type=file].form-control::-webkit-file-upload-button{-webkit-appearance:none;appearance:none;border-radius:inherit;border-style:none;cursor:pointer;height:1.75rem;padding-left:.5rem;padding-right:.5rem}input[type=file].form-control::-webkit-file-upload-button:hover{background-color:rgba(var(--color-black-rgb),.1)}.has-error .form-control,.has-error.form-control{--tw-ring-color:rgba(var(--color-danger-500-rgb),0.6)}.has-error .form-control.focus,.has-error .form-control:focus,.has-error.form-control.focus,.has-error.form-control:focus{--tw-ring-color:rgba(var(--color-danger-500-rgb),0.1);outline-color:rgb(var(--color-danger-500-rgb))}.has-warning .form-control,.has-warning.form-control{--tw-ring-color:rgba(var(--color-warning-500-rgb),0.6)}.has-warning .form-control.focus,.has-warning .form-control:focus,.has-warning.form-control.focus,.has-warning.form-control:focus{--tw-ring-color:rgba(var(--color-warning-500-rgb),0.2);outline-color:rgb(var(--color-warning-500-rgb))}.has-success .form-control,.has-success.form-control{--tw-ring-color:rgba(var(--color-success-500-rgb),0.6)}.has-success .form-control.focus,.has-success .form-control:focus,.has-success.form-control.focus,.has-success.form-control:focus{--tw-ring-color:rgba(var(--color-success-500-rgb),0.2);outline-color:rgb(var(--color-success-500-rgb))}.form-control.size-sm,.size-sm>.form-control{font-size:.75rem;height:1.5rem;line-height:1rem;padding-left:.5rem;padding-right:.5rem}.form-control.size-md,.size-md>.form-control{height:1.75rem;padding-left:.5rem;padding-right:.5rem}.form-control.size-lg,.size-lg>.form-control{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:.75rem;padding-right:.75rem}:root{--input-group-addon-bg:var(--color-gray-50)}.input-group{align-items:stretch;display:flex}.input-group>.form-control,.input-group>.input-control{flex:1 1 auto;z-index:1}.input-group-addon{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--form-control-border);align-items:center;background-color:var(--input-group-addon-bg);border-radius:var(--form-control-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:flex;flex:none;height:2rem;padding-left:.5rem;padding-right:.5rem;z-index:0}.size-sm>.input-group-addon{font-size:.75rem;height:1.5rem;line-height:1rem;padding-left:.5rem;padding-right:.5rem}.size-lg>.input-group-addon{font-size:1rem;height:2.5rem;line-height:1.5rem;padding-left:.75rem;padding-right:.75rem}.input-group-control{flex:1 1 auto}.input-group>*+*,.input-group>*+* .form-control{border-bottom-left-radius:var(--radius-none);border-top-left-radius:var(--radius-none)}.input-group>:not(:last-child),.input-group>:not(:last-child) .form-control{border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none)}.input-group .btn:focus-visible,.input-group .form-control:focus{z-index:2}:root{--form-tip-color:var(--color-gray-400);--form-label-color:var(--color-gray-700);--form-horz-label-width:6rem;--form-grid-gap-x:1.25rem;--form-grid-gap-y:.75rem}.form{flex-direction:column;gap:1rem}.form,.form-label{display:flex}.form-label{align-items:center;color:var(--form-label-color);flex-direction:row;gap:.25rem;height:2rem;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.form-label.required:after{--tw-translate-y:0.125rem;--tw-scale-x:1.25;--tw-scale-y:1.25;--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity));content:"*";display:inline-block;margin-left:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.no-required .form-label.required:after{display:none}.form-label-actions{flex:1 1 auto;justify-content:flex-end}.form-label>.checkbox-primary{margin-left:.75rem}.form-tip{color:var(--form-tip-color);display:block;margin-top:.25rem}.has-error .form-tip{--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity))}.has-warning .form-tip{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.has-success .form-tip{--tw-text-opacity:1;color:rgba(var(--color-success-500-rgb),var(--tw-text-opacity))}.form-actions{display:flex;flex-direction:row;gap:1rem;justify-content:center}.form-grid{--form-grid-gap-x-half:calc(var(--form-grid-gap-x)/2);--form-grid-gap-y-half:calc(var(--form-grid-gap-y)/2);align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:0}.form-grid .form-group{padding:var(--form-grid-gap-y-half) var(--form-grid-gap-x-half)}.form-grid .form-label.required:after{margin-left:0;order:-9999}.form-grid .form-label .checkbox{margin-left:.75rem;margin-right:.75rem}.form-grid .has-wrap-after:after{--tw-content:"";content:var(--tw-content);display:block;width:100%}.form-grid-wrap{width:100%}.form-grid-row{display:flex;flex-direction:row;padding-bottom:var(--form-grid-gap-y-half);padding-top:var(--form-grid-gap-y-half);position:relative;width:100%}.form-grid-col{padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half)}.form-grid .form-actions{gap:1.5rem;justify-content:center;padding:var(--form-grid-gap-y) var(--form-grid-gap-x-half);width:100%}.form-grid .form-actions.is-pinned{border-top-width:1px}.form-horz .form-group,.form-horz .form-row{align-items:flex-start;display:flex;flex-direction:row}.form-horz .form-group{flex-grow:1;flex-wrap:wrap;min-height:32px;min-width:0;padding-left:var(--form-horz-label-width);position:relative}.form-horz .form-group[class*=" w-"],.form-horz .form-group[class^=w-]{flex:none}.form-horz .form-group>*{min-width:0}.form-horz .form-group.no-label{padding-left:0}.form-horz .form-group.no-label>.check-list-inline{padding-left:1rem;padding-right:1rem}.form-horz .form-label{justify-content:flex-end;left:0;padding-left:1rem;padding-right:.5rem;position:absolute;top:0;width:var(--form-horz-label-width)}.form-horz .form-label.required:after{margin-left:0;order:-9999}.form-horz .form-tip{width:100%}.form-horz .form-tip,.form-horz .input-control,.form-horz .input-group{flex:1 1 auto}.form .form-group-wrapper,.form-horz .form-group-wrapper{flex:1 1 auto;min-width:0;width:100%;z-index:1}.form .form-group-wrapper.flex-none,.form-horz .form-group-wrapper.flex-none{flex:none}.form fieldset>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.form fieldset{padding-bottom:1rem;padding-left:1rem}.form-grid fieldset>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.form legend{--tw-border-opacity:1;border-bottom-color:rgba(var(--color-primary-100-rgb),var(--tw-border-opacity));border-bottom-width:1px;display:flex;justify-content:flex-start;margin-left:-1rem;width:100%;width:calc(100% + 1rem)}.form-title{align-items:center;background-color:rgba(var(--color-primary-50-rgb),.5);display:flex;font-weight:700;height:1.75rem;padding-left:.75rem;padding-right:.75rem}:root{--input-control-fix-width-sm:2rem;--input-control-fix-width:4.375rem;--input-control-fix-width-lg:6.75rem}.input-control{--input-control-prefix:8px;--input-control-suffix:8px;position:relative}.input-control-prefix,.input-control-suffix{align-items:center;display:flex;height:100%;left:0;opacity:.5;padding-left:.5rem;padding-right:.5rem;position:absolute;top:0;white-space:nowrap;width:var(--input-control-prefix);z-index:1}.input-control-suffix{justify-content:flex-end;left:auto;right:0;width:var(--input-control-suffix)}.form-control:focus+.input-control-prefix,.form-control:focus+.input-control-suffix{opacity:1}.input-control>.form-control{padding-left:var(--input-control-prefix);padding-right:var(--input-control-suffix)}.input-control>select.form-control{background-position-x:calc(100% - var(--input-control-suffix) - 8px);padding-right:calc(var(--input-control-suffix) + 20px)}.has-prefix{--input-control-prefix:var(--input-control-fix-width)}.has-suffix{--input-control-suffix:var(--input-control-fix-width)}.has-prefix-sm{--input-control-prefix:var(--input-control-fix-width-sm)}.has-suffix-sm{--input-control-suffix:var(--input-control-fix-width-sm)}.has-prefix-lg{--input-control-prefix:var(--input-control-fix-width-lg)}.has-suffix-lg{--input-control-suffix:var(--input-control-fix-width-lg)}.has-prefix-icon{--input-control-prefix:32px}.has-suffix-icon{--input-control-suffix:32px}.input-control.has-prefix-icon{--input-control-prefix:32px}.input-control.has-suffix-icon{--input-control-suffix:32px}.input-control.has-prefix-icon>.input-control-prefix,.input-control.has-suffix-icon>.input-control-suffix{justify-content:center;padding:0}.input-control.size-sm>.form-control,.input-control.size-sm>.input-control-prefix,.input-control.size-sm>.input-control-suffix{font-size:.75rem;line-height:1rem}.input-control.size-lg>.form-control,.input-control.size-lg>.input-control-prefix,.input-control.size-lg>.input-control-suffix{font-size:1rem;line-height:1.5rem}:root{--label-bg:var(--color-gray-50);--label-border-color:var(--color-gray-500);--label-color:var(--color-gray-500);--label-radius:var(--radius)}.label{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--label-border-color);align-items:center;background-color:var(--label-bg);border-radius:var(--label-radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--label-color);display:inline-flex;font-size:.75rem;height:1.25rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem;white-space:pre-line}.label.size-lg{font-size:.8125rem;height:1.5rem;line-height:1.25rem;padding-left:.5rem;padding-right:.5rem}.label.size-sm{height:1rem}.label-dot{aspect-ratio:1/1;border-radius:var(--radius-full);height:.5rem;padding-left:0;padding-right:0}.caret,.caret-down,.caret-left,.caret-right,.caret-up{border:var(--caret-size,4px) solid transparent;display:inline-block;height:0;opacity:var(--caret-opacity,.5);width:0}:focus>.caret,:hover>.caret{opacity:inherit}.disabled .caret,.readonly .caret{opacity:var(--caret-opacity,.5)}.caret,.caret-down{border-bottom-width:0;border-top-color:currentColor}.caret-up{border-bottom-color:currentColor;border-top-width:0}.caret-right{border-left-color:currentColor;border-right-width:0}.caret-left{border-left-width:0;border-right-color:currentColor}.listitem{align-items:center;border-radius:var(--radius);display:flex;flex-direction:row;flex-wrap:nowrap;gap:.5rem;padding:.25rem}.listitem.selected{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.listitem.active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.item-actions,.item-avatar,.item-icon,.item-trailing,.item-trailing-icon{flex:none}.item-icon.icon-EMPTY{display:none}.item-subtitle{font-size:.75rem;line-height:1rem;opacity:.8}.item-content,.item-text{flex:1 1 auto;min-width:0}.item-leading,.item-trailing{align-items:center;display:flex;flex:none;gap:.5rem}.item-checkbox{margin-right:-.5rem}.item-content{align-items:center;display:flex;gap:.5rem}.multiline>.item-content{align-items:flex-start;flex-direction:column;gap:.25rem}.list{list-style-type:none;padding-left:0}.list-heading-inner .item-title{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-weight:700}.list.is-nested-sub{padding-left:var(--list-indent)}.is-nested-collapsed{display:none}.nested-toggle-icon{align-items:center;border-radius:var(--radius);display:flex;height:1rem;justify-content:center;margin-right:-.25rem;width:1rem}.magnifier{display:inline-block;height:1em;position:relative;width:1em}.magnifier:after,.magnifier:before{border-radius:var(--radius-full);content:"";display:block;position:absolute}.magnifier:before{border:1px solid;height:.75em;width:.75em}.magnifier:after{--tw-rotate:45deg;background-color:currentColor;height:1px;left:.55em;top:.7em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5em}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.search-box.compact.has-prefix-icon{--input-control-prefix:24px}.search-box.compact.has-suffix-icon{--input-control-suffix:24px}:root{--menu-bg:var(--color-canvas);--menu-active-bg:var(--color-primary-500);--menu-active-color:var(--color-canvas);--menu-selected-bg:var(--color-primary-50);--menu-selected-color:var(--color-primary-500);--menu-icon-opacity:.5;--menu-icon-margin:1.75rem;--menu-min-width:3rem;--menu-heading-color:var(--color-gray-500)}.menu{background:var(--menu-bg);max-width:var(--menu-max-width);min-width:var(--menu-min-width);padding:.5rem}.menu-wrapper{display:flex;flex-direction:column;min-height:0}.menu-wrapper>.menu{flex:1 1 auto;min-height:0;overflow:auto}.menu-item>.item-inner,.menu-item>a{align-items:center;border-radius:var(--radius);color:inherit;cursor:pointer;display:flex;gap:.5rem;justify-content:space-between;overflow:hidden;padding:.25rem .5rem;position:relative;text-overflow:ellipsis;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);white-space:nowrap}.menu-item>.selected{background:var(--menu-selected-bg);color:var(--menu-selected-color)}.menu-item>.active,.menu-item>a.hover,.menu-item>a:hover{background:var(--menu-active-bg);color:var(--menu-active-color)}.menu-item.disabled>a:hover,.menu-item>a.disabled:hover{background-color:inherit;color:inherit}.menu-item>a>.item-title{flex:1 1 auto}.menu>.divider{margin:.5rem .25rem}.menu-heading{align-items:center;color:var(--menu-heading-color);display:flex;font-size:.75rem;font-weight:700;height:2rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}.has-icons>.menu-item>a>.item-icon{align-items:center;display:flex;height:1rem;justify-content:center;opacity:var(--menu-icon-opacity);width:1rem}.menu-nested{--menu-indent:10px}.menu-nested .menu{background-color:transparent;margin-bottom:-.5rem;margin-left:var(--menu-indent);margin-top:-.5rem;padding-right:0}.menu-nested .menu-item>.item-inner{padding-left:0}.menu.compact .menu-item>a{padding-bottom:.125rem;padding-top:.125rem}.menu.compact .menu-heading{height:1.75rem}.search-menu-header{padding:.5rem .5rem .125rem}.search-menu-footer{padding:.125rem .5rem .5rem}.search-menu .item.is-not-match{display:none}.search-menu .item.is-not-match.has-match-child{display:list-item}.search-menu .item.is-not-match.has-match-child>.item-inner{opacity:.5;pointer-events:none}.search-menu.no-toggle-on-search .nested-toggle-icon{pointer-events:none}.search-menu .is-match-keys{font-weight:700;text-decoration-line:underline}.search-menu-no-match-hint{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));display:none;font-size:.75rem;line-height:1rem;padding:.5rem}.no-match-child .search-menu-no-match-hint{display:block}.no-match-child>.menu{display:none}:root{--alert-bg:var(--color-surface)}.alert{align-items:center;background-color:var(--alert-bg);border-radius:var(--radius);display:flex;gap:.75rem;padding:.5rem .75rem}.alert-content{display:flex;flex:1 1 auto;flex-direction:column;gap:1rem}.alert-close{margin-bottom:-.375rem;margin-right:-.5rem;margin-top:-.375rem}.alert-link{color:inherit;font-weight:700}.alert-link:hover{color:inherit;text-decoration-line:underline}.alert-heading{font-weight:700;margin:0}.alert-text{flex:1 1 auto;white-space:pre-line}.alert-actions{align-items:center;display:flex;gap:.5rem}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.messagers{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem;inset:0;justify-content:flex-end;padding:1rem;pointer-events:none;position:fixed;z-index:1900}.messagers-top-left,.messagers-top-right{justify-content:flex-start}.messagers-bottom-left,.messagers-top-left{align-items:flex-start}.messagers-bottom,.messagers-center,.messagers-top{align-items:center}.messagers-top,.messagers-top-left,.messagers-top-right{justify-content:flex-start}.messagers-center{justify-content:center}.messager{--tw-text-opacity:1;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-inverse-rgb),.8);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));pointer-events:auto;transition-duration:.3s}:root{--progress-radius:var(--radius);--progress-striped-size:40px;--progress-bg:var(--color-surface);--progress-bar-color:var(--color-primary-500)}.progress{background:var(--progress-bg);border-radius:var(--progress-radius);display:flex;height:1.25rem}.progress-bar{background:var(--progress-bar-color);height:100%}.progress-striped>.progress-bar{background-image:linear-gradient(45deg,rgba(var(--color-canvas-rgb),.15) 25%,transparent 25%,transparent 50%,rgba(var(--color-canvas-rgb),.15) 50%,rgba(var(--color-canvas-rgb),.15) 75%,transparent 75%,transparent);background-size:var(--progress-striped-size) var(--progress-striped-size)}.progress>.progress-bar:first-child{border-bottom-left-radius:inherit;border-top-left-radius:inherit}.progress>.progress-bar:last-child{border-bottom-right-radius:inherit;border-top-right-radius:inherit}.progress.active .progress-bar{animation:progress-bar-stripes 2s linear infinite}@keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}:root{--scrollbar-size:10px;--scrollbar-opacity:.6;--scrollbar-bg:rgba(var(--color-inverse-rgb),.15);--scrollbar-inset:inset 0 0 0 1px rgba(var(--color-inverse-rgb),.05);--scrollbar-bar-bg:rgba(var(--color-inverse-rgb),.3);--scrollbar-hover-bg:rgba(var(--color-inverse-rgb),.4);--scrollbar-drag-bg:rgba(var(--color-inverse-rgb),.5);--scrollbar-radius:var(--radius-sm);--scrollbar-duration:.7s}::-webkit-scrollbar{height:var(--scrollbar-size);width:var(--scrollbar-size)}::-webkit-scrollbar-track{box-shadow:var(--scrollbar-shadow);-webkit-transition:background-color var(--scrollbar-duration);transition:background-color var(--scrollbar-duration)}::-webkit-scrollbar-track:hover,:hover::-webkit-scrollbar-track{background:var(--scrollbar-bg)}::-webkit-scrollbar-thumb{background:var(--scrollbar-bar-bg);border-radius:var(--scrollbar-radius);min-height:var(--scrollbar-size);-webkit-transition:var(--scrollbar-duration);transition:var(--scrollbar-duration);-webkit-transition-property:background-color;transition-property:background-color}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover-bg)}::-webkit-scrollbar-thumb:active{background:var(--scrollbar-drag-bg)}.scrollbar-thin::-webkit-scrollbar{height:calc(var(--scrollbar-size)/2);width:calc(var(--scrollbar-size)/2)}.scrollbar-hover::-webkit-scrollbar,.scrollbar-hover::-webkit-scrollbar-thumb,.scrollbar-hover::-webkit-scrollbar-track{visibility:hidden}.scrollbar-hover:hover::-webkit-scrollbar,.scrollbar-hover:hover::-webkit-scrollbar-thumb,.scrollbar-hover:hover::-webkit-scrollbar-track{visibility:visible}@font-face{font-family:ZentaoIcon;font-style:normal;font-weight:400;src:url(./icons/ZentaoIcon.eot);src:url(./icons/ZentaoIcon.woff) format("woff"),url(./icons/ZentaoIcon.ttf) format("truetype"),url(./icons/ZentaoIcon.svg#regular) format("svg")}.icon,[class*=" icon-"],[class^=icon-]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-display:block;font-family:ZentaoIcon;font-size:14px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.icon:before{display:inline-block;min-width:14px;text-align:center}.icon-xs:before{font-size:.7em}.icon-sm:before{font-size:.8em}.icon-lg:before{font-size:1.25em;vertical-align:-10%}.icon-2x{font-size:28px}.icon-3x{font-size:42px}.icon-4x{font-size:56px}.icon-5x{font-size:70px}.icon-run{position:relative}.icon-run:before{opacity:.5}.icon-run:after{bottom:0;content:"\ea07";display:block;left:0;position:absolute;right:0;text-align:center;top:0}.icon-guihua:before{content:"\ea02"}.icon-memory:before{content:"\e9fd"}.icon-cpu:before{content:"\e9fe"}.icon-pause-pure:before{content:"\e9ff"}.icon-exclamation-pure:before{content:"\ea00"}.icon-zentao:before{content:"\e901"}.icon-zentao-alt:before{content:"\e900"}.icon-safe:before{content:"\ea06"}.icon-ai:before{content:"\e983"}.icon-kanban:before{content:"\e997"}.icon-college:before{content:"\e9c8"}.icon-home:before,.icon-menu-my:before{content:"\e97a"}.icon-program:before{content:"\e9aa"}.icon-lightbulb-alt:before,.icon-product:before{content:"\e98f"}.icon-project:before,.icon-rocket:before{content:"\e99c"}.icon-run:before{content:"\e9a9"}.icon-run-alt:before{content:"\ea07"}.icon-test:before{content:"\e956"}.icon-devops:before,.icon-infinite:before{content:"\e9a3"}.icon-doc:before,.icon-menu-doc:before{content:"\e99b"}.icon-statistic:before{content:"\e999"}.icon-group:before,.icon-menu-users:before,.icon-persons:before,.icon-team:before{content:"\e97e"}.icon-assets:before,.icon-diamond:before{content:"\e9ae"}.icon-flow:before{content:"\e994"}.icon-backend:before,.icon-cog-outline:before{content:"\ea05"}.icon-help:before{content:"\e968"}.icon-download:before,.icon-import:before{content:"\e904"}.icon-export:before{content:"\e905"}.icon-lightbulb:before{content:"\e91c"}.icon-close:before{content:"\e936"}.icon-check:before{content:"\e5ca"}.icon-minus:before{content:"\e926"}.icon-expand-alt:before{content:"\e6f1"}.icon-collapse-alt:before{content:"\e6f2"}.icon-fullscreen:before{content:"\e96b"}.icon-star-empty:before{content:"\e94a"}.icon-star:before{content:"\e94b"}.icon-exclamation-sign:before{content:"\e930"}.icon-info-sign:before{content:"\e9d5"}.icon-flag:before{content:"\e937"}.icon-check-circle:before{content:"\e92f"}.icon-check-sign:before{content:"\e938"}.icon-chart-pie:before{content:"\e95b"}.icon-history:before{content:"\e95f"}.icon-pencil:before{content:"\e254"}.icon-search:before{content:"\e928"}.icon-restart:before{content:"\e95e"}.icon-cog:before{content:"\e93b"}.icon-chart-line:before{content:"\e95c"}.icon-bar-chart:before,.icon-chart-bar:before{content:"\e95d"}.icon-exchange:before{content:"\e927"}.icon-severity:before{content:"\e973"}.icon-book:before{content:"\f02d"}.icon-treemap-alt:before{content:"\e971"}.icon-severity-solid:before{content:"\e902"}.icon-chat-line:before{content:"\e998"}.icon-stack:before{content:"\e943"}.icon-cube:before{content:"\e967"}.icon-minus-sign:before{content:"\e939"}.icon-bars-sign:before{content:"\e93a"}.icon-chat:before,.icon-message:before{content:"\e940"}.icon-more:before{content:"\e744"}.icon-certificate:before{content:"\f0a3"}.icon-bell:before{content:"\e7f5"}.icon-columns:before{content:"\f0db"}.icon-envelope-o:before{content:"\e92a"}.icon-unfold-all:before{content:"\e931"}.icon-fold-all:before{content:"\e932"}.icon-bars:before{content:"\e948"}.icon-cards-view:before{content:"\e949"}.icon-ellipsis-v:before{content:"\e5d4"}.icon-spinner-indicator:before{content:"\e982"}.icon-up-circle:before{content:"\e92b"}.icon-right-circle:before{content:"\e92c"}.icon-down-circle:before{content:"\e92d"}.icon-left-circle:before{content:"\e92e"}.icon-angle-double-right:before{content:"\f101"}.icon-angle-down:before{content:"\e313"}.icon-angle-left:before{content:"\e314"}.icon-angle-right:before{content:"\e315"}.icon-angle-top:before{content:"\e316"}.icon-first-page:before{content:"\e5dc"}.icon-last-page:before{content:"\e5dd"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-arrow-up:before{content:"\e923"}.icon-arrow-down:before{content:"\e924"}.icon-arrow-left:before{content:"\e952"}.icon-arrow-right:before{content:"\e93e"}.icon-chevron-left:before{content:"\e934"}.icon-chevron-right:before{content:"\e935"}.icon-chevron-double-up:before{content:"\e959"}.icon-chevron-double-down:before{content:"\e95a"}.icon-folder-account:before{content:"\e942"}.icon-folder-move:before{content:"\e960"}.icon-folder-plus:before{content:"\e961"}.icon-folder-upload:before{content:"\e962"}.icon-folder-star:before{content:"\e963"}.icon-folder-edit:before{content:"\e964"}.icon-folder-download:before{content:"\e965"}.icon-folder-outline:before{content:"\e966"}.icon-folder:before{content:"\e944"}.icon-folder-o:before{content:"\e945"}.icon-folder-open-o:before{content:"\e946"}.icon-folder-open:before{content:"\e947"}.icon-color:before{content:"\e93c"}.icon-paper-clip:before{content:"\e93d"}.icon-text:before{content:"\e929"}.icon-share:before{content:"\f064"}.icon-format-list-bulleted:before{content:"\e9a8"}.icon-format-bold:before{content:"\e953"}.icon-format-header-pound:before{content:"\e954"}.icon-format-italic:before{content:"\e955"}.icon-format-list-numbers:before{content:"\e969"}.icon-format-quote-close:before{content:"\e96a"}.icon-image:before{content:"\e96c"}.icon-table-large:before{content:"\e96d"}.icon-productplan:before{content:"\e9fc"}.icon-aiux:before{content:"\e99e"}.icon-qc:before{content:"\e986"}.icon-qc-q:before{content:"\e985"}.icon-qc-c:before{content:"\e987"}.icon-sonarqube:before{content:"\e9ba"}.icon-market:before{content:"\ea01"}.icon-ztool:before{content:"\e9c1"}.icon-contacts:before{content:"\e9c3"}.icon-chats:before{content:"\e9c4"}.icon-ops:before{content:"\e903"}.icon-menu-backend:before{content:"\e993"}.icon-feedback:before{content:"\e991"}.icon-oa:before{content:"\e9a1"}.icon-more-circle:before{content:"\e988"}.icon-controls:before{content:"\e995"}.icon-account:before{content:"\e992"}.icon-about:before,.icon-info:before{content:"\e996"}.icon-exclamation:before{content:"\e9fa"}.icon-exit:before{content:"\e99a"}.icon-theme:before{content:"\e9a0"}.icon-globe:before,.icon-lang:before{content:"\f0ac"}.icon-template:before{content:"\e9fb"}.icon-seal:before{content:"\e9f8"}.icon-menu-arrow-left:before{content:"\e9f0"}.icon-menu-arrow-right:before{content:"\e9f1"}.icon-add-directory:before{content:"\e9ef"}.icon-design:before{content:"\e9ec"}.icon-download-alt:before{content:"\e9ea"}.icon-blame:before{content:"\e9e0"}.icon-draft-edit:before{content:"\e9dc"}.icon-sub-review-user:before{content:"\e9db"}.icon-sub-review:before{content:"\e9df"}.icon-ztf:before{content:"\e9dd"}.icon-save:before{content:"\e9d8"}.icon-list-box:before{content:"\e9b4"}.icon-usecase:before{content:"\e99d"}.icon-code:before{content:"\e990"}.icon-summary:before{content:"\e9ad"}.icon-more-alt:before{content:"\e9a7"}.icon-customer:before{content:"\e9d9"}.icon-or:before{content:"\ea0b"}.icon-manager:before{content:"\ea0c"}.icon-target:before{content:"\ea0a"}.icon-ipd:before{content:"\e9f9"}.icon-wiki-lib:before{content:"\e9f5"}.icon-annex-lib:before{content:"\e9f6"}.icon-interface-lib:before{content:"\e9f7"}.icon-has-authority-pack:before{content:"\e9f3"}.icon-without-authority-pack:before{content:"\e9f4"}.icon-data-structure:before{content:"\e9f2"}.icon-waterfallplus:before{content:"\e9ed"}.icon-agileplus:before{content:"\e9ee"}.icon-horn:before{content:"\e9eb"}.icon-resume:before{content:"\e9e9"}.icon-mirror:before{content:"\e9e6"}.icon-remote:before{content:"\e9e7"}.icon-moon:before{content:"\e9e8"}.icon-ticket:before{content:"\e9e1"}.icon-gantt-alt:before{content:"\e9e2"}.icon-tree:before{content:"\e9c9"}.icon-list:before{content:"\e9cb"}.icon-gantt:before{content:"\e9cc"}.icon-group-view:before{content:"\e9cd"}.icon-inherit-space:before{content:"\e9c2"}.icon-card-archive:before{content:"\e9b8"}.icon-col-archive:before{content:"\e9b9"}.icon-col-add-right:before{content:"\e9bb"}.icon-col-add-left:before{content:"\e9bc"}.icon-col-split:before{content:"\e9bd"}.icon-waterfall:before{content:"\e9a4"}.icon-manual:before{content:"\e98d"}.icon-lane:before{content:"\e9b1"}.icon-unpinned:before{content:"\ea08"}.icon-pinned:before{content:"\ea09"}.icon-support-ticket:before{content:"\ea04"}.icon-snap-house:before{content:"\e9e3"}.icon-wrench:before{content:"\e9e4"}.icon-desktop:before{content:"\e9e5"}.icon-back-circle:before{content:"\e9da"}.icon-back:before{content:"\e9d3"}.icon-shield:before{content:"\e9ca"}.icon-meh:before{content:"\e9ce"}.icon-frown:before{content:"\e9cf"}.icon-smile:before{content:"\e9d0"}.icon-unlock-solid:before{content:"\e9d1"}.icon-lock-solid:before{content:"\e9d2"}.icon-ver:before{content:"\e9c6"}.icon-publish:before,.icon-send:before{content:"\e9c7"}.icon-tag:before{content:"\e9be"}.icon-tag-lock:before{content:"\e9bf"}.icon-code-fork:before{content:"\f126"}.icon-branch-lock:before{content:"\e9c0"}.icon-groups:before{content:"\e9af"}.icon-thumbs-up:before{content:"\f087"}.icon-thumbs-down:before{content:"\f088"}.icon-thumbs-up-solid:before{content:"\e9d6"}.icon-thumbs-down-solid:before{content:"\e9d7"}.icon-hash:before,.icon-version:before{content:"\e9ab"}.icon-p-square:before{content:"\e97b"}.icon-video-play:before{content:"\e97f"}.icon-plus-solid-circle:before{content:"\e974"}.icon-minuse-solid-circle:before{content:"\e9b6"}.icon-s:before{content:"\e975"}.icon-c:before{content:"\e976"}.icon-t:before{content:"\e977"}.icon-guide:before{content:"\e978"}.icon-todo:before{content:"\e979"}.icon-plus:before{content:"\e925"}.icon-side-left:before{content:"\e9b3"}.icon-side-right:before{content:"\e9b2"}.icon-fullscreen-exit:before{content:"\e972"}.icon-alert:before{content:"\e99f"}.icon-undo:before{content:"\e93f"}.icon-redo:before{content:"\e9d4"}.icon-swap:before{content:"\e9b0"}.icon-chat-solid:before{content:"\e9b5"}.icon-clock:before{content:"\e97c"}.icon-cost:before{content:"\e97d"}.icon-pencil-alt:before{content:"\e984"}.icon-size-height:before{content:"\e9c5"}.icon-upload-file:before{content:"\ea03"}.icon-file-log:before{content:"\e9de"}.icon-rich-text:before{content:"\e913"}.icon-markdown:before{content:"\e916"}.icon-excel:before{content:"\e933"}.icon-text-link:before{content:"\e94d"}.icon-ppt:before{content:"\e957"}.icon-word:before{content:"\e958"}.icon-doc-lib:before{content:"\e96f"}.icon-file-empty:before,.icon-file:before{content:"\f016"}.icon-file-text:before{content:"\f0f6"}.icon-file-alt:before{content:"\f15b"}.icon-file-text-alt:before{content:"\f15c"}.icon-file-pdf:before{content:"\f1c1"}.icon-file-word:before{content:"\f1c2"}.icon-file-excel:before{content:"\f1c3"}.icon-file-powerpoint:before{content:"\f1c4"}.icon-file-image:before{content:"\f1c5"}.icon-file-archive:before{content:"\f1c6"}.icon-file-audio:before{content:"\f1c7"}.icon-file-video:before{content:"\f1c8"}.icon-file-code:before{content:"\f1c9"}.icon-menu-collapse:before{content:"\e980"}.icon-menu-expand:before{content:"\e981"}.icon-estimate:before{content:"\e9ac"}.icon-sprint:before{content:"\e9a2"}.icon-shield-check:before{content:"\e9a5"}.icon-ok:before{content:"\e9a6"}.icon-printer:before{content:"\e906"}.icon-bullhorn:before{content:"\e910"}.icon-person:before{content:"\e941"}.icon-fields:before{content:"\e989"}.icon-trigger:before{content:"\e98a"}.icon-layout:before{content:"\e98b"}.icon-audit:before{content:"\e98c"}.icon-ban-circle:before,.icon-cancel:before{content:"\e951"}.icon-eye:before{content:"\e94e"}.icon-eye-off:before{content:"\e96e"}.icon-unlock:before{content:"\e94f"}.icon-lock:before,.icon-private:before{content:"\e950"}.icon-move:before{content:"\e94c"}.icon-hand-right:before{content:"\e907"}.icon-checked:before{content:"\e908"}.icon-off:before{content:"\e909"}.icon-play:before,.icon-start:before{content:"\e90a"}.icon-time:before{content:"\e90b"}.icon-edit:before{content:"\e90c"}.icon-trash:before{content:"\e90d"}.icon-link:before{content:"\e90e"}.icon-unlink:before{content:"\e90f"}.icon-bug:before{content:"\e911"}.icon-list-alt:before{content:"\e912"}.icon-alter:before,.icon-change:before{content:"\e970"}.icon-glasses:before,.icon-review:before{content:"\e914"}.icon-sitemap:before,.icon-testcase:before{content:"\e915"}.icon-pluses:before{content:"\e917"}.icon-report-list:before{content:"\e918"}.icon-active:before,.icon-magic:before{content:"\e919"}.icon-treemap:before{content:"\e91a"}.icon-confirm:before{content:"\e91b"}.icon-split:before{content:"\e98e"}.icon-calendar:before,.icon-delay:before{content:"\e91d"}.icon-pause:before{content:"\e91e"}.icon-ban:before{content:"\e91f"}.icon-plus-bold:before{content:"\e920"}.icon-copy:before{content:"\e921"}.icon-refresh:before{content:"\e922"}.icon-diff:before{content:"\e9b7"}.status-active,.status-asked,.status-normal,.status-unconfirmed,.status-wait{color:#313c52}.status-active.status-issue,.status-checking,.status-commenting,.status-confirmed,.status-doing{color:#ff6f42}.status-blocked,.status-hangup,.status-pause,.status-suspended{color:#b89664}.status-clarify,.status-draft{color:#8166ee}.status-noreview,.status-reviewing,.status-wait.status-testcase{color:#18a6fd}.status-active.status-risk,.status-changed,.status-changing,.status-fail{color:#fb2b2b}.status-checked,.status-done,.status-pass,.status-replied,.status-resolved,.status-success{color:#0dbb7d}.status-cancel,.status-canceled,.status-investigate{color:#838a9d}.status-canceled,.status-closed,.status-testtask.status-done{color:#9ea3b0}.pri,[class*=" pri-"],[class^=pri-]{--tw-text-opacity:1;border-color:currentColor;border-radius:var(--radius-full);border-width:1px;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity));display:inline-block;font-size:.75rem;height:1rem;line-height:1rem;line-height:14px;max-width:54px;min-width:16px;overflow:hidden;padding-left:.125rem;padding-right:.125rem;text-align:center;white-space:nowrap}.pri-1{color:rgb(255 73 18/var(--tw-text-opacity))}.pri-1,.pri-2{--tw-text-opacity:1}.pri-2{color:rgba(var(--color-warning-600-rgb),var(--tw-text-opacity))}.pri-3{color:rgb(59 130 246/var(--tw-text-opacity))}.pri-3,.pri-4{--tw-text-opacity:1}.pri-4{color:rgb(149 211 224/var(--tw-text-opacity))}.severity{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity));display:inline-block;font-size:.75rem;height:1rem;line-height:1rem;line-height:14px;max-width:54px;min-width:16px;overflow:hidden;padding-left:.125rem;padding-right:.125rem;position:relative;text-align:center;white-space:nowrap}.severity:before{--tw-content:attr(data-severity);background-color:currentColor;background-repeat:no-repeat;content:var(--tw-content);height:100%;left:0;-webkit-mask:url('data:image/svg+xml;charset=utf-8,');mask:url('data:image/svg+xml;charset=utf-8,');-webkit-mask-size:100% 100%;mask-size:100% 100%;position:absolute;top:0;width:100%;z-index:0}.severity:after,.severity:before{display:inline-block}.severity:after{--tw-scale-x:.75;--tw-scale-y:.75;content:attr(data-severity);line-height:20px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.severity[data-severity="1"]{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.severity[data-severity="2"]{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity))}.severity[data-severity="3"]{--tw-text-opacity:1;color:rgb(250 174 26/var(--tw-text-opacity))}.severity[data-severity="4"]{--tw-text-opacity:1;color:rgb(184 150 100/var(--tw-text-opacity))}.severity[data-severity="5"]{--tw-text-opacity:1;color:rgb(158 163 176/var(--tw-text-opacity))}.severity-label{background-color:transparent}.severity-label:after,.severity-label:before{--tw-content:none;content:var(--tw-content)}.risk-high{color:rgb(220 38 38/var(--tw-text-opacity))}.risk-high,.risk-middle{--tw-text-opacity:1}.risk-middle{color:rgb(234 179 8/var(--tw-text-opacity))}.nav-feature{--nav-active-bg:rgba(var(--color-primary-800-rgb),.07)}.nav-feature .nav-checkbox>.checkbox,.nav-feature .nav-checkbox>.checkbox-primary,.nav-feature .nav-item>a{align-items:center;border-radius:var(--radius);height:2rem;padding-left:.625rem;padding-right:.625rem}.nav-feature .nav-item>a>.icon{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.sortable-list .listitem{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));cursor:move;padding-left:.5rem;padding-right:.5rem}.sortable-list .sortable-ghost>.listitem{--tw-bg-opacity:1;background-color:rgba(var(--color-warning-50-rgb),var(--tw-bg-opacity))}:root{--avatar-radius:12.5%;--avatar-bg:var(--color-surface)}.avatar{align-items:center;aspect-ratio:1/1;background:var(--avatar-bg);border-radius:var(--avatar-radius);display:inline-flex;justify-content:center;overflow:hidden;width:2rem}.avatar>img{height:100%;margin:0;-o-object-fit:cover;object-fit:cover;width:100%}.avatar.size-xs{width:1.25rem}.avatar.size-sm,.avatar.size-xs{font-size:.75rem;line-height:1rem}.avatar.size-sm{width:1.5rem}.avatar.size-lg{font-size:1.5rem;line-height:2rem;width:3rem}.avatar.size-xl{font-size:2.25rem;line-height:2.5rem;width:5rem}.avatar-group{display:flex;gap:.625rem}.avatar-group>.avatar{box-shadow:0 0 0 1px var(--color-canvas)}.avatar-group>*+*{margin-left:-1rem}.avatar-group.size-xs>*+*{margin-left:-.75rem}.avatar-group.size-sm>*+*{margin-left:-.875rem}.avatar-group.size-lg>*+*{margin-left:-1.25rem}.avatar-group.size-xl>*+*{margin-left:-1.5rem}.btn-group{display:flex;gap:1px}.btn-group>.btn.active{z-index:1}.btn-group>.btn:focus-within,.btn-group>.btn:hover{z-index:2}.btn-group>.btn.disabled,.btn-group>.btn:disabled{z-index:-1}.btn-group>.btn:not(:first-child){border-bottom-left-radius:var(--radius-none);border-left-color:rgba(var(--color-canvas-rgb),.2);border-left-width:1px;border-top-left-radius:var(--radius-none)}.btn-group>.btn:not(:first-child):before{left:-1px}.btn-group>.btn:not(:last-child){border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none)}.color-picker-heading{align-items:center;font-weight:700;justify-content:space-between;margin-bottom:-.25rem;padding:.5rem}.color-picker-heading,.color-picker-row{display:flex;flex-direction:row}.color-picker-row{flex-wrap:wrap;gap:.5rem;padding:.75rem}.color-picker-item{--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);align-items:center;border-radius:var(--radius-full);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));display:flex;height:1.25rem;justify-content:center;padding-left:.125rem;padding-right:.125rem;width:1.25rem}.pick-container{left:0;pointer-events:none;position:absolute;top:0;z-index:1600}.pick-pop{display:flex;flex-direction:column;opacity:0;pointer-events:auto;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);z-index:1200}.pick-pop.in{opacity:1}.date-picker-menu{--menu-bg:none}.date-picker-menu .mini-calendar{margin-top:-.75rem}.date-pick-menu-month,.date-pick-menu-years{display:flex;flex-direction:row;flex-wrap:wrap;gap:1px;max-height:237px;padding-bottom:.5rem;padding-left:.5rem;padding-right:.5rem}.date-pick-menu-years>.btn{width:2.5rem}.date-pick-menu-years>.btn.is-current{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.date-pick-menu-month>.btn.active,.date-pick-menu-years>.btn.active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.date-pick-menu-month>.btn{width:3rem}.date-picker-menu-footer{border-top-width:1px;display:flex;flex-direction:row;padding:.25rem}.date-picker-menu-footer>.toolbar{flex:1 1 auto;justify-content:center}.date-picker-menu>.menu{border-right-width:1px}.date-picker-menu .menu-item{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.time-picker-menu{max-height:inherit}.time-picker-menu .menu-item>a{justify-content:center}.datetime-picker-menu{max-height:inherit}.mini-calendar{padding:.5rem}.mini-calendar>.row>.col{align-items:center;justify-content:center;width:14.2857%}.mini-calendar-day{height:2rem}.mini-calendar-day.disabled{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-200-rgb),var(--tw-bg-opacity));opacity:.5;pointer-events:none}.mini-calendar-day>.btn{width:2rem}.mini-calendar-day.is-weekend>.btn{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.mini-calendar-day.active>.btn,.mini-calendar-day.is-today>.btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.mini-calendar-day.selected>.btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.mini-calendar-day.is-out-month{opacity:.5}.i-time{border-color:currentColor;border-radius:50%;border-width:.08em;display:inline-block;height:1em;position:relative;width:1em}.i-time:after{--tw-content:"";border-color:currentColor;border-width:0 0 .08em .08em;content:var(--tw-content);height:.385em;left:.3846em;position:absolute;top:.08em;width:.385em}.chevron-down,.chevron-left,.chevron-right,.chevron-up{align-items:center;display:inline-flex;height:1em;justify-content:center;position:relative;width:1em}.chevron-down:before,.chevron-left:before,.chevron-right:before,.chevron-up:before{--tw-translate-y:-0.125rem;--tw-rotate:45deg;--tw-content:"";border-color:currentColor;border-width:0 1px 1px 0;content:var(--tw-content);display:block;height:.6923077em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform-origin:center;width:.6923077em}.chevron-left:before{--tw-translate-y:0px;--tw-translate-x:0.125rem;--tw-rotate:135deg}.chevron-left:before,.chevron-right:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-right:before{--tw-translate-y:0px;--tw-translate-x:-0.125rem;--tw-rotate:-45deg}.chevron-up:before{--tw-translate-y:0.125rem;--tw-rotate:225deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.i-calendar{border-radius:2px;display:inline-block;height:.79em;margin-top:.16em;position:relative;width:1em}.i-calendar,.i-calendar:after,.i-calendar:before{border-color:currentColor;border-width:.08em}.i-calendar:after,.i-calendar:before{--tw-content:"";content:var(--tw-content);position:absolute}.i-calendar:before{border-bottom-width:0;left:.15em;top:.307em;width:.6em}.i-calendar:after{border-bottom-width:0;border-top-width:0;height:.3077em;left:.17em;top:-.154em;width:.538em}:root{--modal-radius:var(--radius-lg);--modal-bg:rgba(var(--color-inverse-rgb),.4);--modal-sm:37.5rem;--modal-base:50rem;--modal-lg:75rem;--modal-xl:90rem}.modal{align-items:center;background-color:var(--modal-bg);display:none;inset:0;justify-content:center;overflow:hidden;position:fixed;z-index:1500}.modal.load-indicator:before{background-color:transparent;transition-property:none}.modal.loading:after{--tw-text-opacity:1;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.modal.loading .modal-dialog{opacity:0!important}.modal.show{display:flex}.modal-no-backdrop{background-color:transparent;pointer-events:none}.modal-hide{opacity:0!important}.modal-dialog{--tw-bg-opacity:0.9;--tw-shadow:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--tw-shadow-colored:0 10px 50px -10px var(--tw-shadow-color),0 8px 20px -10px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--modal-radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);pointer-events:auto;position:relative;width:var(--modal-base)}.modal-content,.modal-dialog{max-height:100vh}.modal-content{display:flex;flex-direction:column;height:100%}.loading>.modal-dialog>.modal-content{opacity:0;visibility:hidden}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.modal-header{align-items:center;display:flex;flex:none;flex-wrap:nowrap;gap:1rem;padding:1rem 1.25rem;position:relative}.modal-title{flex:1 1 auto;font-size:1rem;font-weight:700;line-height:1.5rem}.modal-actions{position:absolute;right:.75rem;top:.75rem;z-index:10}.modal-body{flex:1 1 auto;overflow:auto;padding:1rem 1.25rem}.modal-footer{align-items:center;display:flex;flex:none;gap:.75rem;padding:1.25rem}.modal-dialog.size-full,.modal-dialog[data-size=full]{height:100vh;width:100vw}.modal-dialog.size-sm,.modal-dialog[data-size=sm]{width:var(--modal-sm)}.modal-dialog.size-lg,.modal-dialog[data-size=lg]{width:var(--modal-lg)}.modal-dialog.size-xl,.modal-dialog[data-size=xl]{width:var(--modal-xl)}.modal-iframe{flex:1 1 auto;width:100%}.modal-trans{opacity:0;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.modal-trans.in{opacity:1}.modal-trans>.modal-dialog{--tw-scale-x:.95;--tw-scale-y:.95;opacity:0;transition-duration:.3s;transition-property:transform,opacity}.modal-trans.in>.modal-dialog,.modal-trans>.modal-dialog{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.modal-trans.in>.modal-dialog{--tw-scale-x:1;--tw-scale-y:1;opacity:1}.modal-alert .modal-footer{justify-content:flex-end}.modal-alert .modal-header{margin-bottom:-1rem}.modal-alert .modal-body{white-space:pre-line}.modal-alert .modal-actions+.modal-body{padding-right:3rem}.modal-alert .modal-header+.modal-actions+.modal-body{padding-right:1.25rem}.file-selector{gap:.5rem;width:100%}.file-selector,.file-selector-box{display:flex;flex-direction:column}.file-selector-box{--tw-border-opacity:1;--tw-ring-color:transparent;--state-color:rgba(var(--color-primary-500-rgb),.05);background-color:rgba(var(--color-primary-50-rgb),.3);border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-style:dashed;border-width:1px;gap:0;height:auto;justify-content:center;padding:.5rem .75rem;position:relative}.file-selector-box .text{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.is-dragging .file-selector-box{border-style:solid}.file-selector-btn{align-items:center;display:flex;gap:.5rem;position:relative}.is-dragging .file-selector-btn{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.file-selector-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;inset:0;opacity:.1;position:absolute}.file-selector-tip{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.file-selector.is-mode-button{flex-direction:column-reverse}.file-selector-list.is-empty{display:none}.file-selector-item .item-avatar{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.file-selector-item .item-subtitle{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.file-selector-item .item-content{flex:none;margin-right:.25rem;max-width:100%}.file-selector-item>.listitem:hover{background-color:rgba(var(--color-gray-500-rgb),.05)}.file-selector-item.is-renaming .item-avatar+.item-content{max-width:calc(100% - 32px)}.file-selector-rename-text{max-width:100%;min-width:100px;position:relative}.file-selector-rename-text>div{overflow:hidden;pointer-events:none;visibility:hidden;white-space:nowrap}.file-selector-rename-input{inset:0;position:absolute}.file-selector-grid{--tw-bg-opacity:1;align-items:flex-start;background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity));border-color:transparent;border-radius:var(--radius);border-width:1px;display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--file-selector-grid-gap);padding:.5rem}.file-selector-grid-item{height:var(--file-selector-grid-height)}.file-selector-grid-btn,.file-selector-grid-item{width:var(--file-selector-grid-width)}.file-selector-grid-btn{--tw-border-opacity:1;--tw-ring-color:transparent;--state-color:rgba(var(--color-primary-500-rgb),.05);aspect-ratio:1/1;background-color:rgba(var(--color-primary-50-rgb),.3);border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-style:dashed;border-width:1px;display:flex;flex-direction:column;gap:0;height:auto;justify-content:center;padding:.5rem}.file-selector-grid-btn .text{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.file-selector-grid-item .listitem{flex-direction:column;height:100%;padding:0;position:relative;width:100%}.file-selector-grid-item .item-avatar{--tw-text-opacity:1;border-radius:var(--radius);border-width:1px;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));width:100%}.file-selector-grid-item .item-avatar.has-icon>.icon{font-size:calc(var(--file-selector-grid-width)/2)}.file-selector-grid-item .item-content,.file-selector-grid-item .toolbar{aspect-ratio:1/1;left:0;position:absolute;right:0;top:0;width:100%}.file-selector-grid-item .item-title{bottom:-1.25rem;font-size:.75rem;left:0;line-height:1rem;overflow:hidden;position:absolute;right:1.5rem;white-space:nowrap}.file-selector-grid-item .item-subtitle{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);bottom:.25rem;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));font-size:.75rem;left:.25rem;line-height:1rem;opacity:0;padding-left:.25rem;padding-right:.25rem;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.file-selector-grid-item:hover .item-subtitle{opacity:1}.file-selector-grid-item .toolbar .btn[data-remove-file]{--tw-text-opacity:1;background-color:rgba(var(--color-inverse-rgb),.5);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));padding:.375rem;position:absolute;right:1px;top:1px}.file-selector-grid-item .toolbar .btn[data-rename-file]{bottom:-1.5rem;padding:0;position:absolute;right:0}.file-selector-grid .file-selector-rename{bottom:0;height:1.5rem;position:absolute;top:auto}.file-selector-grid .file-selector-rename-text{width:100%}.is-dragging .file-selector-grid{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-primary-400-rgb),var(--tw-border-opacity));border-width:1px}:root{--nav-radius:var(--radius);--nav-active-color:var(--color-primary-500);--nav-active-bg:var(--color-inherit);--nav-heading-color:var(--color-gray-500)}.nav{list-style-type:none;padding-left:0}.nav,.nav-item{align-items:center;display:flex;position:relative}.nav-item{gap:.75rem}.nav-item>a{align-items:center;color:inherit;cursor:pointer;display:flex;gap:.25rem;height:2rem;justify-content:center;padding-left:1rem;padding-right:1rem}.nav-item>.active{background:var(--nav-active-bg);color:var(--nav-active-color);font-weight:700}.nav-item>.disabled{opacity:1}.nav-item>.disabled>*{opacity:var(--disabled-opacity)}.nav-divider,.nav>.divider{margin:.5rem}.nav-heading{align-items:center;color:var(--nav-heading-color);display:flex;font-weight:700;gap:.25rem;height:2rem;justify-content:center;padding-left:1rem;padding-right:1rem}.nav-space{flex:1 1 auto;width:1rem}.nav-primary>.nav-item{position:relative}.nav-primary>.nav-item:hover{z-index:10}.nav-primary>.nav-item+.nav-item{margin-left:-1px}.nav-primary>.nav-item>a{border-radius:var(--radius-none);border-width:1px}.nav-primary>.nav-item:first-child>a,.nav-primary>.nav-item:has(.nav-heading)+.nav-item>a{border-bottom-left-radius:var(--nav-radius);border-top-left-radius:var(--nav-radius)}.nav-primary>.nav-item:last-child>a{border-bottom-right-radius:var(--nav-radius);border-top-right-radius:var(--nav-radius)}.nav-primary>.nav-item>.active{--tw-text-opacity:1;background:var(--nav-active-color);border-color:var(--nav-active-color);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.nav-primary>.nav-divider{display:none}.nav-secondary>.nav-item>a{border-radius:var(--radius-none);position:relative}.nav-secondary>.nav-item>a:after{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:-2px;content:var(--tw-content);display:block;height:2px;left:0;position:absolute;right:0}.nav-secondary>.nav-item>.active:after{background-color:currentColor}.nav-secondary>.nav-divider{margin:0 0 0 -1px}.nav-tabs>.nav-item>a{border-bottom-left-radius:var(--radius-none);border-bottom-right-radius:var(--radius-none);position:relative}.nav-tabs>.nav-item>a:after{--tw-border-opacity:1;--tw-content:"";border-color:transparent;border-bottom-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-top-left-radius:inherit;border-top-right-radius:inherit;border-width:1px;content:var(--tw-content);display:block;inset:-1px;pointer-events:none;position:absolute}.nav-tabs>.nav-item>.active:after{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-bottom-color:transparent}.nav-tabs>.nav-divider{margin:0 0 0 -1px}.nav-pills>.nav-item>a{border-radius:var(--radius-full)}.nav-pills>.nav-item>.active{--tw-text-opacity:1;background:var(--nav-active-color);border-color:var(--nav-active-color);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.nav-stacked{flex-direction:column}.nav-stacked>.nav-item{width:100%}.nav-stacked>.nav-heading,.nav-stacked>.nav-item>a{justify-content:flex-start;width:100%}.nav-stacked>.nav-divider{height:1px;margin:.5rem 0;width:100%}.nav-primary.nav-stacked>.nav-item>a{height:2.5rem}.nav-primary.nav-stacked>.nav-item+.nav-item{margin-left:0;margin-top:-1px}.nav-primary.nav-stacked>.nav-item:first-child>a{border-bottom-left-radius:0;border-top-left-radius:var(--nav-radius);border-top-right-radius:var(--nav-radius)}.nav-primary.nav-stacked>.nav-item:last-child>a{border-bottom-left-radius:var(--nav-radius);border-bottom-right-radius:var(--nav-radius);border-top-right-radius:0}.nav-secondary.nav-stacked>.nav-item>a:after{--tw-bg-opacity:1;background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:0;height:100%;left:auto;right:0;top:0;width:2px}.nav-secondary.nav-stacked>.nav-item>.active:after{background-color:currentColor}.nav-secondary.nav-stacked>.nav-divider{margin:0}.nav-tabs.nav-stacked>.nav-item>a{border-bottom-left-radius:var(--nav-radius);border-bottom-right-radius:var(--radius-none);border-top-right-radius:var(--radius-none);position:relative}.nav-tabs.nav-stacked>.nav-item>a:after{--tw-border-opacity:1;border-bottom-color:transparent;border-bottom-left-radius:inherit;border-right-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-top-left-radius:inherit}.nav-tabs.nav-stacked>.nav-item>a.active:after{--tw-border-opacity:1;border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-right-color:transparent}.nav-tabs.nav-stacked>.nav-divider{margin:0}.nav-pills.nav-stacked>.nav-item+.nav-item{margin-top:.25rem}.nav-justified>.nav-item:not(.flex-none,.nav-divider){flex:1 1 auto}.nav-justified>.nav-item>a{width:100%}.arrow,.arrow:before{background:inherit;height:calc(var(--arrow-size)*1.4142);position:absolute;width:calc(var(--arrow-size)*1.4142)}.arrow{--arrow-size:5px;visibility:hidden}.arrow:before{--tw-rotate:45deg;border:inherit;content:"";transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));visibility:visible}.arrow-top,.arrow-up{border-bottom:inherit;border-right:inherit;border-width:1px 0 0 1px;top:calc(1px - var(--arrow-size))}.white>.arrow-top,.white>.arrow-up{top:calc(0px - var(--arrow-size))}.arrow-bottom,.arrow-down{border-left:inherit;border-top:inherit;border-width:0 1px 1px 0;bottom:calc(1px - var(--arrow-size))}.white>.arrow-bottom,.white>.arrow-down{bottom:calc(0px - var(--arrow-size))}.arrow-left{border-right:inherit;border-top:inherit;border-width:0 0 1px 1px;left:calc(1px - var(--arrow-size))}.white>.arrow-left{left:calc(0px - var(--arrow-size))}.arrow-right{border-bottom:inherit;border-left:inherit;border-width:1px 1px 0 0;right:calc(1px - var(--arrow-size))}.white>.arrow-right{right:calc(0px - var(--arrow-size))}.popover{display:none;position:absolute;width:-moz-max-content;width:max-content}.popover.show{display:block}.popover-heading{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-top-left-radius:inherit;border-top-right-radius:inherit;display:flex;gap:1rem;height:2.5rem;justify-content:space-between;padding-left:.75rem;padding-right:.5rem}.popover-title{flex:1 1 auto;font-weight:700}.popover-content{padding:.75rem}.popover-arrow.arrow-top,.popover-arrow.arrow-up{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.popover>.btn-close{position:absolute;right:.5rem;top:.625rem}.btn-close+.popover-content{padding-right:3rem}.btn.with-popover-show{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.with-popover-show[data-pop-placement=top]>.caret{--tw-rotate:180deg}.with-popover-show[data-pop-placement=left]>.caret,.with-popover-show[data-pop-placement=top]>.caret{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.with-popover-show[data-pop-placement=left]>.caret{--tw-rotate:90deg}.with-popover-show[data-pop-placement=right]>.caret{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.pager{align-items:center;display:flex;gap:.25rem;white-space:nowrap}.menu.pager-size-menu{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center}.menu.pager-size-menu>.menu-item>a{margin:.125rem}.pager .pager-goto-group>.form-control{width:3rem}.pager .pager-goto-group>.input-group-addon{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-300-rgb),var(--tw-border-opacity));border-width:1px}.pager>.pager-nav.active{--tw-text-opacity:1;box-shadow:0 0 0 1px var(--color-primary-500);color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.panel{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);overflow:hidden}.panel-heading{background-color:var(--panel-heading-bg);flex-wrap:nowrap;gap:1rem;justify-content:space-between;padding:.5rem 1rem}.panel-heading,.panel-title{align-items:center;display:flex}.panel-title{font-weight:700;gap:.5rem;margin:0}.panel-actions{align-items:center;display:flex;margin-right:-.5rem}.panel-body{padding:.75rem 1rem}.panel-footer{align-items:center;background-color:var(--panel-footer-bg);display:flex;gap:.5rem;padding:.5rem 1rem}.size-sm .panel-body,.size-sm .panel-footer,.size-sm .panel-heading{padding:.375rem .75rem}.size-lg .panel-body,.size-lg .panel-footer,.size-lg .panel-heading{padding:1rem 1.25rem}.picker{position:relative}.picker-select{align-items:center;gap:.25rem;justify-content:space-between}.picker-select,.picker-select.form-control{display:flex}.picker-select-placeholder{--tw-text-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-text-opacity));flex:1 1 auto}.picker-select-multi .picker-select-placeholder{padding-left:.25rem;padding-right:.25rem}.picker-single-selection{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap}.picker-deselect-btn{border-radius:var(--radius-full);padding:.25rem}.picker-deselect-btn:not(:hover){opacity:.7}.picker-select-multi.form-control{height:auto;min-height:32px;padding-left:.25rem}.picker-multi-selections{display:flex;flex-wrap:wrap;gap:.25rem;min-width:0}.picker-multi-selection{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);border-width:1px;display:flex;max-width:100%;padding-left:.5rem}.readonly .picker-multi-selection{padding-right:.5rem}.picker-multi-selection>.text{max-width:180px;overflow:clip;white-space:nowrap}.picker-menu-list{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border-style:none;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);flex:1 1 auto;min-height:0;overflow-y:auto}.picker-menu-search+.picker-menu-list.menu{margin-top:-.125rem;padding-top:0}.picker-menu-list.tree{padding:.5rem}.picker-menu .search-menu-footer{border-top-width:1px;padding-bottom:.25rem;padding-top:.25rem}.picker-search-input{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)!important;border-color:transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important;height:1.75rem;outline-width:0!important;padding-left:0;padding-right:2rem}.picker-search{flex:none;position:relative;width:100%}.picker-search>.magnifier{opacity:.5;position:absolute;right:0;top:.5rem}.picker-search-clear.btn{cursor:pointer;height:1.25rem;position:absolute;right:0;top:.25rem;width:1.25rem}.picker-search.is-inline{min-width:64px;width:4rem}.is-inline>.picker-search-input{height:1.25rem;min-width:64px;padding-left:.25rem;padding-right:.25rem}.picker-search-measure{height:0;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap}.split{display:flex;flex-direction:row}.split-vert{flex-direction:column}.split-cell{min-height:0;min-width:0}.has-animation>.split-cell{transition-duration:.15s;transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter{align-items:stretch;border-radius:var(--radius);cursor:col-resize;display:flex;flex:none;flex-direction:row;justify-content:center;position:relative}.gutter-vert{cursor:row-resize;flex-direction:column}.gutter:before{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));content:var(--tw-content);display:block;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter-horz:before{width:1px}.gutter-vert:before{height:1px}.gutter-horz:hover:before{width:75%}.gutter-vert:hover:before{height:75%}.gutter-resize-handler,.gutter-toggle{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-radius:var(--radius-lg);border-width:1px;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity));display:flex;height:1.75rem;justify-content:center;margin-top:-.875rem;position:absolute;top:50%;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.75rem}.gutter-toggle>span{--tw-scale-x:.75;--tw-scale-y:.75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gutter:hover .gutter-toggle{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-gray-500-rgb),var(--tw-border-opacity));color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.gutter .gutter-toggle:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.is-last>.gutter-toggle{--tw-scale-x:-1}.is-first>.gutter-toggle,.is-last>.gutter-toggle{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.is-first>.gutter-toggle{--tw-scale-x:1}.gutter-vert .gutter-toggle{--tw-rotate:90deg;left:50%;margin-left:-.375rem;margin-top:0;top:auto}.gutter-vert .gutter-toggle,.gutter.is-next-collapsed>.gutter-toggle{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.gutter.is-next-collapsed>.gutter-toggle{--tw-scale-x:1}.gutter.is-prev-collapsed>.gutter-toggle{--tw-scale-x:-1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.gutter-horz.is-first.is-prev-collapsed{transform:translateX(calc(-1px - var(--split-gutter-size)/2))}.gutter-horz.is-last.is-next-collapsed{transform:translateX(calc(1px + var(--split-gutter-size)/2))}.gutter-vert.is-first.is-prev-collapsed{transform:translateY(calc(-1px - var(--split-gutter-size)/2))}.gutter-vert.is-last.is-next-collapsed{transform:translateY(calc(1px + var(--split-gutter-size)/2))}.gutter-resize-handler{background-color:transparent;border-width:0}.gutter-resize-handler:before{--tw-content:"";border-left-width:1px;border-right-width:1px;bottom:0;content:var(--tw-content);left:.25rem;position:absolute;right:.25rem;top:0}.sidebar{--gutter-width:1px;flex:none!important;position:relative}.has-sidebar-animation .sidebar{transition-duration:.15s;transition-property:width,margin;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sidebar-left.is-collapsed{margin-left:calc(var(--gutter-width)*-1)}.sidebar-right.is-collapsed{margin-right:calc(var(--gutter-width)*-1)}.sidebar.is-collapsed>*{display:none}.sidebar.is-collapsed>.sidebar-gutter{display:flex}.sidebar-gutter{bottom:0;left:100%;position:absolute;top:0;width:var(--gutter-width)}.sidebar-right>.sidebar-gutter{left:auto;right:100%}.is-collapsed>.gutter>.gutter-toggle>span{--tw-rotate:-180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sidebar-gutter:before{border-radius:var(--radius-full);opacity:0}.sidebar-gutter:hover:before{opacity:1;width:.5rem}.is-expanded .sidebar-gutter.gutter-border:before{opacity:1}.is-sidebar-resizing{cursor:col-resize}:root{--table-head-bg:var(--color-surface);--table-striped-color:var(--color-gray-50);--table-hover-color:rgba(var(--color-primary-500-rgb),.05);--table-border-color:var(--color-border)}.table{border-color:var(--table-border-color);width:100%}.table>thead{background-color:var(--table-head-bg)}.table>*>tr{border-bottom-width:1px}.table>*>tr>*{padding:.5rem 1rem}.table-striped>tbody>tr:nth-child(2n){background:var(--table-striped-color)}.table-hover>tbody>tr:hover>*{background:var(--table-hover-color)}.table.bordered>*>tr>*{border-width:1px}.table.borderless>*>tr,.table.borderless>*>tr>*{border-style:none}.condensed>*>tr>*{padding:.375rem .75rem}.table-fixed{table-layout:fixed}.table-fixed>*>tr>*{overflow:hidden;white-space:nowrap}.toolbar{align-items:center;display:flex;position:relative}.toolbar>.divider{--tw-bg-opacity:1;background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));margin:.5rem;width:1px}.toolbar-space{flex:1 1 auto;height:1px;width:1px}.toolbar>.dropdown.show{align-items:center;display:flex;position:relative}.tooltip{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));border-color:rgba(var(--color-inverse-rgb),var(--tw-border-opacity));border-radius:var(--radius);color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem;max-width:28rem;padding:.25rem .5rem;z-index:1800}.tooltip:not(.white)>.arrow{border-width:0}.tooltip.white>.arrow{border-color:inherit}.tooltip-has-title{--tw-bg-opacity:0.8;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding:.5rem .75rem .75rem}.tooltip-has-title>.arrow{opacity:.75}.tooltip-heading{align-items:center;display:flex;font-size:.8125rem;font-weight:700;gap:1rem;justify-content:space-between;line-height:1.25rem;padding:.25rem}.tooltip-heading>.btn-close{margin-right:-.25rem}.tooltip-content{padding:.25rem}.tree-item-inner{flex-direction:row;min-height:24px;padding-left:var(--list-nested-indent)}.tree-item-inner,.tree-toggle{align-items:center;display:flex}.tree-toggle{--caret-size:5px;--caret-opacity:.3;border-radius:var(--radius);flex:none;height:1rem;justify-content:center;margin-right:-.375rem;width:1rem}.tree-item-inner>.item-icon{opacity:.5;width:1rem}.tree-item-inner:hover>.item-icon{opacity:.8}.tree-item-inner.has-hover{border-radius:var(--radius)}.tree-item-inner .item-title:not(:hover),.tree-item-inner>a.item-title:not(:hover){color:inherit}.tree-item-inner>.toolbar{margin-left:1rem;opacity:.6}.tree-item-inner:hover>.toolbar{opacity:1}.tree-item>.active{background:var(--menu-active-bg);color:var(--menu-active-color)}.tree-item>.selected{background:var(--menu-selected-bg)}.tree-item>.selected .item-content{color:var(--menu-selected-color);font-weight:700}.tree.search-menu-on-top>.search-box{left:0;right:0}.upload .upload-tip{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.upload .draggable-area{background-color:rgba(var(--color-primary-50-rgb),.2);border:1px dashed var(--color-primary-300)}.upload .draggable-area.dragover{background-color:rgba(var(--color-primary-500-rgb),.1);border-style:solid}.upload .upload-tip{color:var(--color-slate-500)}.file-item>.img{height:120px;width:120px}.upload .file-item:hover .file-size{display:flex!important}.panel-body>.form-batch{margin-top:-1rem}.form-batch-container{overflow-y:auto}.form-batch-table{--table-head-bg:var(--color-canvas);min-width:100%;table-layout:fixed}.form-batch-table>*>tr>*{padding-left:.375rem;padding-right:.375rem;vertical-align:top}.form-batch-table>*>tr>th{text-align:left;vertical-align:middle}.form-batch-head[data-name=ACTIONS]{width:5rem}.form-batch-label{display:inline}.form-batch-control>textarea.form-control{height:2rem}.form-batch-btn+.btn{margin-left:.25rem}.form-batch-table>tbody[data-count="1"] .form-batch-btn[data-type=delete]{display:none}.form-batch-ditto{position:relative}.form-batch-ditto-btn{bottom:0;height:auto;opacity:.5;padding-left:.5rem;padding-right:.5rem;position:absolute!important;right:0;top:0}.form-batch-ditto-btn:after{--tw-bg-opacity:1;--tw-content:"";background-color:rgba(var(--color-border-rgb),var(--tw-bg-opacity));bottom:.5rem;content:var(--tw-content);left:-1px;position:absolute;top:.5rem;width:1px}[data-ditto=on] .form-batch-ditto-btn{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));opacity:1}.form-batch-row-actions{padding-bottom:.75rem!important;padding-top:.75rem!important}.form-batch-ditto-control .form-control{padding-right:calc(var(--form-batch-ditto-width) + 8px)}.form-batch-ditto-control .input-control>.input-control-suffix{right:var(--form-batch-ditto-width)}.form-batch-ditto-control .input-control>.form-control{padding-right:calc(var(--form-batch-ditto-width) + var(--input-control-suffix))}.form-batch-ditto-control .pick-pri>.caret{right:calc(var(--form-batch-ditto-width) + 8px)}.dropmenu-btn{gap:.25rem;padding-left:.5rem;padding-right:.5rem}.dropmenu-btn>.text{max-width:180px;overflow:hidden}.dropmenu-btn>.is-leading{left:-.625rem;position:absolute}.dropmenu-btn>.is-caret{align-items:center;background-color:rgba(var(--color-canvas-rgb),.2);border-radius:var(--radius);display:flex;height:1rem;justify-content:center;width:1rem}.dropmenu-nav{border-bottom-width:1px;margin-left:.75rem;margin-right:.75rem;margin-top:.25rem}.has-search .dropmenu-nav{margin-top:-.5rem}.dropmenu-nav>.nav-secondary{gap:.5rem}.dropmenu-nav>.nav-secondary>.nav-item>a{border-radius:var(--radius);padding-left:.5rem;padding-right:.5rem}.dropmenu-nav>.nav-secondary>.nav-item>a:after{bottom:-1px;left:1rem;opacity:0;right:1rem}.dropmenu-nav>.nav-secondary>.nav-item>.active:after{left:.5rem;opacity:1;right:.5rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dropmenu-title{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;font-weight:700;line-height:1rem;margin-bottom:-.5rem;padding:.75rem}.dropmenu-list{min-height:0;overflow-x:hidden;overflow-y:auto;padding:.5rem .75rem}.dropmenu.loading>*{opacity:0}.dropmenu-item .tree-item-inner{border-radius:var(--radius);cursor:pointer;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dropmenu-item.is-item.active>.tree-item-inner{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.tree-item-inner.is-link:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.tree-item-inner.is-link:hover .item-content,.tree-item-inner.is-link:hover .item-trailing-icon{color:inherit}.tree-item-inner.is-toggle:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity))}.dropmenu-item+.tree-item{margin-top:.125rem}.dropmenu-item .is-match{font-weight:700;text-decoration-line:underline}.dropmenu-item .item-title,.dropmenu-item .label{overflow:hidden;white-space:nowrap}.dropmenu-item .item-content{padding-left:.375rem;padding-right:.375rem}.dropmenu-item *+.item-content{padding-left:0}.tree-item-inner.is-toggle .item-title{opacity:.6}.tree-item-inner.is-toggle:hover .item-title{opacity:1}.dropmenu-item-check{align-items:center;display:flex;flex:1 1 auto;justify-content:flex-end;padding-right:.5rem}.dropmenu-item .nested-toggle-icon.is-empty{width:.25rem}.dropmenu-item .item-icon{margin-right:-.25rem}:root{--form-control-border:var(--color-border-strong)}.checkbox-primary.disabled,.checkbox-primary.disabled>label,.checkbox-primary>input[type=checkbox]:disabled,.checkbox-primary>input[type=checkbox]:disabled+label,.radio-primary.disabled,.radio-primary.disabled>label,.radio-primary>input[type=radio],.radio-primary>input[type=radio]:disabled+label{filter:none!important}.checkbox-primary.disabled>label,.radio-primary.disabled>label{opacity:1}.form-actions{gap:1rem;justify-content:center}.form-actions .btn{min-width:96px}.form-control-static{min-height:32px;padding-bottom:.375rem;padding-top:.375rem}:root{--zt-panel-form-max-width:1000px}.size-sm{--zt-panel-form-max-width:800px}.size-lg{--zt-panel-form-max-width:1200px}.panel-body>.container,.panel-heading>.container{max-width:var(--panel-container-width);min-width:0;padding-left:var(--panel-container-padding);padding-right:var(--panel-container-padding)}.panel-heading>.container{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;gap:1rem;justify-content:space-between;min-height:48px}.panel-form{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius-md);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);margin-bottom:1rem;margin-left:auto;margin-right:auto;max-width:var(--zt-panel-form-max-width);min-width:var(--zt-panel-form-min-width);overflow:visible;padding-bottom:1rem;padding-left:1rem;padding-right:1rem}.panel-form .form-actions{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),.8);bottom:0;padding-bottom:1rem;padding-top:1rem;position:sticky;z-index:1}.panel-form .form-grid{margin:calc(0px - var(--form-grid-gap-y-half)) calc(0px - var(--form-grid-gap-x-half))}.panel-form-toolbar{padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half);width:100%}.panel-form-toolbar>.toolbar{gap:1rem;padding-bottom:.75rem;padding-top:.75rem}.panel-form-divider{margin-bottom:.75rem;margin-top:1rem;padding-left:var(--form-grid-gap-x-half);padding-right:var(--form-grid-gap-x-half);width:100%}.panel-form-divider:before{--tw-content:"";background-color:rgba(var(--color-border-rgb),.7);content:var(--tw-content);display:block;height:1px}.is-full .btn-full-form,.is-lite .btn-lite-form{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-300-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));z-index:1}.btn-toggle-fold:after{content:attr(data-expand-text)}.show-fold-items .btn-toggle-fold:after{content:attr(data-collapse-text)}.is-foldable,.is-full .full\:hidden,.is-full .lite\:visible,.is-full .panel-form-divider,.is-full .panel-form-toolbar,.is-lite .full\:visible,.is-lite .lite\:hidden{display:none}.is-foldable.is-pinned,.is-full .full\:visible,.is-full .is-foldable,.is-full .lite\:hidden,.is-lite .full\:hidden,.is-lite .lite\:visible,.show-fold-items .is-foldable{display:block}.is-full .full\:w-1\/2,.is-lite .lite\:w-1\/2{width:50%}.is-full .full\:w-1\/3,.is-lite .lite\:w-1\/3{width:33.333333%}.is-full .full\:w-2\/3,.is-lite .lite\:w-2\/3{width:66.666667%}.is-full .full\:w-1\/4,.is-lite .lite\:w-1\/4{width:25%}.is-full .full\:w-2\/4,.is-lite .lite\:w-2\/4{width:50%}.is-full .full\:w-3\/4,.is-lite .lite\:w-3\/4{width:75%}.is-full .full\:w-1\/5,.is-lite .lite\:w-1\/5{width:20%}.is-full .full\:w-2\/5,.is-lite .lite\:w-2\/5{width:40%}.is-full .full\:w-3\/5,.is-lite .lite\:w-3\/5{width:60%}.is-full .full\:w-4\/5,.is-lite .lite\:w-4\/5{width:80%}.is-full .full\:w-1\/6,.is-lite .lite\:w-1\/6{width:16.666667%}.is-full .full\:w-2\/6,.is-lite .lite\:w-2\/6{width:33.333333%}.is-full .full\:w-3\/6,.is-lite .lite\:w-3\/6{width:50%}.is-full .full\:w-4\/6,.is-lite .lite\:w-4\/6{width:66.666667%}.is-full .full\:w-5\/6,.is-lite .lite\:w-5\/6{width:83.333333%}.is-full .full\:w-full,.is-lite .lite\:w-full{width:100%}.page-form{--panel-container-width:960px;--panel-container-padding:20px;--zt-panel-form-max-width:1200px;--zt-panel-form-min-width:1040px;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-left:0;padding-right:0}.page-form .panel-heading{--tw-border-opacity:0.7;border-bottom-width:1px;padding:0}.page-form .panel-title{font-size:1rem;line-height:1.5rem}@media (max-width:1240px){.page-form{--zt-panel-form-max-width:1100px}}@media (max-width:1110px){.page-form{--zt-panel-form-max-width:1040px}}.modal-body>.page-form{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);margin:-1.5rem -2rem!important}.modal-body>.page-form>.panel-heading{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);padding-bottom:.375rem;padding-top:.375rem;position:sticky;top:-1.5rem;z-index:2}.modal-body>.panel-form .form-actions{bottom:-1.5rem}.dropdown.popover{display:flex;flex-direction:column;position:absolute;z-index:1200}.dropdown.show{display:flex}.dropdown-menu{--menu-min-width:7rem;--menu-max-width:20rem;display:none}.dropdown-menu.show,.menu-wrapper>.dropdown-menu,.show>.dropdown-menu{display:block}.dropdown>.dropdown-menu,.menu-wrapper .dropdown-menu{position:relative}.show>.menu-wrapper{display:flex}.dropdown>.menu-wrapper{height:100%}.dropdown>.menu-wrapper .menu-wrapper{position:absolute}.is-contextmenu .is-nested-show>a:not(:hover){--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity))}.is-contextmenu .menu-item.is-nested>.item-inner>.nested-toggle-icon{position:absolute;right:.25rem;top:.375rem}.is-contextmenu .menu-nested .menu-item>.item-inner{padding-left:.5rem;padding-right:1.25rem}.is-contextmenu .menu-nested .menu-item>.item-inner>.item-content{overflow:hidden}.dropdown>.arrow{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.global-search-panel li:not(.order-first):hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.global-search-panel li a{width:100%}.global-search-panel li{cursor:pointer}.history-panel>.panel-heading+.panel-body{margin-top:-.75rem}.history-panel-action{position:relative}.history-panel-action:before{--tw-border-opacity:1;--tw-content:"";border-color:rgba(var(--color-border-rgb),var(--tw-border-opacity));border-left-width:1px;bottom:-.375rem;content:var(--tw-content);left:.5rem;position:absolute;top:22px}.col-reverse>.history-panel-action:first-child:before,.col>.history-panel-action:last-child:before{display:none}.history-panel-action>.item-inner{padding-left:1.5rem}.history-panel-action>.item-inner>.avatar{left:0;position:absolute;top:.375rem}.img-cutter{background:var(--color-gray-100);border:1px solid #ddd;margin-bottom:20px;padding:10px}.img-cutter .canvas{margin:0 auto;max-width:100%;min-width:50px;position:relative}.img-cutter .cover{inset:0;position:absolute;z-index:1}.img-cutter .controller{background:none;border:1px dashed hsla(0,0%,100%,.7);cursor:move;position:absolute;z-index:5}.img-cutter .control{background:#000;background:rgba(0,0,0,.6);border:1px solid hsla(0,0%,100%,.6);height:6px;position:absolute;width:6px}.img-cutter .control[data-type=left]{cursor:w-resize;left:-4px;margin-top:-3px;top:50%}.img-cutter .control[data-type=top]{cursor:n-resize;left:50%;margin-left:-3px;top:-4px}.img-cutter .control[data-type=right]{cursor:e-resize;margin-top:-3px;right:-4px;top:50%}.img-cutter .control[data-type=bottom]{bottom:-4px;cursor:s-resize;left:50%;margin-left:-3px}.img-cutter .control[data-type=top-left]{cursor:nw-resize;left:-4px;top:-4px}.img-cutter .control[data-type=top-right]{cursor:ne-resize;right:-4px;top:-4px}.img-cutter .control[data-type=bottom-left]{bottom:-4px;cursor:sw-resize;left:-4px}.img-cutter .control[data-type=bottom-right]{bottom:-4px;cursor:se-resize;right:-4px}.img-cutter .cliper{inset:0;position:absolute;z-index:2}.messager-fail .toolbar,.messager-success .toolbar{padding-left:72px}.modal-reconfirm .modal-body{font-size:14px;font-weight:700;padding:24px 32px}.modal-reconfirm .modal-footer{justify-content:center;padding:24px}.picker-deselect-btn{opacity:.6;transition-duration:.15s;transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.picker-multi-selection{cursor:pointer;padding-right:.5rem;position:relative}.picker-multi-selection .picker-deselect-btn{--tw-scale-x:0;--tw-scale-y:0;background-color:rgba(var(--color-surface-rgb),.8);inset:0;opacity:0;position:absolute}.picker-deselect-btn:hover,.picker-multi-selection .picker-deselect-btn,.picker-multi-selection:hover .picker-deselect-btn{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.picker-deselect-btn:hover,.picker-multi-selection:hover .picker-deselect-btn{--tw-scale-x:1;--tw-scale-y:1;--state-color:rgba(var(--color-surface-rgb),.9);opacity:1}.pick-pri{align-items:center;display:flex;flex-direction:row;justify-content:flex-start;position:relative}.pick-pri>.caret{position:absolute;right:.5rem;top:.875rem}.pick-pri .placeholder{--tw-text-opacity:1;color:rgba(var(--color-placeholder-rgb),var(--tw-text-opacity))}.pick-pri-list>.btn{justify-content:flex-start}.disabled.pick-pri,.disabled.pick-pri>*{filter:none}.search-form{--gutter-width:12px;padding-bottom:.75rem}.search-form-container{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);min-height:116px;position:relative}.is-simple .search-form-container{min-height:56px}.search-form-field td{padding:.375rem}.search-form .sidebar-right.is-collapsed{margin-right:-.375rem}.search-form-toggle.active,.show-search-form #featureBar .search-form-toggle{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.show-search-form #featureBar .search-form-toggle{font-weight:700}.is-simple .search-form-wrapper{display:flex}.is-simple .search-form-wrapper>.row{flex:1 1 auto}.is-simple .search-form-wrapper>.toolbar{flex:none;margin-top:0}.zinbar [data-hint]{position:relative}.zinbar [data-hint]:after{--tw-bg-opacity:0.9;--tw-text-opacity:1;--tw-content:attr(data-hint);background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);bottom:100%;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity));content:var(--tw-content);display:block;font-size:.75rem;line-height:1rem;opacity:0;padding:.125rem .25rem;pointer-events:none;position:absolute;right:0;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);white-space:nowrap;z-index:50}.zinbar [data-hint]:hover:after{opacity:1}.zin-perf-btn-list .text-danger{color:var(--color-danger-400)}.zinbar .state{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.zinbar .state:active{--tw-scale-x:1.05;--tw-scale-y:1.05}.zinbar .state:active,.zinbar.collapse{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.zinbar.collapse{--tw-translate-x:100%}.zinbar.collapse>div{pointer-events:none}.zinbar{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.7s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);min-height:28px;position:relative;transition-duration:.15s;transition-property:shadow,border,color,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.card-content,.card-footer,.card-header,.card-heading{padding:.25rem .5rem}.card-heading{align-items:center;display:flex;gap:.5rem}.card-icon{opacity:.5}.card-header{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.card-content{display:flex;flex-direction:column;gap:.25rem}.card-actions{position:absolute;right:.125rem;top:.125rem}.card-actions+.card-heading{padding-right:1.75rem}.card-subtitle{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.card-list{--list-gap:.625rem;--list-count-per-row:1}.card-list,.card-list-item{padding:calc(var(--list-gap)/2)}.card-list-item{width:calc(100%/var(--list-count-per-row))}.card-grid{display:flex;flex-wrap:wrap}.card-grid .card{height:100%}.contextmenu{display:none}.contextmenu.show{display:block}.contextmenu .popup .popup,.contextmenu.popup{position:absolute}.more,.more-vert{margin:.5rem;position:relative}.more,.more-vert,.more-vert:after,.more-vert:before,.more:after,.more:before{background-color:currentColor;border-radius:var(--radius-full);height:.125rem;width:.125rem}.more-vert:after,.more-vert:before,.more:after,.more:before{--tw-content:"";content:var(--tw-content);display:block;left:-5px;position:absolute;top:0}.more-vert:after,.more:after{left:5px}.more-vert{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dashboard-blocks{position:relative}.dashboard-block-cell{position:absolute;transition-duration:.15s;transition-property:left,top;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-block{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);inset:.5rem;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-block.is-dragging{opacity:0;z-index:1600}.dashboard-block-header{align-items:center;border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);display:flex;flex-direction:row;justify-content:space-between;left:0;padding:.75rem;pointer-events:none;position:absolute;right:0;top:0;z-index:10}.dashboard-block-header>*{pointer-events:auto}.dashboard-block-title{font-size:.875rem;font-weight:700;line-height:1.3rem}.dashboard-block-body{inset:0;position:absolute}.dashboard-block-body>.panel{--tw-shadow:0px 6px 16px rgba(202,215,235,.25);display:flex;flex-direction:column;height:100%;width:100%}.dashboard-block-body .panel-heading{cursor:move;flex:none}.dashboard-block-body .panel-body{flex:1 1 auto;overflow-y:auto}.has-more-menu>.dashboard-block-body .panel-heading{padding-right:3rem}.dashboard-block-body .panel-title{font-size:.875rem;height:2rem;line-height:1.3rem}.dashboard-block-actions .btn{opacity:.6}.dashboard-block-actions .btn:hover{opacity:1}.dashboard-drop-shadow{position:absolute;transition-duration:.15s;transition-property:left,top;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dashboard-drop-shadow:before{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);--tw-content:"";background-color:rgba(var(--color-inverse-rgb),.05);border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);content:var(--tw-content);inset:.5rem;position:absolute}:root{--scrollbar-size:10px;--scrollbar-opacity:.6;--scrollbar-bg:rgba(var(--color-inverse-rgb),.15);--scrollbar-inset:inset 0 0 0 1px rgba(var(--color-inverse-rgb),.05);--scrollbar-bar-bg:rgba(var(--color-inverse-rgb),.3);--scrollbar-hover-bg:rgba(var(--color-inverse-rgb),.4);--scrollbar-drag-bg:rgba(var(--color-inverse-rgb),.5);--scrollbar-radius:var(--radius-sm);--scrollbar-duration:.7s}.scrollbar{background:var(--scrollbar-bg);box-shadow:var(--scrollbar-shadow);opacity:var(--scrollbar-opacity);position:absolute;transition-duration:.15s;transition-duration:var(--scrollbar-duration);transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.scrollbar-hover .scrollbar{opacity:0}.scrollbar-hover:hover .scrollbar{opacity:var(--scrollbar-opacity)}.scrollbar.is-dragging,.scrollbar:hover{opacity:1!important}.scrollbar-bar{background:var(--scrollbar-bar-bg);border-radius:var(--scrollbar-radius);position:absolute}.scrollbar-bar:hover{background:var(--scrollbar-hover-bg)}.is-dragging>.scrollbar-bar{background:var(--scrollbar-drag-bg)}.is-horz>.scrollbar-bar{height:100%;z-index:20}.is-vert>.scrollbar-bar{width:100%;z-index:20}:root{--dtable-checked-bg:var(--color-warning-50);--dtable-checked-bg-hover:var(--color-warning-100);--dtable-checked-border:var(--color-border-strong)}.dtable-cell.is-checked,.dtable-striped .dtable-cell.is-odd-row.is-checked{background-color:var(--dtable-checked-bg)}.checkbox-primary.dtable-checkbox{margin-right:-.375rem}.dtable-checkbox{order:-5}.dtable-hover-col .dtable-cell.is-hover-col.is-checked,.dtable-hover-row .dtable-cell.is-hover-row.is-checked{background-color:var(--dtable-checked-bg-hover)}.dtable-cell.is-checked{--dtable-border-color:var(--dtable-checked-border)}.dtable-check-info{flex-shrink:1;margin-right:.5rem;overflow:hidden;white-space:nowrap}:root{--toggle-icon-size:calc(var(--font-size-root)*3/4 + 1px)}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-color:currentColor;border-width:1px;display:block;opacity:.5;position:relative}.toggle-icon-collapse:hover,.toggle-icon-expand:hover,.toggle-icon:hover{opacity:.9}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-radius:inherit;height:var(--toggle-icon-size);width:var(--toggle-icon-size)}.is-collapsed .toggle-icon:after,.is-collapsed .toggle-icon:before,.is-expanded .toggle-icon:before,.toggle-icon-collapse:after,.toggle-icon-collapse:before,.toggle-icon-expand:before{background-color:currentColor;content:" ";display:block;height:1px;left:2px;position:absolute;right:2px;top:calc((var(--toggle-icon-size) - 3px)/2)}.is-collapsed .toggle-icon:after,.toggle-icon-collapse:after{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:root{--dtable-nt-size:calc(var(--font-size-root)*3/4 + 1px)}.dtable-nested-indent{flex:none;margin-right:-.25rem;order:-100}.dtable-nested-toggle{align-items:center;border-radius:var(--radius-sm);display:flex;flex:none;height:1.25rem;justify-content:center;margin-left:-.25rem;order:-6;width:1.25rem}.dtable-nested-toggle.is-no-child{margin-right:-.25rem;opacity:0;pointer-events:none}.dtable-header-group{align-items:center;background:var(--dtable-header-bg);cursor:default;display:flex;justify-content:center;left:0;position:absolute;top:1px;z-index:30}.dtable-bordered .dtable-header-group{border-bottom:1px solid var(--dtable-border-color);border-left:1px solid var(--dtable-border-color)}.dtable-header-as-group{contain:style;content-visibility:visible;overflow:visible!important}.dtable-sorting{cursor:move}.dtable-cell.is-sorting-from{background-color:var(--dtable-bg);z-index:20}.dtable-cell.is-sorting-from:before{border-top-width:1px}.dtable-sorting .dtable-cell.is-sorting-after{--tw-translate-y:-100%}.dtable-sorting .dtable-cell.is-sorting-after,.dtable-sorting .dtable-cell.is-sorting-before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dtable-sorting .dtable-cell.is-sorting-before{--tw-translate-y:100%}.dtable-cell.is-sorting-before:before,.dtable-cell.is-sorting-from:before{border-bottom-width:1px;border-top-width:1px}:root{--dtable-bg:var(--color-canvas);--dtable-striped-bg:var(--color-gray-50);--dtable-hover-bg:rgba(var(--color-primary-500-rgb),.05);--dtable-header-bg:var(--color-surface);--dtable-footer-bg:var(--color-surface);--dtable-border-color:var(--color-border);--dtable-sorter-size:0.3125rem}.dtable{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));position:relative}.dtable.no-animation *{transition-property:none!important}.dtable-block{overflow:hidden;position:absolute;width:100%}.dtable-header{background-color:var(--dtable-header-bg);border-top-left-radius:inherit;border-top-right-radius:inherit}.dtable-body{overflow:hidden}.dtable-cells{background-color:var(--dtable-bg);height:100%;position:absolute;z-index:0}.dtable-cells-container{height:100%;position:absolute;width:100%}.dtable-header .dtable-cells{background-color:var(--dtable-header-bg)}.dtable-cells.dtable-fixed-left,.dtable-cells.dtable-fixed-right{z-index:10}.dtable-cell{position:absolute;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-cell:after,.dtable-cell:before{bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:-1px;z-index:2}.dtable-cell:before{border-bottom-width:1px;border-color:var(--dtable-border-color);opacity:1}.dtable-header .dtable-cell{align-items:center;display:flex;font-weight:700}.dtable-header .dtable-cell:after,.dtable-header .dtable-cell:before{top:0}.dtable-cell-content{align-items:center;display:flex;gap:.25rem;height:100%;overflow:hidden;padding-left:.75rem;padding-right:.75rem;position:relative;white-space:nowrap;width:100%;z-index:5}.dtable-body .dtable-cell.is-last-row:before{border-bottom-width:0}.dtable-footer{align-items:center;background-color:var(--dtable-footer-bg);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;border-color:var(--dtable-border-color);border-top-width:1px;display:flex;padding-left:.75rem;padding-right:.75rem;position:absolute;width:100%;z-index:10}.dtable-empty-tip{align-items:center;display:flex;height:100%;justify-content:center}.dtable .scrollbar{z-index:20}.dtable-header{transition-duration:1s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-scrolled-down .dtable-header{border-bottom-color:rgba(var(--color-inverse-rgb),.2);border-bottom-width:1px}.dtable-scroll-shadow{background-image:linear-gradient(90deg,rgba(0,0,0,.03),transparent),linear-gradient(90deg,rgba(0,0,0,.03),transparent 50%);opacity:0;pointer-events:none;position:absolute;top:0;transition-duration:1s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:8px;z-index:20}.dtable:hover .dtable-scroll-shadow{opacity:1}.dtable-scroll-shadow.is-right{--tw-rotate:180deg;margin-left:-7px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dtable-scroll-shadow.is-left,.dtable-scrolled-end .dtable-scroll-shadow.is-right{visibility:hidden}.dtable-scroll-shadow.is-right,.dtable-scrolled-right .dtable-scroll-shadow.is-left{visibility:visible}.dtable-sort{display:inline-flex;height:calc(var(--dtable-sorter-size)*12/5);margin-left:.25rem;opacity:.8;position:relative}.dtable-cell:hover .dtable-sort{opacity:1}.dtable-sort:after,.dtable-sort:before{--tw-content:"";border-color:transparent;border-style:solid;border-width:var(--dtable-sorter-size);content:var(--tw-content);height:0;left:0;opacity:.4;position:absolute;width:0}.dtable-sort:before{border-bottom-color:currentColor;border-top-width:0;top:0}.dtable-sort:after{border-bottom-width:0;border-top-color:currentColor;bottom:0}.dtable-sort.dtable-sort-asc:before,.dtable-sort.dtable-sort-desc:after{opacity:.9}.dtable-sort-link{align-items:center;cursor:pointer;display:inline-flex}.dtable-cells.dtable-fixed-left:before,.dtable-cells.dtable-fixed-right:before{border-color:var(--dtable-border-color);content:"";height:100%;pointer-events:none;position:absolute;width:100%;z-index:5}.dtable-cells.dtable-fixed-left:before{border-right-width:1px;right:-1px}.dtable-cells.dtable-fixed-right:before{border-left-width:1px;left:0}.dtable-bordered:before{border-color:var(--dtable-border-color);border-radius:inherit;border-width:1px;content:"";display:block;inset:0;pointer-events:none;position:absolute;z-index:15}.dtable-bordered .dtable-cell:before{border-width:1px;right:-1px}.dtable-cell.has-border-left:before{border-left-width:1px}.dtable-cell.has-border-right:before{border-right-width:1px;right:-1px}.dtable-striped .dtable-cell.is-odd-row{background-color:var(--dtable-striped-bg)}.dtable-hover-cell .dtable-cell:hover:after,.dtable-hover-col .dtable-cell.is-hover-col:before,.dtable-hover-row .dtable-body .dtable-cell.is-hover-row:before{background-color:var(--dtable-hover-bg)}:root{--kanban-lane-name-width:20px;--kanban-col-width:280px;--kanban-cols-gap:8px;--kanban-lanes-gap:8px;--kanban-header-height:32px;--kanban-lane-height:auto;--kanban-lane-color:var(--color-primary-500);--kanban-link-color:var(--color-secondary-500)}.kanban{align-items:flex-start;display:flex;flex-direction:column;min-width:-moz-fit-content;min-width:fit-content;position:relative}.kanban-header{display:flex;flex-direction:row;height:var(--kanban-header-height)}.kanban.has-sub-cols .kanban-header{height:calc(var(--kanban-header-height)*2)}.kanban-header-lane-name{background-color:rgba(var(--color-fore-rgb),.05);flex:none;width:var(--kanban-lane-name-width)}.kanban-header-cols,.kanban-header-sub-cols{display:flex;flex:1 1 0%;flex-direction:row;gap:var(--kanban-cols-gap)}.kanban-header-sub-cols{--tw-border-opacity:1;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity));border-top-width:2px}.kanban-header-col{align-items:center;border-bottom-width:1px;display:flex;flex:1 1 0%;flex-direction:column;height:100%;width:var(--kanban-col-width)}.kanban-header-col.has-subs{width:auto}.kanban-header-col-wrapper{--tw-bg-opacity:1;align-items:center;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity));display:flex;flex:1 1 0%;flex-direction:row;padding-left:3.5rem;padding-right:3.5rem;position:relative;width:100%}.kanban-header-col-wrapper.is-align-left{justify-content:flex-start;padding-left:.5rem}.kanban-header-col-wrapper.is-align-left>.kanban-header-title{justify-content:flex-start}.kanban-header-title{align-items:center;display:flex;flex:1 1 auto;flex-direction:row;justify-content:center;overflow:hidden}.kanban-header-title>.as-title{color:var(--kanban-col-color);font-weight:700;overflow:hidden;white-space:nowrap}.kanban-header-col-actions{bottom:.25rem;position:absolute;right:.25rem;top:.25rem}.kanban-header-col-actions>.btn{opacity:.6}.kanban-header-col-actions>.btn:hover{opacity:1}.kanban-body{display:flex;flex-direction:column;gap:var(--kanban-lanes-gap)}.kanban-lane{display:flex;flex-direction:row;height:var(--kanban-lane-height);min-height:96px}.kanban-lane-name{--tw-text-opacity:1;align-items:center;background-color:var(--kanban-lane-color);color:rgba(var(--color-white-rgb),var(--tw-text-opacity));display:flex;justify-content:center;width:var(--kanban-lane-name-width);writing-mode:vertical-rl}.kanban-lane-actions,.kanban-lane-name{flex:none;position:relative}.kanban-lane.is-first .kanban-lane-actions{margin-top:calc(4px - var(--kanban-header-height))}.has-sub-cols .kanban-lane.is-first .kanban-lane-actions{margin-top:calc(4px - var(--kanban-header-height)*2)}.kanban-lane-actions>.btn.square{width:var(--kanban-lane-name-width)}.kanban-lane-title{align-items:center;display:flex;flex:1 1 auto;justify-content:center;overflow:hidden;white-space:nowrap}.kanban-lane-cols{display:flex;flex-direction:row;gap:var(--kanban-cols-gap)}.kanban-lane-col{background-color:rgba(var(--color-inverse-rgb),.05);display:flex;flex-direction:column;height:100%;width:var(--kanban-col-width)}.kanban-header-col,.kanban-lane-col{margin-left:calc(var(--kanban-col-gap-left) - var(--kanban-cols-gap));margin-right:calc(var(--kanban-col-gap-right) - var(--kanban-cols-gap))}.kanban-col-content{position:relative;z-index:5}.kanban-lane.is-first>.kanban-lane-name:before{--tw-content:"";background-color:var(--kanban-lane-color);bottom:100%;content:var(--tw-content);display:block;height:var(--kanban-header-height);left:0;position:absolute;right:0}.kanban.has-sub-cols .kanban-lane.is-first>.kanban-lane-name:before{height:calc(var(--kanban-header-height)*2)}.kanban-items{flex:1 1 auto;overflow:auto;scrollbar-gutter:both-edges stable}.kanban-lane.is-auto-height .kanban-items{scrollbar-gutter:auto}.kanban-item .card-actions{z-index:5}.kanban-heading{width:100%}.kanban-heading .listitem{height:2.25rem}.kanban-heading .item-title{font-weight:700}.kanban.has-dragging{cursor:move}.kanban-item.is-dragging{cursor:move;opacity:.1}.kanban-sticky .kanban-header{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));position:sticky;top:0;z-index:10}.kanban-sticky .kanban-lane-name{left:0;position:sticky;z-index:10}.kanban-region{--tw-bg-opacity:1;--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);min-width:-moz-fit-content;min-width:fit-content;padding:.75rem}.kanban-region>.kanban+.kanban{margin-top:.75rem}.kanban-region.has-heading{padding-top:0}.kanban-heading>.listitem{left:.75rem;position:sticky;width:calc(var(--kanban-list-width) - 24px)}.kanban-list{display:flex;flex-direction:column;gap:.75rem;height:100vh;overflow:auto;scrollbar-gutter:stable}.kanban-list.is-moving{cursor:grabbing}.kanban-items.is-dropping{position:relative}.kanban-item.is-dropping{position:relative;transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.kanban-item.is-dropping:after,.kanban-items.is-dropping>.card-list:after{--tw-content:"";background-color:rgba(var(--color-warning-500-rgb),.5);border-radius:var(--radius-full);content:var(--tw-content);display:block;height:.25rem}.kanban-item.is-dropping:after{left:.25rem;position:absolute;right:.25rem;top:-.25rem}.kanban-item.is-dropping[z-drop-side=before]{--tw-translate-y:0.25rem}.kanban-item.is-dropping[z-drop-side=after],.kanban-item.is-dropping[z-drop-side=before]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-item.is-dropping[z-drop-side=after]{--tw-translate-y:-0.25rem}.kanban-item.is-dropping[z-drop-side=after]:after{bottom:-.25rem;top:auto}.kanban-links{inset:0;pointer-events:none;position:absolute;z-index:20}.kanban-link{align-items:center;color:var(--kanban-link-color);display:flex;justify-content:center}.kanban-link,.kanban-link>svg{position:absolute}.kanban-link-text{border-radius:var(--radius);height:1em;line-height:1;padding-left:.125rem;padding-right:.125rem;pointer-events:auto;position:relative;text-align:center;white-space:nowrap}.kanban-link-start-point{--tw-translate-x:-0.25rem;--tw-translate-y:-0.25rem;height:.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5rem}.kanban-link-start-point,.kanban-link-start-point:before{background-color:currentColor;border-radius:var(--radius-full);position:absolute}.kanban-link-start-point:before{--tw-content:"";content:var(--tw-content);display:block;inset:-.25rem;opacity:.2}.kanban-link path{pointer-events:auto}.kanban-link path+path{opacity:.6}.kanban-link.is-hover path+path{opacity:1}.kanban-link-delete-btn{--tw-scale-x:.75;--tw-scale-y:.75;opacity:0;pointer-events:auto;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.is-hover .kanban-link-delete-btn,.kanban-link-delete-btn{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.is-hover .kanban-link-delete-btn{--tw-scale-x:1;--tw-scale-y:1;opacity:1}.kanban.is-adding-link{cursor:crosshair}.kanban-link-editor{inset:0;pointer-events:none;position:absolute;z-index:20}.kanban-link-editor-from,.kanban-link-editor-to{--tw-shadow-color:rgb(var(--color-primary-500-rgb));--tw-shadow:var(--tw-shadow-colored);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-500-rgb),var(--tw-ring-opacity));border-radius:var(--radius)}.kanban-link-editor-from,.kanban-link-editor-point,.kanban-link-editor-to{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);position:absolute}.kanban-link-editor-point{--tw-translate-x:-0.25rem;--tw-translate-y:-0.25rem;--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-primary-500-rgb),0.1);background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);cursor:move;height:.5rem;opacity:.5;pointer-events:auto;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.5rem}.kanban-link-editor-point.is-left{left:0;top:50%}.kanban-link-editor-point.is-right{--tw-translate-x:0.25rem;right:0;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-link-editor-point.is-top{left:50%;top:0}.kanban-link-editor-point.is-bottom{--tw-translate-y:0.25rem;bottom:0;left:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.kanban-link-editor-point:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-primary-500-rgb),0.5);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:1}.tab-pane{display:none}.tab-pane.active{display:block}:root{--dtable-header-bg:var(--color-surface-light);--dtable-footer-bg:var(--color-surface-light);--dtable-border-color:var(--color-border-light);--dtable-checked-border:var(--color-border);--dtable-link-color:var(--color-link);--dtable-link-hover-color:var(--color-link-hover);--dtable-link-visited-color:var(--color-link-visited)}.dtable-header .dtable-cell{font-weight:400}.dtable-cell-content[style*="--color-link"]{--dtable-link-hover-color:var(--color-link);--dtable-link-visited-color:var(--color-link)}.dtable-body .dtable-cell a:not(.btn){color:var(--dtable-link-color)}.dtable-body .dtable-cell a:not(.btn):visited{color:var(--dtable-link-visited-color)}.dtable-body .dtable-cell a:not(.btn):hover{color:var(--dtable-link-hover-color)}.dtable .btn-avatar{--tw-bg-opacity:1;--tw-ring-color:transparent;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity));border-radius:var(--radius-full);gap:.25rem;height:1.25rem;padding-left:0;padding-right:.5rem}.dtable .btn-avatar:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dtable .toggle-icon{border-radius:var(--radius-full)}.dtable .toggle-icon:after,.dtable .toggle-icon:before{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity))}.dtable-footer>.toolbar{margin-right:.5rem}.dtable-header .dtable-cell[data-sort]>.dtable-cell-content>a:not(:hover){color:inherit}.dtable-assign-btn{align-items:center;border-radius:var(--radius-full);display:flex;flex-direction:row;height:1.25rem;padding-left:.375rem;padding-right:.375rem}.dtable-assign-btn:not(:hover){color:inherit}.dtable-assign-btn.is-me{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.dtable-assign-btn:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.dtable-assign-btn>span{border-radius:var(--radius-full);line-height:20px;padding-left:.375rem;padding-right:.375rem}.dtable-assign-btn.is-unassigned>span{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity));color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}.dtable-assign-btn.is-unassigned:hover>span{background-color:inherit}.dtable-assign-btn>.icon{opacity:0;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dtable-assign-btn:not(.disabled):hover>.icon{opacity:1}.dtable-header .dtable-cell[data-type=assign]{padding-left:1.5rem}.dtable-cell-icon{order:-5}.dtable-custom-cell[data-type=control]{align-items:center;display:flex;justify-content:center;padding-left:.125rem;padding-right:.125rem;z-index:1}.dtable-empty-tip{min-height:212px}.menu.menu-dtable-actions{--menu-icon-opacity:1;display:flex;gap:.25rem;min-width:auto}.menu.menu-dtable-actions>.menu-item>a{padding-left:.25rem;padding-right:.25rem}.menu.menu-dtable-actions>.menu-item>a>.item-content{display:none}:root{--zt-page-bg:var(--color-gray-100);--zt-header-bg:var(--color-canvas);--zt-header-color:var(--color-fore);--zt-sidebar-width:160px;--zt-navbar-active-color:var(--color-primary-500)}body{background-color:var(--zt-page-bg)}.page-app{overflow:overlay}.container{min-width:1200px}#header{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background:var(--zt-header-bg);border-bottom:1px solid var(--zt-header-border,rgba(var(--color-inverse-rgb),.05));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:var(--zt-header-color);height:3rem}#header>.container{height:100%;position:relative}#heading{align-items:center;bottom:0;display:flex;gap:.25rem;left:1rem;position:absolute;top:0}#heading>.toolbar{margin-left:-.75rem}#heading .dropmenu-btn>.text{max-width:142px}#heading>[data-zui-dropmenu]+div .dropmenu-btn>.text,#heading>[data-zui-dropmenu]+div+div .dropmenu-btn>.text{max-width:78px}#navbar{align-items:center;display:flex;font-size:.875rem;height:100%;justify-content:center;line-height:1.3rem}#navbar>.nav{--nav-active-color:var(--zt-navbar-active-color,var(--color-current));--nav-item-padding:12px;--nav-divider-margin:8px;margin-left:var(--nav-offset-left)}#navbar>.nav>.nav-item>a{height:3rem;padding-left:var(--nav-item-padding);padding-right:var(--nav-item-padding)}#navbar>.nav>.nav-item>a:after{--tw-scale-x:.5;background-color:currentColor;bottom:.5rem;content:"";height:.125rem;left:.75rem;opacity:0;position:absolute;right:.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}#navbar>.nav>.nav-item>a:hover:after{opacity:.5}#navbar>.nav>.nav-item>a.active:after,#navbar>.nav>.nav-item>a:hover:after{--tw-scale-x:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#navbar>.nav>.nav-item>a.active:after{opacity:.9}#navbar>.nav>.divider{align-self:center;height:1.25rem;margin-left:var(--nav-divider-margin);margin-right:var(--nav-divider-margin)}#navbar>.nav.compact{font-size:.8125rem;line-height:1.25rem}#navbar>.nav.compact-extra{font-size:.75rem;line-height:1rem}#toolbar{align-items:center;bottom:0;display:flex;gap:.25rem;position:absolute;right:1rem;top:0}#main{min-height:100vh}#header+#main{min-height:calc(100vh - 3rem)}#main>.container{padding-left:1rem;padding-right:1rem;position:relative}@media (min-width:1400px){#header>.container,#main>.container,#mainNavbar>.container{padding-left:2.5rem;padding-right:2.5rem}#heading{left:2.5rem}#toolbar{right:2.5rem}}#mainNavbar{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));height:2.75rem}#mainNavbar>.container{position:relative}#mainNavbar .nav{height:2.75rem;inset:0;justify-content:center;position:absolute}#mainNavbar .nav-item{font-size:.875rem;line-height:1.3rem}#mainNavbar .nav-item>a{border-radius:var(--radius)}#mainMenu{gap:1rem;justify-content:space-between;padding-bottom:.75rem;padding-top:.75rem}#featureBar,#mainMenu{align-items:center;display:flex}#featureBar{flex:1 1 auto;gap:.5rem}#featureBar .nav .btn>.icon{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}#actionBar{gap:.5rem}#actionBar>.nav-divider{margin-left:-.25rem;margin-right:-.25rem}#mainContent{padding-top:.75rem}#mainMenu+#mainContent{padding-top:0}#mainContent.row{align-items:stretch;display:flex;gap:1rem;justify-content:space-between}#mainContent.row>*{flex:1 1 auto;min-width:0}#mainContainer.has-sidebar-left{--gutter-left-size:16px}#mainContainer.is-sidebar-left-collapsed{--gutter-left-size:0}.has-sidebar-animation.has-sidebar-left #mainMenu{transition-duration:.15s;transition-property:padding-left;transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--modal-radius:var(--radius);--avatar-bg:var(--color-gray-200)}.modal-alert .modal-footer{justify-content:center}.modal-dialog{--tw-bg-opacity:1}.modal-body,.modal-footer,.modal-header{padding:1.5rem 2rem}.modal-header{padding-right:3rem}.modal-actions{top:1rem}.modal-body+.modal-footer,.modal-header+.modal-actions+.modal-body,.modal-header+.modal-body{padding-top:0}.modal-condensed .modal-body,.modal-condensed .modal-header{padding:1rem 1.25rem}.modal-condensed .modal-actions{top:.75rem}:root{--label-bg:var(--color-gray-100);--label-color:var(--color-gray-800)}.label[class$=-pale],.label[class*="-pale "]{--tw-bg-opacity:0.4;--tw-ring-opacity:0.4}.tree{--tree-indent:14px}.body-modal .panel-form,.modal .panel-form{margin:0;padding:0}.modal .panel-body{padding:1px}.modal-body>.form{padding-top:1px}.modal .history,.modal .panel-body>.form{padding:0}:root{--article-p-space:0}.arrow,.arrow:before{background:inherit;height:calc(var(--arrow-size)*1.4142);position:absolute;width:calc(var(--arrow-size)*1.4142)}.arrow{--arrow-size:5px;visibility:hidden}.arrow:before{--tw-rotate:45deg;border:inherit;content:"";transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));visibility:visible}.arrow-top,.arrow-up{border-bottom:inherit;border-right:inherit;border-width:1px 0 0 1px;top:calc(1px - var(--arrow-size))}.white>.arrow-top,.white>.arrow-up{top:calc(0px - var(--arrow-size))}.arrow-bottom,.arrow-down{border-left:inherit;border-top:inherit;border-width:0 1px 1px 0;bottom:calc(1px - var(--arrow-size))}.white>.arrow-bottom,.white>.arrow-down{bottom:calc(0px - var(--arrow-size))}.arrow-left{border-right:inherit;border-top:inherit;border-width:0 0 1px 1px;left:calc(1px - var(--arrow-size))}.white>.arrow-left{left:calc(0px - var(--arrow-size))}.arrow-right{border-bottom:inherit;border-left:inherit;border-width:1px 1px 0 0;right:calc(1px - var(--arrow-size))}.white>.arrow-right{right:calc(0px - var(--arrow-size))}.caret,.caret-down,.caret-left,.caret-right,.caret-up{border:var(--caret-size,4px) solid transparent;display:inline-block;height:0;opacity:var(--caret-opacity,.5);width:0}:focus>.caret,:hover>.caret{opacity:inherit}.disabled .caret,.readonly .caret{opacity:var(--caret-opacity,.5)}.caret,.caret-down{border-bottom-width:0;border-top-color:currentColor}.caret-up{border-bottom-color:currentColor;border-top-width:0}.caret-right{border-left-color:currentColor;border-right-width:0}.caret-left{border-left-width:0;border-right-color:currentColor}:root{--toggle-icon-size:calc(var(--font-size-root)*3/4 + 1px)}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-color:currentColor;border-width:1px;display:block;opacity:.5;position:relative}.toggle-icon-collapse:hover,.toggle-icon-expand:hover,.toggle-icon:hover{opacity:.9}.toggle-icon,.toggle-icon-collapse,.toggle-icon-expand{border-radius:inherit;height:var(--toggle-icon-size);width:var(--toggle-icon-size)}.is-collapsed .toggle-icon:after,.is-collapsed .toggle-icon:before,.is-expanded .toggle-icon:before,.toggle-icon-collapse:after,.toggle-icon-collapse:before,.toggle-icon-expand:before{background-color:currentColor;content:" ";display:block;height:1px;left:2px;position:absolute;right:2px;top:calc((var(--toggle-icon-size) - 3px)/2)}.is-collapsed .toggle-icon:after,.toggle-icon-collapse:after{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close{aspect-ratio:1/1;display:block;position:relative;width:1em}.close:after,.close:before{--tw-rotate:45deg;background-color:currentColor;border-radius:var(--radius-full);content:"";display:block;height:1px;left:0;position:absolute;top:calc(50% - .5px);width:100%}.close:after,.close:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.close:after{--tw-rotate:-45deg}.spinner,.spinner:after,.spinner:before{display:block;height:1em;position:relative;width:1em}.spinner:after,.spinner:before{border-radius:var(--radius-full);content:" ";position:absolute}.spinner:before{animation:-spin 1s cubic-bezier(.6,0,.4,1) infinite;border:.16667em solid transparent;border-top-color:currentcolor}.spinner:after{border:.16667em solid;opacity:.2}.magnifier{display:inline-block;height:1em;position:relative;width:1em}.magnifier:after,.magnifier:before{border-radius:var(--radius-full);content:"";display:block;position:absolute}.magnifier:before{border:1px solid;height:.75em;width:.75em}.magnifier:after{--tw-rotate:45deg;background-color:currentColor;height:1px;left:.55em;top:.7em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.5em}.more,.more-vert{margin:.5rem;position:relative}.more,.more-vert,.more-vert:after,.more-vert:before,.more:after,.more:before{background-color:currentColor;border-radius:var(--radius-full);height:.125rem;width:.125rem}.more-vert:after,.more-vert:before,.more:after,.more:before{--tw-content:"";content:var(--tw-content);display:block;left:-5px;position:absolute;top:0}.more-vert:after,.more:after{left:5px}.more-vert{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-down,.chevron-left,.chevron-right,.chevron-up{align-items:center;display:inline-flex;height:1em;justify-content:center;position:relative;width:1em}.chevron-down:before,.chevron-left:before,.chevron-right:before,.chevron-up:before{--tw-translate-y:-0.125rem;--tw-rotate:45deg;--tw-content:"";border-color:currentColor;border-width:0 1px 1px 0;content:var(--tw-content);display:block;height:.6923077em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform-origin:center;width:.6923077em}.chevron-left:before{--tw-translate-y:0px;--tw-translate-x:0.125rem;--tw-rotate:135deg}.chevron-left:before,.chevron-right:before{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chevron-right:before{--tw-translate-y:0px;--tw-translate-x:-0.125rem;--tw-rotate:-45deg}.chevron-up:before{--tw-translate-y:0.125rem;--tw-rotate:225deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.i-time{border-color:currentColor;border-radius:50%;border-width:.08em;display:inline-block;height:1em;position:relative;width:1em}.i-time:after{--tw-content:"";border-color:currentColor;border-width:0 0 .08em .08em;content:var(--tw-content);height:.385em;left:.3846em;position:absolute;top:.08em;width:.385em}.i-calendar{border-color:currentColor;border-radius:2px;border-width:.08em;display:inline-block;height:.79em;margin-top:.16em;position:relative;width:1em}.i-calendar:after,.i-calendar:before{--tw-content:"";border-color:currentColor;border-width:.08em;content:var(--tw-content);position:absolute}.i-calendar:before{border-bottom-width:0;left:.15em;top:.307em;width:.6em}.i-calendar:after{border-bottom-width:0;border-top-width:0;height:.3077em;left:.17em;top:-.154em;width:.538em}:root{--state-color:rgba(0,0,0,.05);--state-scale:.9;--opacity-disabled:.65;--opacity-muted:.5}.btn,.item>a,.state{cursor:pointer;position:relative}.btn:before,.item>a:before,.state:before{background:var(--state-color);border-radius:inherit;content:" ";display:block;inset:0;opacity:0;pointer-events:none;position:absolute;transform:scale(var(--state-scale));transition-duration:.2s;transition-property:opacity,transform,box-shadow,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn.active:not(:hover,:focus-visible,:focus-within,:active):before,.item>a.active:not(:hover,:focus-visible,:focus-within,:active):before,.state.active:not(:hover,:focus-visible,:focus-within,:active):before{--tw-scale-x:1;--tw-scale-y:1;--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);background:var(--state-active-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);opacity:var(--state-active-opacity,0);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.7s}.btn.selected:not(:hover,:focus-visible,:focus-within,:active):before,.item>a.selected:not(:hover,:focus-visible,:focus-within,:active):before,.state.selected:not(:hover,:focus-visible,:focus-within,:active):before{--tw-scale-x:1;--tw-scale-y:1;background:var(--state-selected-color,var(--state-scale));opacity:var(--state-selected-opacity,.1);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn:focus-visible,.item>a:focus-visible,.state:focus-visible{outline:2px solid transparent;outline-offset:2px}.btn:active:before,.btn:focus-visible:before,.btn:hover:before,.item>a:active:before,.item>a:focus-visible:before,.item>a:hover:before,.state:active:before,.state:focus-visible:before,.state:hover:before{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn:hover:before,.item>a:hover:before,.state:hover:before{opacity:var(--state-hover-opacity,1)}.btn:active:before,.item>a:active:before,.state:active:before{--tw-ring-color:var(--state-ring-color,currentColor);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);background:var(--state-pressed-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:var(--state-pressed-opacity,.6);transition-duration:.7s}.btn:focus-visible:before,.item>a:focus-visible:before,.state:focus-visible:before{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-focus-rgb),var(--tw-ring-opacity));background:var(--state-focus-color,var(--state-color));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);opacity:var(--state-focus-opacity,1)}.btn.disabled:before,.btn[disabled]:before,.item>a.disabled:before,.item>a[disabled]:before,.state.disabled:before,.state[disabled]:before{display:none}.disabled,.disabled *,[disabled],[disabled] *{--tw-grayscale:grayscale(100%);cursor:not-allowed!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);opacity:var(--opacity-disabled)}.load-indicator:after,.load-indicator:before{display:block;opacity:0;position:absolute;transition-delay:0s;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);visibility:hidden}.load-indicator:before{--tw-content:attr(data-loading);align-items:center;background-color:rgba(var(--color-canvas-rgb),.7);border-radius:inherit;content:var(--tw-content);display:flex;font-size:.75rem;inset:0;justify-content:center;line-height:1rem;z-index:99}.load-indicator[data-loading]:before{padding-top:3.5rem}.load-indicator:after{--tw-content:"";border-color:transparent currentcolor currentcolor;border-radius:var(--radius-full);border-style:dotted;border-width:4px 3px 4px 4px;content:var(--tw-content);height:2rem;left:50%;margin-left:-1rem;margin-top:-1rem;top:50%;width:2rem;z-index:100}.load-indicator.loading:after,.load-indicator.loading:before{opacity:1;transition-delay:.5s;visibility:visible}@keyframes -spin{to{transform:rotate(1turn)}}.load-indicator.loading:after{animation:-spin 1s linear infinite;opacity:.5}.events-none,.pointer-events-none{pointer-events:none}.events-auto,.pointer-events-auto{pointer-events:auto}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.cursor-text{cursor:text}.cursor-move{cursor:move}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.active\:opacity-100.active,.active\:opacity-100:active,.group.active .group-active\:opacity-100,.group:active .group-active\:opacity-100,.group:hover .group-hover\:opacity-100,.hover\:opacity-100:hover{opacity:1}.active\:text-primary.active,.active\:text-primary:active,.group.active .group-active\:text-primary,.group:active .group-active\:text-primary,.group:hover .group-hover\:text-primary,.hover\:text-primary:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.active\:border-primary.active,.active\:border-primary:active,.group.active .group-active\:border-primary,.group:active .group-active\:border-primary,.group:hover .group-hover\:border-primary,.hover\:border-primary:hover{--tw-border-opacity:1;border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity))}.active\:primary-pale.active,.active\:primary-pale:active,.group.active .group-active\:primary-pale,.group:active .group-active\:primary-pale,.group:hover .group-hover\:primary-pale,.hover\:primary-pale:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.active\:primary.active,.active\:primary:active,.group.active .group-active\:primary,.group:active .group-active\:primary,.group:hover .group-hover\:primary,.hover\:primary:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.active\:canvas.active,.active\:canvas:active,.group.active .group-active\:canvas,.group:active .group-active\:canvas,.group:hover .group-hover\:canvas,.hover\:canvas:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.active\:font-bold.active,.active\:font-bold:active,.group.active .group-active\:font-bold,.group:active .group-active\:font-bold,.group:hover .group-hover\:font-bold,.hover\:font-bold:hover{font-weight:700}.active\:shadow.active,.active\:shadow:active,.group.active .group-active\:shadow,.group:active .group-active\:shadow,.group:hover .group-hover\:shadow,.hover\:shadow:hover{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.container{width:100%}@media (min-width:1720px){.container{max-width:1720px}}.container{margin-left:auto;margin-right:auto}.popup{--tw-bg-opacity:0.85;--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05;--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.table-row{display:table-row}.hidden{display:none!important}.pull-right{float:right}.pull-left{float:left}.clearfix:after{clear:both;content:"";display:block}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.object-bottom{-o-object-position:bottom;object-position:bottom}.object-center{-o-object-position:center;object-position:center}.object-left{-o-object-position:left;object-position:left}.object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.object-left-top{-o-object-position:left top;object-position:left top}.object-right{-o-object-position:right;object-position:right}.object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.object-right-top{-o-object-position:right top;object-position:right top}.object-top{-o-object-position:top;object-position:top}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overflow-overlay{overflow:overlay}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-auto{inset:auto}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-full{top:100%}.right-full{right:100%}.bottom-full{bottom:100%}.left-full{left:100%}.top-auto{top:auto}.right-auto{right:auto}.bottom-auto{bottom:auto}.left-auto{left:auto}.top-px{top:1px}.right-px{right:1px}.bottom-px{bottom:1px}.left-px{left:1px}.top-0\.5{top:.125rem}.right-0\.5{right:.125rem}.bottom-0\.5{bottom:.125rem}.left-0\.5{left:.125rem}.top-1{top:.25rem}.right-1{right:.25rem}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.top-1\.5{top:.375rem}.right-1\.5{right:.375rem}.bottom-1\.5{bottom:.375rem}.left-1\.5{left:.375rem}.top-2{top:.5rem}.right-2{right:.5rem}.bottom-2{bottom:.5rem}.left-2{left:.5rem}.top-2\.5{top:.625rem}.right-2\.5{right:.625rem}.bottom-2\.5{bottom:.625rem}.left-2\.5{left:.625rem}.top-3{top:.75rem}.right-3{right:.75rem}.bottom-3{bottom:.75rem}.left-3{left:.75rem}.top-3\.5{top:.875rem}.right-3\.5{right:.875rem}.bottom-3\.5{bottom:.875rem}.left-3\.5{left:.875rem}.top-4{top:1rem}.right-4{right:1rem}.bottom-4{bottom:1rem}.left-4{left:1rem}.top-5{top:1.25rem}.right-5{right:1.25rem}.bottom-5{bottom:1.25rem}.left-5{left:1.25rem}.top-6{top:1.5rem}.right-6{right:1.5rem}.bottom-6{bottom:1.5rem}.left-6{left:1.5rem}.top-7{top:1.75rem}.right-7{right:1.75rem}.bottom-7{bottom:1.75rem}.left-7{left:1.75rem}.top-8{top:2rem}.right-8{right:2rem}.bottom-8{bottom:2rem}.left-8{left:2rem}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.m-0{margin:0}.mx-0{margin-left:0;margin-right:0}.my-0{margin-bottom:0}.mt-0,.my-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.ml-0{margin-left:0}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-bottom:auto}.mt-auto,.my-auto{margin-top:auto}.mr-auto{margin-right:auto}.mb-auto{margin-bottom:auto}.ml-auto{margin-left:auto}.m-px{margin:1px}.mx-px{margin-left:1px;margin-right:1px}.my-px{margin-bottom:1px}.mt-px,.my-px{margin-top:1px}.mr-px{margin-right:1px}.mb-px{margin-bottom:1px}.ml-px{margin-left:1px}.m-0\.5{margin:.125rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.my-0\.5{margin-bottom:.125rem}.mt-0\.5,.my-0\.5{margin-top:.125rem}.mr-0\.5{margin-right:.125rem}.mb-0\.5{margin-bottom:.125rem}.ml-0\.5{margin-left:.125rem}.m-1{margin:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-1{margin-bottom:.25rem}.mt-1,.my-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.m-1\.5{margin:.375rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.my-1\.5{margin-bottom:.375rem}.mt-1\.5,.my-1\.5{margin-top:.375rem}.mr-1\.5{margin-right:.375rem}.mb-1\.5{margin-bottom:.375rem}.ml-1\.5{margin-left:.375rem}.m-2{margin:.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-2{margin-bottom:.5rem}.mt-2,.my-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.m-2\.5{margin:.625rem}.mx-2\.5{margin-left:.625rem;margin-right:.625rem}.my-2\.5{margin-bottom:.625rem}.mt-2\.5,.my-2\.5{margin-top:.625rem}.mr-2\.5{margin-right:.625rem}.mb-2\.5{margin-bottom:.625rem}.ml-2\.5{margin-left:.625rem}.m-3{margin:.75rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.my-3{margin-bottom:.75rem}.mt-3,.my-3{margin-top:.75rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.m-3\.5{margin:.875rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.my-3\.5{margin-bottom:.875rem}.mt-3\.5,.my-3\.5{margin-top:.875rem}.mr-3\.5{margin-right:.875rem}.mb-3\.5{margin-bottom:.875rem}.ml-3\.5{margin-left:.875rem}.m-4{margin:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-4{margin-bottom:1rem}.mt-4,.my-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.m-5{margin:1.25rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.my-5{margin-bottom:1.25rem}.mt-5,.my-5{margin-top:1.25rem}.mr-5{margin-right:1.25rem}.mb-5{margin-bottom:1.25rem}.ml-5{margin-left:1.25rem}.m-6{margin:1.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-6{margin-bottom:1.5rem}.mt-6,.my-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.m-7{margin:1.75rem}.mx-7{margin-left:1.75rem;margin-right:1.75rem}.my-7{margin-bottom:1.75rem}.mt-7,.my-7{margin-top:1.75rem}.mr-7{margin-right:1.75rem}.mb-7{margin-bottom:1.75rem}.ml-7{margin-left:1.75rem}.m-8{margin:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.my-8{margin-bottom:2rem}.mt-8,.my-8{margin-top:2rem}.mr-8{margin-right:2rem}.mb-8{margin-bottom:2rem}.ml-8{margin-left:2rem}.m-9{margin:2.25rem}.mx-9{margin-left:2.25rem;margin-right:2.25rem}.my-9{margin-bottom:2.25rem}.mt-9,.my-9{margin-top:2.25rem}.mr-9{margin-right:2.25rem}.mb-9{margin-bottom:2.25rem}.ml-9{margin-left:2.25rem}.m-10{margin:2.5rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.my-10{margin-bottom:2.5rem}.mt-10,.my-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mb-10{margin-bottom:2.5rem}.ml-10{margin-left:2.5rem}.p-0{padding:0}.p-px{padding:1px}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.p-9{padding:2.25rem}.p-10{padding:2.5rem}.px-0{padding-left:0;padding-right:0}.py-0{padding-bottom:0}.pt-0,.py-0{padding-top:0}.pr-0{padding-right:0}.pb-0{padding-bottom:0}.pl-0{padding-left:0}.px-px{padding-left:1px;padding-right:1px}.py-px{padding-bottom:1px}.pt-px,.py-px{padding-top:1px}.pr-px{padding-right:1px}.pb-px{padding-bottom:1px}.pl-px{padding-left:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.py-0\.5{padding-bottom:.125rem}.pt-0\.5,.py-0\.5{padding-top:.125rem}.pr-0\.5{padding-right:.125rem}.pb-0\.5{padding-bottom:.125rem}.pl-0\.5{padding-left:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-1{padding-bottom:.25rem}.pt-1,.py-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.py-1\.5{padding-bottom:.375rem}.pt-1\.5,.py-1\.5{padding-top:.375rem}.pr-1\.5{padding-right:.375rem}.pb-1\.5{padding-bottom:.375rem}.pl-1\.5{padding-left:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-2{padding-bottom:.5rem}.pt-2,.py-2{padding-top:.5rem}.pr-2{padding-right:.5rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-2\.5{padding-bottom:.625rem}.pt-2\.5,.py-2\.5{padding-top:.625rem}.pr-2\.5{padding-right:.625rem}.pb-2\.5{padding-bottom:.625rem}.pl-2\.5{padding-left:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-bottom:.75rem}.pt-3,.py-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.py-3\.5{padding-bottom:.875rem}.pt-3\.5,.py-3\.5{padding-top:.875rem}.pr-3\.5{padding-right:.875rem}.pb-3\.5{padding-bottom:.875rem}.pl-3\.5{padding-left:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.py-4{padding-bottom:1rem}.pt-4,.py-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-5{padding-bottom:1.25rem}.pt-5,.py-5{padding-top:1.25rem}.pr-5{padding-right:1.25rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-6{padding-bottom:1.5rem}.pt-6,.py-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-7{padding-bottom:1.75rem}.pt-7,.py-7{padding-top:1.75rem}.pr-7{padding-right:1.75rem}.pb-7{padding-bottom:1.75rem}.pl-7{padding-left:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-8{padding-bottom:2rem}.pt-8,.py-8{padding-top:2rem}.pr-8{padding-right:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-9{padding-bottom:2.25rem}.pt-9,.py-9{padding-top:2.25rem}.pr-9{padding-right:2.25rem}.pb-9{padding-bottom:2.25rem}.pl-9{padding-left:2.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-10{padding-bottom:2.5rem}.pt-10,.py-10{padding-top:2.5rem}.pr-10{padding-right:2.5rem}.pb-10{padding-bottom:2.5rem}.pl-10{padding-left:2.5rem}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(0px*(1 - var(--tw-space-x-reverse)));margin-right:calc(0px*var(--tw-space-x-reverse))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.125rem*var(--tw-space-x-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.125rem*var(--tw-space-y-reverse));margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.375rem*var(--tw-space-x-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-2\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.625rem*var(--tw-space-x-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.625rem*var(--tw-space-y-reverse));margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-x-3\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.875rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.875rem*var(--tw-space-x-reverse))}.space-y-3\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.875rem*var(--tw-space-y-reverse));margin-top:calc(.875rem*(1 - var(--tw-space-y-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.25rem*var(--tw-space-x-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-7>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.75rem*var(--tw-space-x-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.75rem*var(--tw-space-y-reverse));margin-top:calc(1.75rem*(1 - var(--tw-space-y-reverse)))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.space-x-9>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.25rem*var(--tw-space-x-reverse))}.space-y-9>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.25rem*var(--tw-space-y-reverse));margin-top:calc(2.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.5rem*var(--tw-space-y-reverse));margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)))}.space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1px*(1 - var(--tw-space-x-reverse)));margin-right:calc(1px*var(--tw-space-x-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1px*var(--tw-space-y-reverse));margin-top:calc(1px*(1 - var(--tw-space-y-reverse)))}.w-0{width:0}.w-px{width:1px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-32{width:8rem}.w-36{width:9rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-52{width:13rem}.w-56{width:14rem}.w-60{width:15rem}.w-64{width:16rem}.w-72{width:18rem}.w-80{width:20rem}.w-96{width:24rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-1\/6{width:16.666667%}.w-2\/6{width:33.333333%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.w-min{width:-moz-min-content;width:min-content}.w-max{width:-moz-max-content;width:max-content}.w-fit{width:-moz-fit-content;width:fit-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.min-w-min{min-width:-moz-min-content;min-width:min-content}.min-w-max{min-width:-moz-max-content;min-width:max-content}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.max-w-0{max-width:0}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.max-w-min{max-width:-moz-min-content;max-width:min-content}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.h-0{height:0}.h-px{height:1px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-32{height:8rem}.h-36{height:9rem}.h-40{height:10rem}.h-44{height:11rem}.h-48{height:12rem}.h-52{height:13rem}.h-56{height:14rem}.h-60{height:15rem}.h-64{height:16rem}.h-72{height:18rem}.h-80{height:20rem}.h-96{height:24rem}.h-1\/2{height:50%}.h-1\/3{height:33.333333%}.h-2\/3{height:66.666667%}.h-1\/4{height:25%}.h-2\/4{height:50%}.h-3\/4{height:75%}.h-1\/5{height:20%}.h-2\/5{height:40%}.h-3\/5{height:60%}.h-4\/5{height:80%}.h-1\/6{height:16.666667%}.h-2\/6{height:33.333333%}.h-3\/6{height:50%}.h-4\/6{height:66.666667%}.h-5\/6{height:83.333333%}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h-min{height:-moz-min-content;height:min-content}.h-max{height:-moz-max-content;height:max-content}.h-fit{height:-moz-fit-content;height:fit-content}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-min{min-height:-moz-min-content;min-height:min-content}.min-h-max{min-height:-moz-max-content;min-height:max-content}.min-h-fit{min-height:-moz-fit-content;min-height:fit-content}.max-h-0{max-height:0}.max-h-px{max-height:1px}.max-h-none{max-height:none}.max-h-full{max-height:100%}.max-h-min{max-height:-moz-min-content;max-height:min-content}.max-h-max{max-height:-moz-max-content;max-height:max-content}.max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.canvas,.surface,.surface-light,.surface-strong{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}.canvas{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.surface-light{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-light-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity))}.surface{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.surface-strong{--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-strong-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-surface-strong-rgb),var(--tw-bg-opacity))}.inverse{background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity));color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.inverse,.white{--tw-bg-opacity:1;--tw-text-opacity:1}.white{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-white-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-white-rgb),var(--tw-bg-opacity));color:rgba(var(--color-fore-in-light-rgb),var(--tw-text-opacity))}.black{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-black-rgb),var(--tw-ring-opacity));background-color:rgba(var(--color-black-rgb),var(--tw-bg-opacity));color:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity))}.transparent{--tw-ring-color:transparent;background-color:transparent}.skin{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.skin:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger,.darken,.darker,.darkest,.gray,.gray-100,.gray-200,.gray-300,.gray-400,.gray-50,.gray-500,.gray-600,.gray-700,.gray-800,.gray-900,.gray-950,.important,.lighten,.lighter,.lightest,.primary,.secondary,.special,.success,.warning{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger:hover,.darken:hover,.darker:hover,.darkest:hover,.gray-100:hover,.gray-200:hover,.gray-300:hover,.gray-400:hover,.gray-500:hover,.gray-50:hover,.gray-600:hover,.gray-700:hover,.gray-800:hover,.gray-900:hover,.gray-950:hover,.gray:hover,.important:hover,.lighten:hover,.lighter:hover,.lightest:hover,.primary:hover,.secondary:hover,.special:hover,.success:hover,.warning:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger,.darken,.darker,.darkest,.gray,.gray-100,.gray-200,.gray-300,.gray-400,.gray-50,.gray-500,.gray-600,.gray-700,.gray-800,.gray-900,.gray-950,.important,.lighten,.lighter,.lightest,.primary,.secondary,.special,.success,.warning{--skin-text:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity));--skin-color:rgba(var(--skin-solid-rgb),1);--state-ring-color:var(--skin-color);--state-active-color:rgba(0,0,0,.1);--state-pressed-color:rgba(0,0,0,.1);--state-color:hsla(0,0%,100%,.1);--state-focus-color:rgba(0,0,0,.1)}.primary{--skin-solid-rgb:var(--color-primary-500-rgb)}.secondary{--skin-solid-rgb:var(--color-secondary-500-rgb)}.success{--skin-solid-rgb:var(--color-success-500-rgb)}.warning{--skin-solid-rgb:var(--color-warning-500-rgb)}.danger{--skin-solid-rgb:var(--color-danger-500-rgb)}.important{--skin-solid-rgb:var(--color-important-500-rgb)}.special{--skin-solid-rgb:var(--color-special-500-rgb)}.gray-50{--skin-bg:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity));--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-100{--skin-solid-rgb:var(--color-gray-100-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-200,.lightest{--skin-solid-rgb:var(--color-gray-200-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-300,.lighter{--skin-solid-rgb:var(--color-gray-300-rgb);--skin-text:rgba(var(--color-fore),var(--tw-text-opacity))}.gray-400,.lighten{--skin-solid-rgb:var(--color-gray-400-rgb)}.gray,.gray-500{--skin-solid-rgb:var(--color-gray-500-rgb)}.darken,.gray-600{--skin-solid-rgb:var(--color-gray-600-rgb)}.darker,.gray-700{--skin-solid-rgb:var(--color-gray-700-rgb)}.darkest,.gray-800{--skin-solid-rgb:var(--color-gray-800-rgb)}.gray-900{--skin-solid-rgb:var(--color-gray-900-rgb)}.gray-950{--skin-solid-rgb:var(--color-gray-950-rgb)}.danger-pale,.gray-100-pale,.gray-200-pale,.gray-300-pale,.gray-400-pale,.gray-50-pale,.gray-500-pale,.gray-600-pale,.gray-700-pale,.gray-800-pale,.gray-900-pale,.gray-950-pale,.gray-pale,.important-pale,.pale,.primary-pale,.secondary-pale,.special-pale,.success-pale,.warning-pale{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-pale:hover,.gray-100-pale:hover,.gray-200-pale:hover,.gray-300-pale:hover,.gray-400-pale:hover,.gray-50-pale:hover,.gray-500-pale:hover,.gray-600-pale:hover,.gray-700-pale:hover,.gray-800-pale:hover,.gray-900-pale:hover,.gray-950-pale:hover,.gray-pale:hover,.important-pale:hover,.pale:hover,.primary-pale:hover,.secondary-pale:hover,.special-pale:hover,.success-pale:hover,.warning-pale:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-pale,.gray-100-pale,.gray-200-pale,.gray-300-pale,.gray-400-pale,.gray-50-pale,.gray-500-pale,.gray-600-pale,.gray-700-pale,.gray-800-pale,.gray-900-pale,.gray-950-pale,.gray-pale,.important-pale,.pale,.primary-pale,.secondary-pale,.special-pale,.success-pale,.warning-pale{--skin-color:rgba(var(--skin-pale-rgb),.1);--skin-text:rgba(var(--skin-pale-rgb),1);--state-color:rgba(var(--skin-pale-rgb),.1)}.pale{--skin-pale-rgb:var(--color-gray-500-rgb)}.primary-pale{--skin-pale-rgb:var(--color-primary-500-rgb)}.secondary-pale{--skin-pale-rgb:var(--color-secondary-500-rgb)}.success-pale{--skin-pale-rgb:var(--color-success-500-rgb)}.warning-pale{--skin-pale-rgb:var(--color-warning-500-rgb)}.danger-pale{--skin-pale-rgb:var(--color-danger-500-rgb)}.important-pale{--skin-pale-rgb:var(--color-important-500-rgb)}.special-pale{--skin-pale-rgb:var(--color-special-500-rgb)}.gray-50-pale{--skin-pale-rgb:var(--color-gray-50-rgb);--skin-text:var(--color-gray-400)}.gray-100-pale{--skin-pale-rgb:var(--color-gray-100-rgb);--skin-text:var(--color-gray-400)}.gray-200-pale{--skin-pale-rgb:var(--color-gray-200-rgb);--skin-text:var(--color-gray-400)}.gray-300-pale{--skin-pale-rgb:var(--color-gray-300-rgb);--skin-text:var(--color-gray-500)}.gray-400-pale{--skin-pale-rgb:var(--color-gray-400-rgb);--skin-text:var(--color-gray-500)}.gray-500-pale,.gray-pale{--skin-pale-rgb:var(--color-gray-500-rgb)}.gray-600-pale{--skin-pale-rgb:var(--color-gray-600-rgb)}.gray-700-pale{--skin-pale-rgb:var(--color-gray-700-rgb)}.gray-800-pale{--skin-pale-rgb:var(--color-gray-800-rgb)}.gray-900-pale{--skin-pale-rgb:var(--color-gray-900-rgb)}.gray-950-pale{--skin-pale-rgb:var(--color-gray-950-rgb)}.danger-outline,.gray-300-outline,.gray-400-outline,.gray-600-outline,.gray-outline,.important-outline,.outline,.primary-outline,.secondary-outline,.special-outline,.success-outline,.warning-outline{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-outline:hover,.gray-300-outline:hover,.gray-400-outline:hover,.gray-600-outline:hover,.gray-outline:hover,.important-outline:hover,.outline:hover,.primary-outline:hover,.secondary-outline:hover,.special-outline:hover,.success-outline:hover,.warning-outline:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-outline,.gray-300-outline,.gray-400-outline,.gray-600-outline,.gray-outline,.important-outline,.outline,.primary-outline,.secondary-outline,.special-outline,.success-outline,.warning-outline{--skin-text:var(--skin-color,inherit);--skin-bg:transparent;--skin-color:rgba(var(--skin-outline-rgb),1);--state-color:rgba(var(--skin-outline-rgb),.1)}.outline{--skin-outline-rgb:var(--color-fore-rgb)}.primary-outline{--skin-outline-rgb:var(--color-primary-500-rgb)}.secondary-outline{--skin-outline-rgb:var(--color-secondary-500-rgb)}.success-outline{--skin-outline-rgb:var(--color-success-500-rgb)}.warning-outline{--skin-outline-rgb:var(--color-warning-500-rgb)}.danger-outline{--skin-outline-rgb:var(--color-danger-500-rgb)}.important-outline{--skin-outline-rgb:var(--color-important-500-rgb)}.special-outline{--skin-outline-rgb:var(--color-special-500-rgb)}.gray-300-outline{--skin-text:var(--color-gray-500);--skin-outline-rgb:var(--color-gray-300-rgb)}.gray-400-outline{--skin-text:var(--color-gray-500);--skin-outline-rgb:var(--color-gray-400-rgb)}.gray-outline{--skin-outline-rgb:var(--color-gray-500-rgb)}.gray-600-outline{--skin-outline-rgb:var(--color-gray-600-rgb)}.danger-ghost,.ghost,.important-ghost,.primary-ghost,.secondary-ghost,.special-ghost,.success-ghost,.warning-ghost{--skin-bg:var(--skin-color);--skin-ring:var(--skin-color);--skin-border:var(--skin-color);--skin-hover-text:var(--skin-text);--skin-hover-bg:var(--skin-bg);--tw-ring-color:var(--skin-ring);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--color-link-hover:var(--skin-text);background-color:var(--skin-bg);border-color:var(--skin-border);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--skin-text)}.danger-ghost:hover,.ghost:hover,.important-ghost:hover,.primary-ghost:hover,.secondary-ghost:hover,.special-ghost:hover,.success-ghost:hover,.warning-ghost:hover{background-color:var(--skin-hover-bg);color:var(--skin-hover-text)}.danger-ghost,.ghost,.important-ghost,.primary-ghost,.secondary-ghost,.special-ghost,.success-ghost,.warning-ghost{--tw-ring-opacity:0;--tw-bg-opacity:0;--skin-text:var(--skin-color,inherit);--skin-bg:transparent;--skin-ring:transparent;--skin-color:rgba(var(--skin-ghost-rgb),1);--state-color:rgba(var(--skin-ghost-rgb),.1)}.ghost{--skin-ghost-rgb:var(--color-fore-rgb);--skin-text:inherit}.primary-ghost{--skin-ghost-rgb:var(--color-primary-500-rgb)}.secondary-ghost{--skin-ghost-rgb:var(--color-secondary-500-rgb)}.success-ghost{--skin-ghost-rgb:var(--color-success-500-rgb)}.warning-ghost{--skin-ghost-rgb:var(--color-warning-500-rgb)}.danger-ghost{--skin-ghost-rgb:var(--color-danger-500-rgb)}.important-ghost{--skin-ghost-rgb:var(--color-important-500-rgb)}.special-ghost{--skin-ghost-rgb:var(--color-special-500-rgb)}.font-sans{font-family:-apple-system,Noto Sans,Helvetica Neue,Helvetica,Nimbus Sans L,Arial,Liberation Sans,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,Source Han Sans CN,Microsoft YaHei,Wenquanyi Micro Hei,WenQuanYi Zen Hei,ST Heiti,SimHei,WenQuanYi Zen Hei Sharp,sans-serif}.font-serif{font-family:Nimbus Roman No9 L,Songti SC,Noto Serif CJK SC,Source Han Serif SC,Source Han Serif CN,STSong,AR PL New Sung,AR PL SungtiL GB,NSimSun,SimSun,TW-Sung,WenQuanYi Bitmap Song,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR PL UMing TW MBE,PMingLiU,MingLiU,serif}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-root{font-size:16px}.text-sm{font-size:.75rem;line-height:1rem}.text-base{font-size:.8125rem;line-height:1.25rem}.text-md{font-size:.875rem;line-height:1.3rem}.text-lg{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.125rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-thin{font-weight:100}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-black{font-weight:900}.leading-3{line-height:.75rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-9{line-height:2.25rem}.leading-10{line-height:2.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-loose{line-height:2}.line-1{-webkit-line-clamp:1}.line-1,.line-2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-2{-webkit-line-clamp:2}.line-3{-webkit-line-clamp:3}.line-3,.line-4{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-4{-webkit-line-clamp:4}.line-5{-webkit-line-clamp:5}.line-5,.line-6{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-6{-webkit-line-clamp:6}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.align-bottom{vertical-align:bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.text-primary{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.text-secondary{--tw-text-opacity:1;color:rgba(var(--color-secondary-500-rgb),var(--tw-text-opacity))}.text-success{--tw-text-opacity:1;color:rgba(var(--color-success-500-rgb),var(--tw-text-opacity))}.text-warning{--tw-text-opacity:1;color:rgba(var(--color-warning-500-rgb),var(--tw-text-opacity))}.text-danger{--tw-text-opacity:1;color:rgba(var(--color-danger-500-rgb),var(--tw-text-opacity))}.text-important{--tw-text-opacity:1;color:rgba(var(--color-important-500-rgb),var(--tw-text-opacity))}.text-special{--tw-text-opacity:1;color:rgba(var(--color-special-500-rgb),var(--tw-text-opacity))}.text-primary-50{--tw-text-opacity:1;color:rgba(var(--color-primary-50-rgb),var(--tw-text-opacity))}.text-primary-100{--tw-text-opacity:1;color:rgba(var(--color-primary-100-rgb),var(--tw-text-opacity))}.text-primary-200{--tw-text-opacity:1;color:rgba(var(--color-primary-200-rgb),var(--tw-text-opacity))}.text-primary-300{--tw-text-opacity:1;color:rgba(var(--color-primary-300-rgb),var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgba(var(--color-primary-400-rgb),var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgba(var(--color-primary-500-rgb),var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgba(var(--color-primary-600-rgb),var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgba(var(--color-primary-700-rgb),var(--tw-text-opacity))}.text-primary-800{--tw-text-opacity:1;color:rgba(var(--color-primary-800-rgb),var(--tw-text-opacity))}.text-primary-900{--tw-text-opacity:1;color:rgba(var(--color-primary-900-rgb),var(--tw-text-opacity))}.text-primary-950{--tw-text-opacity:1;color:rgba(var(--color-primary-950-rgb),var(--tw-text-opacity))}.text-secondary-50{--tw-text-opacity:1;color:rgba(var(--color-secondary-50-rgb),var(--tw-text-opacity))}.text-secondary-100{--tw-text-opacity:1;color:rgba(var(--color-secondary-100-rgb),var(--tw-text-opacity))}.text-secondary-200{--tw-text-opacity:1;color:rgba(var(--color-secondary-200-rgb),var(--tw-text-opacity))}.text-secondary-300{--tw-text-opacity:1;color:rgba(var(--color-secondary-300-rgb),var(--tw-text-opacity))}.text-secondary-400{--tw-text-opacity:1;color:rgba(var(--color-secondary-400-rgb),var(--tw-text-opacity))}.text-secondary-500{--tw-text-opacity:1;color:rgba(var(--color-secondary-500-rgb),var(--tw-text-opacity))}.text-secondary-600{--tw-text-opacity:1;color:rgba(var(--color-secondary-600-rgb),var(--tw-text-opacity))}.text-secondary-700{--tw-text-opacity:1;color:rgba(var(--color-secondary-700-rgb),var(--tw-text-opacity))}.text-secondary-800{--tw-text-opacity:1;color:rgba(var(--color-secondary-800-rgb),var(--tw-text-opacity))}.text-secondary-900{--tw-text-opacity:1;color:rgba(var(--color-secondary-900-rgb),var(--tw-text-opacity))}.text-secondary-950{--tw-text-opacity:1;color:rgba(var(--color-secondary-950-rgb),var(--tw-text-opacity))}.text-gray-50{--tw-text-opacity:1;color:rgba(var(--color-gray-50-rgb),var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(var(--color-gray-100-rgb),var(--tw-text-opacity))}.text-gray-200,.text-lightest{--tw-text-opacity:1;color:rgba(var(--color-gray-200-rgb),var(--tw-text-opacity))}.text-gray-300,.text-lighter{--tw-text-opacity:1;color:rgba(var(--color-gray-300-rgb),var(--tw-text-opacity))}.text-gray-400,.text-lighten{--tw-text-opacity:1;color:rgba(var(--color-gray-400-rgb),var(--tw-text-opacity))}.text-gray,.text-gray-500{--tw-text-opacity:1;color:rgba(var(--color-gray-500-rgb),var(--tw-text-opacity))}.text-darken,.text-gray-600{--tw-text-opacity:1;color:rgba(var(--color-gray-600-rgb),var(--tw-text-opacity))}.text-darker,.text-gray-700{--tw-text-opacity:1;color:rgba(var(--color-gray-700-rgb),var(--tw-text-opacity))}.text-darkest,.text-gray-800{--tw-text-opacity:1;color:rgba(var(--color-gray-800-rgb),var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(var(--color-gray-900-rgb),var(--tw-text-opacity))}.text-gray-950{--tw-text-opacity:1;color:rgba(var(--color-gray-950-rgb),var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(var(--color-white-rgb),var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgba(var(--color-black-rgb),var(--tw-text-opacity))}.text-transparent{color:transparent}.text-canvas{--tw-text-opacity:1;color:rgba(var(--color-canvas-rgb),var(--tw-text-opacity))}.text-surface-light{--tw-text-opacity:1;color:rgba(var(--color-surface-light-rgb),var(--tw-text-opacity))}.text-surface{--tw-text-opacity:1;color:rgba(var(--color-surface-rgb),var(--tw-text-opacity))}.text-surface-strong{--tw-text-opacity:1;color:rgba(var(--color-surface-strong-rgb),var(--tw-text-opacity))}.text-inverse{--tw-text-opacity:1;color:rgba(var(--color-inverse-rgb),var(--tw-text-opacity))}.text-fore-in-light{--tw-text-opacity:1;color:rgba(var(--color-fore-in-light-rgb),var(--tw-text-opacity))}.text-fore-in-dark{--tw-text-opacity:1;color:rgba(var(--color-fore-in-dark-rgb),var(--tw-text-opacity))}.text-fore{--tw-text-opacity:1;color:rgba(var(--color-fore-rgb),var(--tw-text-opacity))}.text-focus{--tw-text-opacity:1;color:rgba(var(--color-focus-rgb),var(--tw-text-opacity))}.text-link{--tw-text-opacity:1;color:rgba(var(--color-link-rgb),var(--tw-text-opacity))}.text-link-hover{--tw-text-opacity:1;color:rgba(var(--color-link-hover-rgb),var(--tw-text-opacity))}.text-current{color:currentColor}.text-inherit{color:inherit}.clip,.ellipsis,.text-clip,.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clip,.text-clip{text-overflow:clip}.nowrap,.whitespace-nowrap{white-space:nowrap}.pre,.whitespace-pre{white-space:pre}.pre-line,.whitespace-pre-line{white-space:pre-line}.pre-wrap,.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-opacity-0{--tw-text-opacity:0}.text-opacity-5{--tw-text-opacity:.05}.text-opacity-10{--tw-text-opacity:.1}.text-opacity-20{--tw-text-opacity:.2}.text-opacity-25{--tw-text-opacity:.25}.text-opacity-30{--tw-text-opacity:.3}.text-opacity-40{--tw-text-opacity:.4}.text-opacity-50{--tw-text-opacity:.5}.text-opacity-60{--tw-text-opacity:.6}.text-opacity-70{--tw-text-opacity:.7}.text-opacity-80{--tw-text-opacity:.8}.text-opacity-90{--tw-text-opacity:.9}.text-opacity-95{--tw-text-opacity:.95}.text-opacity-100{--tw-text-opacity:1}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.list-unstyled{list-style-type:none;padding-left:0}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.bg-primary{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity))}.bg-secondary{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-500-rgb),var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity:1;background-color:rgba(var(--color-success-500-rgb),var(--tw-bg-opacity))}.bg-warning{--tw-bg-opacity:1;background-color:rgba(var(--color-warning-500-rgb),var(--tw-bg-opacity))}.bg-danger{--tw-bg-opacity:1;background-color:rgba(var(--color-danger-500-rgb),var(--tw-bg-opacity))}.bg-important{--tw-bg-opacity:1;background-color:rgba(var(--color-important-500-rgb),var(--tw-bg-opacity))}.bg-special{--tw-bg-opacity:1;background-color:rgba(var(--color-special-500-rgb),var(--tw-bg-opacity))}.bg-primary-50{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-50-rgb),var(--tw-bg-opacity))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100-rgb),var(--tw-bg-opacity))}.bg-primary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-200-rgb),var(--tw-bg-opacity))}.bg-primary-300{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-300-rgb),var(--tw-bg-opacity))}.bg-primary-400{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-400-rgb),var(--tw-bg-opacity))}.bg-primary-500{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500-rgb),var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600-rgb),var(--tw-bg-opacity))}.bg-primary-700{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-700-rgb),var(--tw-bg-opacity))}.bg-primary-800{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-800-rgb),var(--tw-bg-opacity))}.bg-primary-900{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900-rgb),var(--tw-bg-opacity))}.bg-primary-950{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-950-rgb),var(--tw-bg-opacity))}.bg-secondary-50{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-50-rgb),var(--tw-bg-opacity))}.bg-secondary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-100-rgb),var(--tw-bg-opacity))}.bg-secondary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-200-rgb),var(--tw-bg-opacity))}.bg-secondary-300{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-300-rgb),var(--tw-bg-opacity))}.bg-secondary-400{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-400-rgb),var(--tw-bg-opacity))}.bg-secondary-500{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-500-rgb),var(--tw-bg-opacity))}.bg-secondary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-600-rgb),var(--tw-bg-opacity))}.bg-secondary-700{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-700-rgb),var(--tw-bg-opacity))}.bg-secondary-800{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-800-rgb),var(--tw-bg-opacity))}.bg-secondary-900{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-900-rgb),var(--tw-bg-opacity))}.bg-secondary-950{--tw-bg-opacity:1;background-color:rgba(var(--color-secondary-950-rgb),var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-50-rgb),var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-100-rgb),var(--tw-bg-opacity))}.bg-gray-200,.bg-lightest{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-200-rgb),var(--tw-bg-opacity))}.bg-gray-300,.bg-lighter{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-300-rgb),var(--tw-bg-opacity))}.bg-gray-400,.bg-light{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-400-rgb),var(--tw-bg-opacity))}.bg-gray,.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-500-rgb),var(--tw-bg-opacity))}.bg-darken,.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-600-rgb),var(--tw-bg-opacity))}.bg-darker,.bg-gray-700{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-700-rgb),var(--tw-bg-opacity))}.bg-darkest,.bg-gray-800{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-800-rgb),var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-900-rgb),var(--tw-bg-opacity))}.bg-gray-950{--tw-bg-opacity:1;background-color:rgba(var(--color-gray-950-rgb),var(--tw-bg-opacity))}.bg-canvas{--tw-bg-opacity:1;background-color:rgba(var(--color-canvas-rgb),var(--tw-bg-opacity))}.bg-surface-light{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-light-rgb),var(--tw-bg-opacity))}.bg-surface{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-rgb),var(--tw-bg-opacity))}.bg-surface-strong{--tw-bg-opacity:1;background-color:rgba(var(--color-surface-strong-rgb),var(--tw-bg-opacity))}.bg-inverse{--tw-bg-opacity:1;background-color:rgba(var(--color-inverse-rgb),var(--tw-bg-opacity))}.bg-fore-in-light{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-in-light-rgb),var(--tw-bg-opacity))}.bg-fore-in-dark{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-in-dark-rgb),var(--tw-bg-opacity))}.bg-fore{--tw-bg-opacity:1;background-color:rgba(var(--color-fore-rgb),var(--tw-bg-opacity))}.bg-focus{--tw-bg-opacity:1;background-color:rgba(var(--color-focus-rgb),var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(var(--color-white-rgb),var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(var(--color-black-rgb),var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-current{background-color:currentColor}.bg-inherit{background-color:inherit}.bg-none{background-image:none}.bg-opacity-0{--tw-bg-opacity:0}.bg-opacity-5{--tw-bg-opacity:.05}.bg-opacity-10{--tw-bg-opacity:.1}.bg-opacity-20{--tw-bg-opacity:.2}.bg-opacity-30{--tw-bg-opacity:.3}.bg-opacity-40{--tw-bg-opacity:.4}.bg-opacity-50{--tw-bg-opacity:.5}.bg-opacity-60{--tw-bg-opacity:.6}.bg-opacity-70{--tw-bg-opacity:.7}.bg-opacity-80{--tw-bg-opacity:.8}.bg-opacity-90{--tw-bg-opacity:.9}.bg-opacity-100{--tw-bg-opacity:1}.bg-auto{background-size:auto}.bg-cover{background-size:cover}.bg-contain{background-size:contain}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-bottom{background-position:bottom}.bg-center{background-position:50%}.bg-left{background-position:0}.bg-left-bottom{background-position:0 100%}.bg-left-top{background-position:0 0}.bg-right{background-position:100%}.bg-right-bottom{background-position:100% 100%}.bg-right-top{background-position:100% 0}.bg-top{background-position:top}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.divider{align-self:stretch;border-color:currentColor;border-left-width:1px;border-top-width:1px;opacity:.1}.border-0{border-width:0}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-t{border-top-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-t-0{border-top-width:0}.border-r-0{border-right-width:0}.border-b-0{border-bottom-width:0}.border-l-0{border-left-width:0}.border-t-2{border-top-width:2px}.border-l-2{border-left-width:2px}.border-r-2{border-right-width:2px}.border-b-2{border-bottom-width:2px}.border-t-4{border-top-width:4px}.border-l-4{border-left-width:4px}.border-r-4{border-right-width:4px}.border-b-4{border-bottom-width:4px}.border-light{--tw-border-opacity:1;border-color:rgba(var(--color-border-light-rgb),var(--tw-border-opacity))}.border-strong{--tw-border-opacity:1;border-color:rgba(var(--color-border-strong-rgb),var(--tw-border-opacity))}.border-primary{--tw-border-opacity:1;border-color:rgba(var(--color-primary-500-rgb),var(--tw-border-opacity))}.border-secondary{--tw-border-opacity:1;border-color:rgba(var(--color-secondary-500-rgb),var(--tw-border-opacity))}.border-success{--tw-border-opacity:1;border-color:rgba(var(--color-success-500-rgb),var(--tw-border-opacity))}.border-warning{--tw-border-opacity:1;border-color:rgba(var(--color-warning-500-rgb),var(--tw-border-opacity))}.border-danger{--tw-border-opacity:1;border-color:rgba(var(--color-danger-500-rgb),var(--tw-border-opacity))}.border-important{--tw-border-opacity:1;border-color:rgba(var(--color-important-500-rgb),var(--tw-border-opacity))}.border-special{--tw-border-opacity:1;border-color:rgba(var(--color-special-500-rgb),var(--tw-border-opacity))}.border-gray-50{--tw-border-opacity:1;border-color:rgba(var(--color-gray-50-rgb),var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgba(var(--color-gray-100-rgb),var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(var(--color-gray-200-rgb),var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(var(--color-gray-300-rgb),var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgba(var(--color-gray-400-rgb),var(--tw-border-opacity))}.border-gray,.border-gray-500{--tw-border-opacity:1;border-color:rgba(var(--color-gray-500-rgb),var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgba(var(--color-gray-600-rgb),var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity:1;border-color:rgba(var(--color-gray-700-rgb),var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgba(var(--color-gray-800-rgb),var(--tw-border-opacity))}.border-gray-900{--tw-border-opacity:1;border-color:rgba(var(--color-gray-900-rgb),var(--tw-border-opacity))}.border-gray-950{--tw-border-opacity:1;border-color:rgba(var(--color-gray-950-rgb),var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgba(var(--color-white-rgb),var(--tw-border-opacity))}.border-black{--tw-border-opacity:1;border-color:rgba(var(--color-black-rgb),var(--tw-border-opacity))}.border-canvas{--tw-border-opacity:1;border-color:rgba(var(--color-canvas-rgb),var(--tw-border-opacity))}.border-surface-light{--tw-border-opacity:1;border-color:rgba(var(--color-surface-light-rgb),var(--tw-border-opacity))}.border-surface{--tw-border-opacity:1;border-color:rgba(var(--color-surface-rgb),var(--tw-border-opacity))}.border-surface-strong{--tw-border-opacity:1;border-color:rgba(var(--color-surface-strong-rgb),var(--tw-border-opacity))}.border-inverse{--tw-border-opacity:1;border-color:rgba(var(--color-inverse-rgb),var(--tw-border-opacity))}.border-fore-in-light{--tw-border-opacity:1;border-color:rgba(var(--color-fore-in-light-rgb),var(--tw-border-opacity))}.border-fore-in-dark{--tw-border-opacity:1;border-color:rgba(var(--color-fore-in-dark-rgb),var(--tw-border-opacity))}.border-fore{--tw-border-opacity:1;border-color:rgba(var(--color-fore-rgb),var(--tw-border-opacity))}.border-focus{--tw-border-opacity:1;border-color:rgba(var(--color-focus-rgb),var(--tw-border-opacity))}.border-link{--tw-border-opacity:1;border-color:rgba(var(--color-link-rgb),var(--tw-border-opacity))}.border-link-hover{--tw-border-opacity:1;border-color:rgba(var(--color-link-hover-rgb),var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-current{border-color:currentColor}.border-inherit{border-color:inherit}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-opacity-0{--tw-border-opacity:0}.border-opacity-5{--tw-border-opacity:.05}.border-opacity-10{--tw-border-opacity:.1}.border-opacity-20{--tw-border-opacity:.2}.border-opacity-25{--tw-border-opacity:.25}.border-opacity-30{--tw-border-opacity:.3}.border-opacity-40{--tw-border-opacity:.4}.border-opacity-50{--tw-border-opacity:.5}.border-opacity-60{--tw-border-opacity:.6}.border-opacity-70{--tw-border-opacity:.7}.border-opacity-80{--tw-border-opacity:.8}.border-opacity-90{--tw-border-opacity:.9}.border-opacity-95{--tw-border-opacity:.95}.border-opacity-100{--tw-border-opacity:1}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.circle,.rounded-full{border-radius:var(--radius-full)}.rounded-l-none{border-bottom-left-radius:var(--radius-none);border-top-left-radius:var(--radius-none)}.rounded-t-none{border-top-left-radius:var(--radius-none)}.rounded-r-none,.rounded-t-none{border-top-right-radius:var(--radius-none)}.rounded-b-none,.rounded-r-none{border-bottom-right-radius:var(--radius-none)}.rounded-b-none{border-bottom-left-radius:var(--radius-none)}.rounded-br-none{border-bottom-right-radius:var(--radius-none)}.rounded-bl-none{border-bottom-left-radius:var(--radius-none)}.rounded-tr-none{border-top-right-radius:var(--radius-none)}.rounded-tl-none{border-top-left-radius:var(--radius-none)}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-border-light{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-light-rgb),var(--tw-ring-opacity))}.ring-border{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-rgb),var(--tw-ring-opacity))}.ring-border-strong{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-border-strong-rgb),var(--tw-ring-opacity))}.ring-light{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.05}.ring-gray{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.1}.ring-dark{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.2}.ring-darker{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.3}.ring-darkest{--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity));--tw-ring-opacity:0.5}.ring-primary{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-primary-500-rgb),var(--tw-ring-opacity))}.ring-secondary{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-secondary-500-rgb),var(--tw-ring-opacity))}.ring-warning{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-warning-500-rgb),var(--tw-ring-opacity))}.ring-success{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-success-500-rgb),var(--tw-ring-opacity))}.ring-danger{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-danger-500-rgb),var(--tw-ring-opacity))}.ring-important{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-important-500-rgb),var(--tw-ring-opacity))}.ring-special{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-special-500-rgb),var(--tw-ring-opacity))}.ring-gray-50{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-50-rgb),var(--tw-ring-opacity))}.ring-gray-100{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-100-rgb),var(--tw-ring-opacity))}.ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-200-rgb),var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-300-rgb),var(--tw-ring-opacity))}.ring-gray-400{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-400-rgb),var(--tw-ring-opacity))}.ring-gray-500{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-500-rgb),var(--tw-ring-opacity))}.ring-gray-600{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-600-rgb),var(--tw-ring-opacity))}.ring-gray-700{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-700-rgb),var(--tw-ring-opacity))}.ring-gray-800{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-800-rgb),var(--tw-ring-opacity))}.ring-gray-900{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-900-rgb),var(--tw-ring-opacity))}.ring-gray-950{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-gray-950-rgb),var(--tw-ring-opacity))}.ring-inverse{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-inverse-rgb),var(--tw-ring-opacity))}.ring-canvas{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-canvas-rgb),var(--tw-ring-opacity))}.ring-surface{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-surface-rgb),var(--tw-ring-opacity))}.ring-fore{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-fore-rgb),var(--tw-ring-opacity))}.ring-transparent{--tw-ring-color:transparent}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-black-rgb),var(--tw-ring-opacity))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--color-white-rgb),var(--tw-ring-opacity))}.ring-inherit{--tw-ring-color:inherit}.ring-current{--tw-ring-color:currentColor}.ring-opacity-0{--tw-ring-opacity:0}.ring-opacity-5{--tw-ring-opacity:.05}.ring-opacity-10{--tw-ring-opacity:.1}.ring-opacity-20{--tw-ring-opacity:.2}.ring-opacity-30{--tw-ring-opacity:.3}.ring-opacity-40{--tw-ring-opacity:.4}.ring-opacity-50{--tw-ring-opacity:.5}.ring-opacity-60{--tw-ring-opacity:.6}.ring-opacity-70{--tw-ring-opacity:.7}.ring-opacity-80{--tw-ring-opacity:.8}.ring-opacity-90{--tw-ring-opacity:.9}.ring-opacity-100{--tw-ring-opacity:1}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-0,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-3{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-3,.ring-4{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-8{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-offset-0{--tw-ring-offset-width:0px}.ring-offset-1{--tw-ring-offset-width:1px}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-4{--tw-ring-offset-width:4px}.ring-offset-8{--tw-ring-offset-width:8px}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.04),0 0 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color),0 0 2px -1px var(--tw-shadow-color)}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow{--tw-shadow:0 3px 8px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.01);--tw-shadow-colored:0 3px 8px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 2px 6px -1px rgba(0,0,0,.2),0 1px 4px -2px rgba(0,0,0,.15);--tw-shadow-colored:0 2px 6px -1px var(--tw-shadow-color),0 1px 4px -2px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 5px 15px -3px rgba(0,0,0,.2),0 2px 6px -4px rgba(0,0,0,.15);--tw-shadow-colored:0 5px 15px -3px var(--tw-shadow-color),0 2px 6px -4px var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 4px 10px -6px rgba(0,0,0,.15);--tw-shadow-colored:0 10px 25px -5px var(--tw-shadow-color),0 4px 10px -6px var(--tw-shadow-color)}.shadow-2xl,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 10px 50px -10px rgba(0,0,0,.4),0 8px 20px -10px rgba(0,0,0,.3);--tw-shadow-colored:0 10px 50px -10px var(--tw-shadow-color),0 8px 20px -10px var(--tw-shadow-color)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color)}.shadow-inner,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.muted{opacity:var(--opacity-muted)}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.blur-none{--tw-blur:blur(0)}.blur-none,.blur-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-sm{--tw-blur:blur(4px)}.blur{--tw-blur:blur(8px)}.blur,.blur-md{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-md{--tw-blur:blur(12px)}.blur-lg{--tw-blur:blur(16px)}.blur-lg,.blur-xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-xl{--tw-blur:blur(24px)}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter-none{filter:none!important}.drop-shadow-none{--tw-drop-shadow:drop-shadow(0 0 #0000)}.drop-shadow-none,.drop-shadow-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgba(0,0,0,.05))}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.drop-shadow-md{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}.drop-shadow-lg{--tw-drop-shadow:drop-shadow(0 10px 8px rgba(0,0,0,.04)) drop-shadow(0 4px 3px rgba(0,0,0,.1))}.drop-shadow-lg,.drop-shadow-xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-xl{--tw-drop-shadow:drop-shadow(0 20px 13px rgba(0,0,0,.03)) drop-shadow(0 8px 5px rgba(0,0,0,.08))}.drop-shadow-2xl{--tw-drop-shadow:drop-shadow(0 25px 25px rgba(0,0,0,.15));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-none{--tw-backdrop-blur:blur(0)}.backdrop-blur-none,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.backdrop-blur-lg,.backdrop-blur-xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(40px)}.backdrop-blur-2xl,.backdrop-blur-3xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-3xl{--tw-backdrop-blur:blur(64px)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fade,.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{opacity:0;transition-duration:.15s;transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{--tw-scale-x:.9;--tw-scale-y:.9}.fade-from-bottom,.fade-from-center,.fade-from-left,.fade-from-right,.fade-from-top{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-bottom{--tw-translate-y:25%}.fade-from-top{--tw-translate-y:-25%}.fade-from-left,.fade-from-top{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-left{--tw-translate-x:-25%}.fade-from-right{--tw-translate-x:25%}.fade-from-bottom.in,.fade-from-center.in,.fade-from-left.in,.fade-from-right,.fade-from-right.in,.fade-from-top.in,.fade.in{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.fade-from-bottom.in,.fade-from-center.in,.fade-from-left.in,.fade-from-right.in,.fade-from-top.in,.fade.in{--tw-translate-x:0px;--tw-translate-y:0px;--tw-scale-x:1;--tw-scale-y:1;opacity:1}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-1000{transition-duration:1s}@keyframes -spin{to{transform:rotate(1turn)}}.animate-spin,.spin{animation:-spin 1s linear infinite}@keyframes -ping{75%,to{opacity:0;transform:scale(2)}}.animate-ping,.ping{animation:-ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes -pulse{50%{opacity:.5}}.animate-pulse,.pulse{animation:-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes -bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-bounce,.bounce{animation:-bounce 1s infinite}.scale-0{--tw-scale-x:0;--tw-scale-y:0}.scale-0,.scale-50{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-50{--tw-scale-x:.5;--tw-scale-y:.5}.scale-75{--tw-scale-x:.75;--tw-scale-y:.75}.scale-75,.scale-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-100,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.scale-105,.scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}.scale-125,.scale-150{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-150{--tw-scale-x:1.5;--tw-scale-y:1.5}.flip-x{--tw-scale-x:-1}.flip-x,.flip-y{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flip-y{--tw-scale-y:-1}.rotate-0{--tw-rotate:0deg}.rotate-0,.rotate-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-1{--tw-rotate:1deg}.rotate-2{--tw-rotate:2deg}.rotate-2,.rotate-3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-3{--tw-rotate:3deg}.rotate-6{--tw-rotate:6deg}.rotate-12,.rotate-6{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-12{--tw-rotate:12deg}.rotate-45{--tw-rotate:45deg}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.rotate-135{--tw-rotate:135deg}.rotate-135,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.rotate-270{--tw-rotate:270deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.basis-0{flex-basis:0px}.basis-1{flex-basis:0.25rem}.basis-2{flex-basis:0.5rem}.basis-3{flex-basis:0.75rem}.basis-4{flex-basis:1rem}.basis-5{flex-basis:1.25rem}.basis-6{flex-basis:1.5rem}.basis-7{flex-basis:1.75rem}.basis-8{flex-basis:2rem}.basis-9{flex-basis:2.25rem}.basis-10{flex-basis:2.5rem}.basis-11{flex-basis:2.75rem}.basis-12{flex-basis:3rem}.basis-14{flex-basis:3.5rem}.basis-16{flex-basis:4rem}.basis-20{flex-basis:5rem}.basis-24{flex-basis:6rem}.basis-28{flex-basis:7rem}.basis-32{flex-basis:8rem}.basis-36{flex-basis:9rem}.basis-40{flex-basis:10rem}.basis-44{flex-basis:11rem}.basis-48{flex-basis:12rem}.basis-52{flex-basis:13rem}.basis-56{flex-basis:14rem}.basis-60{flex-basis:15rem}.basis-64{flex-basis:16rem}.basis-72{flex-basis:18rem}.basis-80{flex-basis:20rem}.basis-96{flex-basis:24rem}.basis-auto{flex-basis:auto}.basis-px{flex-basis:1px}.basis-0\.5{flex-basis:0.125rem}.basis-1\.5{flex-basis:0.375rem}.basis-2\.5{flex-basis:0.625rem}.basis-3\.5{flex-basis:0.875rem}.basis-1\/2{flex-basis:50%}.basis-1\/3{flex-basis:33.333333%}.basis-2\/3{flex-basis:66.666667%}.basis-1\/4{flex-basis:25%}.basis-2\/4{flex-basis:50%}.basis-3\/4{flex-basis:75%}.basis-1\/5{flex-basis:20%}.basis-2\/5{flex-basis:40%}.basis-3\/5{flex-basis:60%}.basis-4\/5{flex-basis:80%}.basis-1\/6{flex-basis:16.666667%}.basis-2\/6{flex-basis:33.333333%}.basis-3\/6{flex-basis:50%}.basis-4\/6{flex-basis:66.666667%}.basis-5\/6{flex-basis:83.333333%}.basis-1\/12{flex-basis:8.333333%}.basis-2\/12{flex-basis:16.666667%}.basis-3\/12{flex-basis:25%}.basis-4\/12{flex-basis:33.333333%}.basis-5\/12{flex-basis:41.666667%}.basis-6\/12{flex-basis:50%}.basis-7\/12{flex-basis:58.333333%}.basis-8\/12{flex-basis:66.666667%}.basis-9\/12{flex-basis:75%}.basis-10\/12{flex-basis:83.333333%}.basis-11\/12{flex-basis:91.666667%}.basis-full{flex-basis:100%}.row{display:flex;flex-direction:row}.center,.col{display:flex;flex-direction:column}.center,.center-row{align-items:center;justify-content:center}.center-row{display:flex;flex-direction:row}.center-x,.center-y{align-items:center;display:flex}.center-y{flex-direction:column}.row-reverse{display:flex;flex-direction:row-reverse}.col-reverse{display:flex;flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.grow{flex-grow:1!important}.grow-0{flex-grow:0!important}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.order-first{order:-9999}.order-last{order:9999}.order-none{order:0}.gap-0{gap:0}.gap-x-0{-moz-column-gap:0;column-gap:0}.gap-y-0{row-gap:0}.gap-px{gap:1px}.gap-x-px{-moz-column-gap:1px;column-gap:1px}.gap-y-px{row-gap:1px}.gap-0\.5{gap:.125rem}.gap-x-0\.5{-moz-column-gap:.125rem;column-gap:.125rem}.gap-y-0\.5{row-gap:.125rem}.gap-3px{gap:3px}.gap-1{gap:.25rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-y-1{row-gap:.25rem}.gap-1\.5{gap:.375rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-y-1\.5{row-gap:.375rem}.gap-2{gap:.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-2{row-gap:.5rem}.gap-2\.5{gap:.625rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-y-2\.5{row-gap:.625rem}.gap-3{gap:.75rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-3{row-gap:.75rem}.gap-3\.5{gap:.875rem}.gap-x-3\.5{-moz-column-gap:.875rem;column-gap:.875rem}.gap-y-3\.5{row-gap:.875rem}.gap-4{gap:1rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-4{row-gap:1rem}.gap-5{gap:1.25rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-5{row-gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-6{row-gap:1.5rem}.gap-7{gap:1.75rem}.gap-x-7{-moz-column-gap:1.75rem;column-gap:1.75rem}.gap-y-7{row-gap:1.75rem}.gap-8{gap:2rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-8{row-gap:2rem}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}@font-face{font-display:fallback;font-family:D-DIN-PRO;font-weight:400;src:url(./fonts/D-DIN-PRO-400-Regular.otf)}@font-face{font-display:fallback;font-family:D-DIN-PRO;font-weight:500;src:url(./fonts/D-DIN-PRO-700-Bold.otf)}.num{font-family:D-DIN-PRO;font-weight:400}@font-face{font-display:fallback;font-family:Nunito;font-weight:400;src:url(./fonts/Nunito-Regular.ttf)}@font-face{font-display:fallback;font-family:Nunito;font-weight:700;src:url(./fonts/Nunito-bold.ttf)}@font-face{font-display:fallback;font-family:Nunito;font-weight:300;src:url(./fonts/Nunito-Light.ttf)}.font-brand{font-family:Nunito;font-weight:400} \ No newline at end of file diff --git a/www/js/zui3/zui.zentao.js b/www/js/zui3/zui.zentao.js index 68321e430a..2b37ee6672 100644 --- a/www/js/zui3/zui.zentao.js +++ b/www/js/zui3/zui.zentao.js @@ -1,3 +1,4 @@ -var Io=(w,tt,vt)=>{if(!tt.has(w))throw TypeError("Cannot "+vt)};var bt=(w,tt,vt)=>(Io(w,tt,"read from private field"),vt?vt.call(w):tt.get(w)),St=(w,tt,vt)=>{if(tt.has(w))throw TypeError("Cannot add the same private member more than once");tt instanceof WeakSet?tt.add(w):tt.set(w,vt)},It=(w,tt,vt,pi)=>(Io(w,tt,"write to private field"),pi?pi.call(w,vt):tt.set(w,vt),vt);var Po=(w,tt,vt)=>(Io(w,tt,"access private method"),vt);(function(w,tt){typeof exports=="object"&&typeof module<"u"?tt(exports):typeof define=="function"&&define.amd?define(["exports"],tt):(w=typeof globalThis<"u"?globalThis:w||self,tt(w.zui={}))})(this,function(w){var hi,di,Ls,Rs,Fs,zs,Os,Ws,ui,jc,fi,Uc,ye,_e;"use strict";const tt="",vt="",pi="",Ff="",zf="",Of="",Wf="",Hf="",Bf="",jf="",Uf="",Vf="",jt=document,Hs=window,Ao=jt.documentElement,be=jt.createElement.bind(jt),Do=be("div"),mi=be("table"),Vc=be("tbody"),Lo=be("tr"),{isArray:Bs,prototype:Ro}=Array,{concat:Kc,filter:gi,indexOf:Fo,map:zo,push:Gc,slice:Oo,some:yi,splice:qc}=Ro,Yc=/^#(?:[\w-]|\\.|[^\x00-\xa0])*$/,Qc=/^\.(?:[\w-]|\\.|[^\x00-\xa0])*$/,Zc=/<.+>/,Xc=/^\w+$/;function _i(n,t){const e=Jc(t);return!n||!e&&!ve(t)&&!nt(t)?[]:!e&&Qc.test(n)?t.getElementsByClassName(n.slice(1).replace(/\\/g,"")):!e&&Xc.test(n)?t.getElementsByTagName(n):t.querySelectorAll(n)}class js{constructor(t,e){if(!t)return;if(bi(t))return t;let s=t;if(dt(t)){const i=e||jt;if(s=Yc.test(t)&&ve(i)?i.getElementById(t.slice(1).replace(/\\/g,"")):Zc.test(t)?Vo(t):bi(i)?i.find(t):dt(i)?u(i).find(t):_i(t,i),!s)return}else if(we(t))return this.ready(t);(s.nodeType||s===Hs)&&(s=[s]),this.length=s.length;for(let i=0,r=this.length;i{for(;t.firstChild;)t.removeChild(t.firstChild)})};function Us(...n){const t=eh(n[0])?n.shift():!1,e=n.shift(),s=n.length;if(!e)return{};if(!s)return Us(t,u,e);for(let i=0;i{nt(r)&<(e,(o,a)=>{s?t?r.classList.add(a):r.classList.remove(a):r.classList.toggle(a)})})},N.addClass=function(n){return this.toggleClass(n,!0)},N.removeAttr=function(n){const t=Vs(n);return this.each((e,s)=>{nt(s)&<(t,(i,r)=>{s.removeAttribute(r)})})};function nh(n,t){if(n){if(dt(n)){if(arguments.length<2){if(!this[0]||!nt(this[0]))return;const e=this[0].getAttribute(n);return os(e)?void 0:e}return wt(t)?this:os(t)?this.removeAttr(n):this.each((e,s)=>{nt(s)&&s.setAttribute(n,t)})}for(const e in n)this.attr(e,n[e]);return this}}N.attr=nh,N.removeClass=function(n){return arguments.length?this.toggleClass(n,!1):this.attr("class","")},N.hasClass=function(n){return!!n&&yi.call(this,t=>nt(t)&&t.classList.contains(n))},N.get=function(n){return wt(n)?Oo.call(this):(n=Number(n),this[n<0?n+this.length:n])},N.eq=function(n){return u(this.get(n))},N.first=function(){return this.eq(0)},N.last=function(){return this.eq(-1)};function ih(n){return wt(n)?this.get().map(t=>nt(t)||th(t)?t.textContent:"").join(""):this.each((t,e)=>{nt(e)&&(e.textContent=n)})}N.text=ih;function Ut(n,t,e){if(!nt(n))return;const s=Hs.getComputedStyle(n,null);return e?s.getPropertyValue(t)||void 0:s[t]||n.style[t]}function zt(n,t){return parseInt(Ut(n,t),10)||0}function Ho(n,t){return zt(n,`border${t?"Left":"Top"}Width`)+zt(n,`padding${t?"Left":"Top"}`)+zt(n,`padding${t?"Right":"Bottom"}`)+zt(n,`border${t?"Right":"Bottom"}Width`)}const wi={};function rh(n){if(wi[n])return wi[n];const t=be(n);jt.body.insertBefore(t,null);const e=Ut(t,"display");return jt.body.removeChild(t),wi[n]=e!=="none"?e:"block"}function Bo(n){return Ut(n,"display")==="none"}function jo(n,t){const e=n&&(n.matches||n.webkitMatchesSelector||n.msMatchesSelector);return!!e&&!!t&&e.call(n,t)}function Ks(n){return dt(n)?(t,e)=>jo(e,n):we(n)?n:bi(n)?(t,e)=>n.is(e):n?(t,e)=>e===n:()=>!1}N.filter=function(n){const t=Ks(n);return u(gi.call(this,(e,s)=>t.call(e,s,e)))};function ee(n,t){return t?n.filter(t):n}N.detach=function(n){return ee(this,n).each((t,e)=>{e.parentNode&&e.parentNode.removeChild(e)}),this};const oh=/^\s*<(\w+)[^>]*>/,ah=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,Uo={"*":Do,tr:Vc,td:Lo,th:Lo,thead:mi,tbody:mi,tfoot:mi};function Vo(n){if(!dt(n))return[];if(ah.test(n))return[be(RegExp.$1)];const t=oh.test(n)&&RegExp.$1,e=Uo[t]||Uo["*"];return e.innerHTML=n,u(e.childNodes).detach().get()}u.parseHTML=Vo,N.has=function(n){const t=dt(n)?(e,s)=>_i(n,s).length:(e,s)=>s.contains(n);return this.filter(t)},N.not=function(n){const t=Ks(n);return this.filter((e,s)=>(!dt(n)||nt(s))&&!t.call(s,e,s))};function Vt(n,t,e,s){const i=[],r=we(t),o=s&&Ks(s);for(let a=0,l=n.length;at.selected&&!t.disabled&&!t.parentNode.disabled),"value"):n.value||""}function lh(n){return arguments.length?this.each((t,e)=>{const s=e.multiple&&e.options;if(s||na.test(e.type)){const i=Bs(n)?zo.call(n,String):os(n)?[]:[String(n)];s?lt(e.options,(r,o)=>{o.selected=i.indexOf(o.value)>=0},!0):e.checked=i.indexOf(e.value)>=0}else e.value=wt(n)||os(n)?"":n}):this[0]&&Ko(this[0])}N.val=lh,N.is=function(n){const t=Ks(n);return yi.call(this,(e,s)=>t.call(e,s,e))},u.guid=1;function Ot(n){return n.length>1?gi.call(n,(t,e,s)=>Fo.call(s,t)===e):n}u.unique=Ot,N.add=function(n,t){return u(Ot(this.get().concat(u(n,t).get())))},N.children=function(n){return ee(u(Ot(Vt(this,t=>t.children))),n)},N.parent=function(n){return ee(u(Ot(Vt(this,"parentNode"))),n)},N.index=function(n){const t=n?u(n)[0]:this[0],e=n?this:u(t).parent().children();return Fo.call(e,t)},N.closest=function(n){const t=this.filter(n);if(t.length)return t;const e=this.parent();return e.length?e.closest(n):t},N.siblings=function(n){return ee(u(Ot(Vt(this,t=>u(t).parent().children().not(t)))),n)},N.find=function(n){return u(Ot(Vt(this,t=>_i(n,t))))};const ch=/^\s*\s*$/g,hh=/^$|^module$|\/(java|ecma)script/i,dh=["type","src","nonce","noModule"];function uh(n,t){const e=u(n);e.filter("script").add(e.find("script")).each((s,i)=>{if(hh.test(i.type)&&Ao.contains(i)){const r=be("script");r.text=i.textContent.replace(ch,""),lt(dh,(o,a)=>{i[a]&&(r[a]=i[a])}),t.head.insertBefore(r,null),t.head.removeChild(r)}})}function fh(n,t,e,s,i){s?n.insertBefore(t,e?n.firstChild:null):n.nodeName==="HTML"?n.parentNode.replaceChild(t,n):n.parentNode.insertBefore(t,e?n:n.nextSibling),i&&uh(t,n.ownerDocument)}function se(n,t,e,s,i,r,o,a){return lt(n,(l,c)=>{lt(u(c),(h,d)=>{lt(u(t),(p,f)=>{const m=e?d:f,y=e?f:d,b=e?h:p;fh(m,b?y.cloneNode(!0):y,s,i,!b)},a)},o)},r),t}N.after=function(){return se(arguments,this,!1,!1,!1,!0,!0)},N.append=function(){return se(arguments,this,!1,!1,!0)};function ph(n){if(!arguments.length)return this[0]&&this[0].innerHTML;if(wt(n))return this;const t=/]/.test(n);return this.each((e,s)=>{nt(s)&&(t?u(s).empty().append(n):s.innerHTML=n)})}N.html=ph,N.appendTo=function(n){return se(arguments,this,!0,!1,!0)},N.wrapInner=function(n){return this.each((t,e)=>{const s=u(e),i=s.contents();i.length?i.wrapAll(n):s.append(n)})},N.before=function(){return se(arguments,this,!1,!0)},N.wrapAll=function(n){let t=u(n),e=t[0];for(;e.children.length;)e=e.firstElementChild;return this.first().before(t),this.appendTo(e)},N.wrap=function(n){return this.each((t,e)=>{const s=u(n)[0];u(e).wrapAll(t?s.cloneNode(!0):s)})},N.insertAfter=function(n){return se(arguments,this,!0,!1,!1,!1,!1,!0)},N.insertBefore=function(n){return se(arguments,this,!0,!0)},N.prepend=function(){return se(arguments,this,!1,!0,!0,!0,!0)},N.prependTo=function(n){return se(arguments,this,!0,!0,!0,!1,!1,!0)},N.contents=function(){return u(Ot(Vt(this,n=>n.tagName==="IFRAME"?[n.contentDocument]:n.tagName==="TEMPLATE"?n.content.childNodes:n.childNodes)))},N.next=function(n,t,e){return ee(u(Ot(Vt(this,"nextElementSibling",t,e))),n)},N.nextAll=function(n){return this.next(n,!0)},N.nextUntil=function(n,t){return this.next(t,!0,n)},N.parents=function(n,t){return ee(u(Ot(Vt(this,"parentElement",!0,t))),n)},N.parentsUntil=function(n,t){return this.parents(t,n)},N.prev=function(n,t,e){return ee(u(Ot(Vt(this,"previousElementSibling",t,e))),n)},N.prevAll=function(n){return this.prev(n,!0)},N.prevUntil=function(n,t){return this.prev(t,!0,n)},N.map=function(n){return u(Kc.apply([],zo.call(this,(t,e)=>n.call(t,e,t))))},N.clone=function(){return this.map((n,t)=>t.cloneNode(!0))},N.offsetParent=function(){return this.map((n,t)=>{let e=t.offsetParent;for(;e&&Ut(e,"position")==="static";)e=e.offsetParent;return e||Ao})},N.slice=function(n,t){return u(Oo.call(this,n,t))};const mh=/-([a-z])/g;function Ci(n){return n.replace(mh,(t,e)=>e.toUpperCase())}N.ready=function(n){const t=()=>setTimeout(n,0,u);return jt.readyState!=="loading"?t():jt.addEventListener("DOMContentLoaded",t),this},N.unwrap=function(){return this.parent().each((n,t)=>{if(t.tagName==="BODY")return;const e=u(t);e.replaceWith(e.children())}),this},N.offset=function(){const n=this[0];if(!n)return;const t=n.getBoundingClientRect();return{top:t.top+Hs.pageYOffset,left:t.left+Hs.pageXOffset}},N.position=function(){const n=this[0];if(!n)return;const t=Ut(n,"position")==="fixed",e=t?n.getBoundingClientRect():this.offset();if(!t){const s=n.ownerDocument;let i=n.offsetParent||s.documentElement;for(;(i===s.body||i===s.documentElement)&&Ut(i,"position")==="static";)i=i.parentNode;if(i!==n&&nt(i)){const r=u(i).offset();e.top-=r.top+zt(i,"borderTopWidth"),e.left-=r.left+zt(i,"borderLeftWidth")}}return{top:e.top-zt(n,"marginTop"),left:e.left-zt(n,"marginLeft")}};const Go={class:"className",contenteditable:"contentEditable",for:"htmlFor",readonly:"readOnly",maxlength:"maxLength",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",usemap:"useMap"};N.prop=function(n,t){if(n){if(dt(n))return n=Go[n]||n,arguments.length<2?this[0]&&this[0][n]:this.each((e,s)=>{s[n]=t});for(const e in n)this.prop(e,n[e]);return this}},N.removeProp=function(n){return this.each((t,e)=>{delete e[Go[n]||n]})};const gh=/^--/;function ki(n){return gh.test(n)}const xi={},{style:yh}=Do,_h=["webkit","moz","ms"];function bh(n,t=ki(n)){if(t)return n;if(!xi[n]){const e=Ci(n),s=`${e[0].toUpperCase()}${e.slice(1)}`,i=`${e} ${_h.join(`${s} `)}${s}`.split(" ");lt(i,(r,o)=>{if(o in yh)return xi[n]=o,!1})}return xi[n]}const vh={animationIterationCount:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0};function qo(n,t,e=ki(n)){return!e&&!vh[n]&&Wo(t)?`${t}px`:t}function wh(n,t){if(dt(n)){const e=ki(n);return n=bh(n,e),arguments.length<2?this[0]&&Ut(this[0],n,e):n?(t=qo(n,t,e),this.each((s,i)=>{nt(i)&&(e?i.style.setProperty(n,t):i.style[n]=t)})):this}for(const e in n)this.css(e,n[e]);return this}N.css=wh;function Yo(n,t){try{return n(t)}catch{return t}}const Ch=/^\s+|\s+$/;function Qo(n,t){const e=n.dataset[t]||n.dataset[Ci(t)];return Ch.test(e)?e:Yo(JSON.parse,e)}function kh(n,t,e){e=Yo(JSON.stringify,e),n.dataset[Ci(t)]=e}function xh(n,t){if(!n){if(!this[0])return;const e={};for(const s in this[0].dataset)e[s]=Qo(this[0],s);return e}if(dt(n))return arguments.length<2?this[0]&&Qo(this[0],n):wt(t)?this:this.each((e,s)=>{kh(s,n,t)});for(const e in n)this.data(e,n[e]);return this}N.data=xh;function Zo(n,t){const e=n.documentElement;return Math.max(n.body[`scroll${t}`],e[`scroll${t}`],n.body[`offset${t}`],e[`offset${t}`],e[`client${t}`])}lt([!0,!1],(n,t)=>{lt(["Width","Height"],(e,s)=>{const i=`${t?"outer":"inner"}${s}`;N[i]=function(r){if(this[0])return Ae(this[0])?t?this[0][`inner${s}`]:this[0].document.documentElement[`client${s}`]:ve(this[0])?Zo(this[0],s):this[0][`${t?"offset":"client"}${s}`]+(r&&t?zt(this[0],`margin${e?"Top":"Left"}`)+zt(this[0],`margin${e?"Bottom":"Right"}`):0)}})}),lt(["Width","Height"],(n,t)=>{const e=t.toLowerCase();N[e]=function(s){if(!this[0])return wt(s)?void 0:this;if(!arguments.length)return Ae(this[0])?this[0].document.documentElement[`client${t}`]:ve(this[0])?Zo(this[0],t):this[0].getBoundingClientRect()[e]-Ho(this[0],!n);const i=parseInt(s,10);return this.each((r,o)=>{if(!nt(o))return;const a=Ut(o,"boxSizing");o.style[e]=qo(e,i+(a==="border-box"?Ho(o,!n):0))})}});const Xo="___cd";N.toggle=function(n){return this.each((t,e)=>{if(!nt(e))return;const s=Bo(e);(wt(n)?s:n)?(e.style.display=e[Xo]||"",Bo(e)&&(e.style.display=rh(e.tagName))):s||(e[Xo]=Ut(e,"display"),e.style.display="none")})},N.hide=function(){return this.toggle(!1)},N.show=function(){return this.toggle(!0)};const Jo="___ce",$i=".",Si={focus:"focusin",blur:"focusout"},ta={mouseenter:"mouseover",mouseleave:"mouseout"},$h=/^(mouse|pointer|contextmenu|drag|drop|click|dblclick)/i;function Ti(n){return ta[n]||Si[n]||n}function Ni(n){const t=n.split($i);return[t[0],t.slice(1).sort()]}N.trigger=function(n,t){if(dt(n)){const[s,i]=Ni(n),r=Ti(s);if(!r)return this;const o=$h.test(r)?"MouseEvents":"HTMLEvents";n=jt.createEvent(o),n.initEvent(r,!0,!0),n.namespace=i.join($i),n.___ot=s}n.___td=t;const e=n.___ot in Si;return this.each((s,i)=>{e&&we(i[n.___ot])&&(i[`___i${n.type}`]=!0,i[n.___ot](),i[`___i${n.type}`]=!1),i.dispatchEvent(n)})};function ea(n){return n[Jo]=n[Jo]||{}}function Sh(n,t,e,s,i){const r=ea(n);r[t]=r[t]||[],r[t].push([e,s,i]),n.addEventListener(t,i)}function sa(n,t){return!t||!yi.call(t,e=>n.indexOf(e)<0)}function Gs(n,t,e,s,i){const r=ea(n);if(t)r[t]&&(r[t]=r[t].filter(([o,a,l])=>{if(i&&l.guid!==i.guid||!sa(o,e)||s&&s!==a)return!0;n.removeEventListener(t,l)}));else for(t in r)Gs(n,t,e,s,i)}N.off=function(n,t,e){if(wt(n))this.each((s,i)=>{!nt(i)&&!ve(i)&&!Ae(i)||Gs(i)});else if(dt(n))we(t)&&(e=t,t=""),lt(Vs(n),(s,i)=>{const[r,o]=Ni(i),a=Ti(r);this.each((l,c)=>{!nt(c)&&!ve(c)&&!Ae(c)||Gs(c,a,o,t,e)})});else for(const s in n)this.off(s,n[s]);return this},N.remove=function(n){return ee(this,n).detach().off(),this},N.replaceWith=function(n){return this.before(n).remove()},N.replaceAll=function(n){return u(n).replaceWith(this),this};function Th(n,t,e,s,i){if(!dt(n)){for(const r in n)this.on(r,t,e,n[r],i);return this}return dt(t)||(wt(t)||os(t)?t="":wt(e)?(e=t,t=""):(s=e,e=t,t="")),we(s)||(s=e,e=void 0),s?(lt(Vs(n),(r,o)=>{const[a,l]=Ni(o),c=Ti(a),h=a in ta,d=a in Si;c&&this.each((p,f)=>{if(!nt(f)&&!ve(f)&&!Ae(f))return;const m=function(y){if(y.target[`___i${y.type}`])return y.stopImmediatePropagation();if(y.namespace&&!sa(l,y.namespace.split($i))||!t&&(d&&(y.target!==f||y.___ot===c)||h&&y.relatedTarget&&f.contains(y.relatedTarget)))return;let b=f;if(t){let C=y.target;for(;!jo(C,t);)if(C===f||(C=C.parentNode,!C))return;b=C}Object.defineProperty(y,"currentTarget",{configurable:!0,get(){return b}}),Object.defineProperty(y,"delegateTarget",{configurable:!0,get(){return f}}),Object.defineProperty(y,"data",{configurable:!0,get(){return e}});const _=s.call(b,y,y.___td);i&&Gs(f,c,l,t,m),_===!1&&(y.preventDefault(),y.stopPropagation())};m.guid=s.guid=s.guid||u.guid++,Sh(f,c,l,t,m)})}),this):this}N.on=Th;function Nh(n,t,e,s){return this.on(n,t,e,s,!0)}N.one=Nh;const Mh=/\r?\n/g;function Eh(n,t){return`&${encodeURIComponent(n)}=${encodeURIComponent(t.replace(Mh,`\r -`))}`}const Ih=/file|reset|submit|button|image/i,na=/radio|checkbox/i;N.serialize=function(){let n="";return this.each((t,e)=>{lt(e.elements||[e],(s,i)=>{if(i.disabled||!i.name||i.tagName==="FIELDSET"||Ih.test(i.type)||na.test(i.type)&&!i.checked)return;const r=Ko(i);if(!wt(r)){const o=Bs(r)?r:[r];lt(o,(a,l)=>{n+=Eh(i.name,l)})}})}),n.slice(1)},window.$=u;function ia(n,t){if(n==null)return[n,void 0];typeof t=="string"&&(t=t.split("."));const e=t.join(".");let s=n;const i=[s];for(;typeof s=="object"&&s!==null&&t.length;){let r=t.shift(),o;const a=r.indexOf("[");if(a>0&&a{const i=e[s]??"";n=n.replace(new RegExp(`\\{${s}\\}`,"g"),`${i}`)}),n}for(let e=0;e(n[n.B=1]="B",n[n.KB=1024]="KB",n[n.MB=1048576]="MB",n[n.GB=1073741824]="GB",n[n.TB=1099511627776]="TB",n))(Mi||{});function pt(n,t=2,e){return Number.isNaN(n)?"?KB":(e||(n<1024?e="B":n<1048576?e="KB":n<1073741824?e="MB":n<1099511627776?e="GB":e="TB"),(n/Mi[e]).toFixed(t)+e)}const De=n=>{const t=/^[0-9]*(B|KB|MB|GB|TB)$/;n=n.toUpperCase();const e=n.match(t);if(!e)return 0;const s=e[1];return n=n.replace(s,""),Number.parseInt(n,10)*Mi[s]};let Ei=(document.documentElement.getAttribute("lang")||"zh_cn").toLowerCase().replace("-","_"),ne;function Ph(){return Ei}function Ah(n){Ei=n.toLowerCase()}function oa(n,t){ne||(ne={}),typeof n=="string"&&(n={[n]:t??{}}),u.extend(!0,ne,n)}function G(n,t,e,s,i,r){Array.isArray(n)?ne&&n.unshift(ne):n=ne?[ne,n]:[n],typeof e=="string"&&(r=i,i=s,s=e,e=void 0);const o=i||Ei;let a;for(const l of n){if(!l)continue;const c=l[o]||l.default;if(!c)continue;const h=r&&l===ne?`${r}.${t}`:t;if(a=ra(c,h),a!==void 0)break}return a===void 0?s:e?V(a,...Array.isArray(e)?e:[e]):a}function Dh(n,t,e,s){return G(void 0,n,t,e,s)}G.addLang=oa,G.getLang=Dh,G.getCode=Ph,G.setCode=Ah,oa({zh_cn:{confirm:"确定",save:"保存",cancel:"取消",delete:"删除",reset:"重置",add:"添加"},zh_tw:{confirm:"確定",save:"儲存",cancel:"取消",delete:"刪除",reset:"重置",add:"添加"},en:{confirm:"Confirm",save:"Save",cancel:"Cancel",delete:"Delete",reset:"Reset",add:"Add"}});function aa(n,t,e){n instanceof Headers?n.set(t,e):Array.isArray(n)?n.push([t,e]):n[t]=e}function as(n,t,e){e!=null&&(Array.isArray(e)?e.forEach(s=>as(n,t,s)):n.append(t,e instanceof Blob?e:String(e)))}function Lh(n,t){if(n){const e={text:"text/plain",html:"text/html",json:"application/json",...t};for(const[s,i]of Object.entries(e))if(i.split(",").map(r=>r.trim()).includes(n))return s}return"text"}function qs(n,t){const e=t||new FormData;return n&&(typeof n=="string"&&(n=new URLSearchParams(n)),n instanceof URLSearchParams?n.forEach((s,i)=>{as(e,i,s)}):Array.isArray(n)?n.forEach(([s,i])=>{as(e,s,i)}):n instanceof FormData?n.forEach((s,i)=>{as(e,i,s)}):u.isPlainObject(n)&&Object.entries(n).forEach(([s,i])=>{as(e,s,i)})),e}class Ys{get completed(){return this.data!==void 0||this.error!==void 0}get[Symbol.toStringTag](){return"Ajax"}constructor(t){this.setting=t,this._controller=new AbortController,this._callbacks={success:[],error:[],complete:[]}}on(t,e){return this._callbacks[t].push(e),this}success(t){return this.on("success",t)}done(t){return this.success(t)}fail(t){return this.on("error",t)}complete(t){return this.on("complete",t)}always(t){return this.complete(t)}then(t,e){return this.completed?e&&this.error?e(this.error):t(this.data):(this.success(s=>t(s)),e&&this.fail(e)),this}catch(t){return this.error?(t(this.error),this):this.on("error",e=>t(e))}finally(t){return this.completed?(t(),this):this.complete(()=>t())}abort(t){return this.completed?!1:(this._abortError=t,this._controller.abort(),!0)}getResponseHeader(t){var e;return(e=this.response)==null?void 0:e.headers.get(t)}_init(){if(this.completed)return;const{url:t,type:e,data:s,processData:i=!0,contentType:r,crossDomain:o,accepts:a,dataType:l,timeout:c,dataFilter:h,beforeSend:d,success:p,error:f,complete:m,...y}=this.setting;if((d==null?void 0:d(y))===!1)return;e&&(y.method=e);let b=s;b&&(i&&(b=qs(b)),y.body=b),o&&(y.mode="cors");const _=y.headers||{};aa(_,"X-Requested-With","XMLHttpRequest"),r&&aa(_,"Content-Type",r),y.headers=_,y.signal&&y.signal.addEventListener("abort",()=>{this.abort()}),p&&this.success(p),f&&this.fail(f),m&&this.complete(m),y.signal=this._controller.signal,this.url=t,this.request=y}_emit(t,...e){this._callbacks[t].forEach(s=>{s.call(this,...e)})}async send(){var h;if(this.completed)return[];this._init();const{timeout:t,dataType:e,accepts:s,dataFilter:i,throws:r,jsonParser:o}=this.setting;t&&(this._timeoutID=window.setTimeout(()=>{this.abort(new Error("timeout"))},t));let a,l,c;try{a=await fetch(this.url,this.request),this.response=a;const{statusText:d}=a;if(a.ok){const p=(h=a.headers.get("Content-Disposition"))==null?void 0:h.startsWith("attachment"),f=p?"blob":e||Lh(a.headers.get("Content-Type"),s);p||f==="blob"||f==="file"?c=await a.blob():f==="json"?typeof o=="function"?(c=await a.text(),c=o(c)):c=await a.json():c=await a.text(),this.data=c;const m=(i==null?void 0:i(c,f))??c;this._emit("success",m,d,a)}else throw new Error(d)}catch(d){l=d;let p=!1;l.name==="AbortError"&&(this._abortError?l=this._abortError:p=!0),this.error=l,p||this._emit("error",l,a==null?void 0:a.statusText,l.message)}if(this._timeoutID&&clearTimeout(this._timeoutID),this._emit("complete",a,a==null?void 0:a.statusText),l&&r)throw l;return[c,l,a]}}u.ajax=(n,t)=>{t=t||{},typeof n=="string"?t.url=n:u.extend(t,n);const e=new Ys(t);return e.send(),e},u.getJSON=(n,t,e)=>(typeof t=="function"&&(e=t,t=void 0),u.ajax({url:n,data:t,success:e,dataType:"json"})),u.get=(n,t,e,s,i="GET")=>{let r,o;return typeof t=="function"?(r=t,o=void 0):o=t,typeof e=="function"?(r=e,s=void 0):s=e,u.ajax({method:i,url:n,data:o,success:r,dataType:s})},u.post=(n,t,e,s)=>u.get(n,t,e,s,"POST"),u.fn.load=function(n,t,e){typeof t=="function"&&(e=t,t=void 0);const[s,i]=n.split(" ");return u.get(s,t,(r,o,a)=>{i&&(r=u(r).find(i).html()),u(this).html(r),e==null||e.call(this,r,o,a)},"html"),this};async function Ce(n,t=[],e){const s={throws:!0,dataType:"json"};if(typeof n=="string")s.url=n;else if(typeof n=="object")u.extend(s,n);else if(typeof n=="function"){const o=n(...t);return o instanceof Promise?await o:o}e&&u.extend(s,typeof e=="function"?e(s):e);const i=new Ys(s),[r]=await i.send();return r}function Ii(n){return!!(n&&(typeof n=="string"||typeof n=="object"&&n.url||typeof n=="function"))}u.fetch=Ce;function mt(){return u.guid++}function Qs(n,t){if(n===t)return!1;if(n&&t&&typeof n=="object"&&typeof t=="object"){const e=Array.isArray(n),s=Array.isArray(t);if(e!==s)return!0;if(e&&s){if(n.length!==t.length)return!0;for(let o=0;oQs(s instanceof ke?s.value:s,e[i])))&&(this._value=this._compute(),this._lastDependencies=t.map(s=>s instanceof ke?s.cache:s)),this._value}}function Pi(...n){const t=[],e=new Map,s=(i,r)=>{if(Array.isArray(i)&&(r=i[1],i=i[0]),!i.length)return;const o=e.get(i);typeof o=="number"?t[o][1]=!!r:(e.set(i,t.length),t.push([i,!!r]))};return n.forEach(i=>{typeof i=="function"&&(i=i()),Array.isArray(i)?Pi(...i).forEach(s):i&&typeof i=="object"?Object.entries(i).forEach(s):typeof i=="string"&&i.split(" ").forEach(r=>s(r,!0))}),t.sort((i,r)=>(e.get(i[0])||0)-(e.get(r[0])||0))}const $=(...n)=>Pi(...n).reduce((t,[e,s])=>(s&&t.push(e),t),[]).join(" ");u.classes=$,u.fn.setClass=function(n,...t){return this.each((e,s)=>{const i=u(s);n===!0?i.attr("class",$(i.attr("class"),...t)):i.addClass($(n,...t))})};const ls=new WeakMap;function Ai(n,t,e){const s=ls.has(n),i=s?ls.get(n):{};typeof t=="string"?i[t]=e:t===null?Object.keys(i).forEach(r=>{delete i[r]}):Object.assign(i,t),Object.keys(i).forEach(r=>{i[r]===void 0&&delete i[r]}),Object.keys(i).length?(!s&&n instanceof Element&&Object.assign(i,u(n).dataset(),i),ls.set(n,i)):ls.delete(n)}function Di(n,t,e){let s=ls.get(n)||{};return!e&&n instanceof Element&&(s=Object.assign({},u(n).dataset(),s)),t===void 0?s:s[t]}u.fn.dataset=u.fn.data,u.fn.data=function(...n){const[t,e]=n;return!n.length||n.length===1&&typeof t=="string"?this.length?Di(this[0],t):void 0:this.each((s,i)=>Ai(i,t,e))},u.fn.removeData=function(n=null){return this.each((t,e)=>Ai(e,n))};function Zs(n,t="z-"){const e=u(n)[0];if(e)return Array.from(e.attributes).reduce((s,i)=>{let{name:r,value:o}=i;if(r.startsWith(t)){r=r.slice(t.length).replace(/-([a-z])/g,a=>a[1].toUpperCase());try{o.startsWith("RAWJS<")&&o.endsWith(">RAWJS")?o=new Function(`return ${o.substring(6,o.length-6)}`)():o=JSON.parse(o)}catch{}s[r]=o}return s},{})}function Li(n,t,e="z-"){const s=u(n);Object.keys(t).forEach(i=>{let r=t[i];typeof r=="function"&&(r=`RAWJS<${r}>RAWJS`),typeof r!="string"&&(r=JSON.stringify(r)),i=i.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`),s.attr(`${e}${i}`,r)})}function Rh(...n){var e;const t=n.length;if(!t)return Zs(this);if(t===1){const[s]=n;return typeof s=="string"?(e=Zs(this))==null?void 0:e[s]:(u.isPlainObject(s)&&Li(this,s),this)}return Li(this,{[n[0]]:n[1]}),this}u.fn.z=Rh,u.fn._attr=u.fn.attr,u.fn.extend({attr(...n){const[t,e]=n;return!n.length||n.length===1&&typeof t=="string"?this._attr.apply(this,n):typeof t=="object"?(t&&Object.keys(t).forEach(s=>{const i=t[s];i===null?this.removeAttr(s):this._attr(s,i)}),this):e===null?this.removeAttr(t):this._attr(t,e)}}),u.Event=(n,t)=>{const[e,...s]=n.split("."),i=new Event(e,{bubbles:!0,cancelable:!0});return i.namespace=s.join("."),i.___ot=e,i.___td=t,i};const cs=(n,t)=>new Promise(e=>{const s=window.setTimeout(e,n);t&&t(s)}),la={};u.share=la;var Xs,q,ca;w.isValidElement=void 0;var xe,ha,da,Ri,hs={},ua=[],Fh=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Js=Array.isArray;function ie(n,t){for(var e in t)n[e]=t[e];return n}function fa(n){var t=n.parentNode;t&&t.removeChild(n)}function v(n,t,e){var s,i,r,o={};for(r in t)r=="key"?s=t[r]:r=="ref"?i=t[r]:o[r]=t[r];if(arguments.length>2&&(o.children=arguments.length>3?Xs.call(arguments,2):e),typeof n=="function"&&n.defaultProps!=null)for(r in n.defaultProps)o[r]===void 0&&(o[r]=n.defaultProps[r]);return tn(n,o,s,i,null)}function tn(n,t,e,s,i){var r={type:n,props:t,key:e,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:i??++ca,__i:-1,__u:0};return i==null&&q.vnode!=null&&q.vnode(r),r}function H(){return{current:null}}function re(n){return n.children}function B(n,t){this.props=n,this.context=t}function Le(n,t){if(t==null)return n.__?Le(n.__,n.__i+1):null;for(var e;tt&&xe.sort(Ri));en.__r=0}function ga(n,t,e,s,i,r,o,a,l,c,h){var d,p,f,m,y,b=s&&s.__k||ua,_=t.length;for(e.__d=l,zh(e,t,b),l=e.__d,d=0;d<_;d++)(f=e.__k[d])!=null&&typeof f!="boolean"&&typeof f!="function"&&(p=f.__i===-1?hs:b[f.__i]||hs,f.__i=d,Fi(n,f,p,i,r,o,a,l,c,h),m=f.__e,f.ref&&p.ref!=f.ref&&(p.ref&&zi(p.ref,null,f),h.push(f.ref,f.__c||m,f)),y==null&&m!=null&&(y=m),65536&f.__u||p.__k===f.__k?l=ya(f,l,n):typeof f.type=="function"&&f.__d!==void 0?l=f.__d:m&&(l=m.nextSibling),f.__d=void 0,f.__u&=-196609);e.__d=l,e.__e=y}function zh(n,t,e){var s,i,r,o,a,l=t.length,c=e.length,h=c,d=0;for(n.__k=[],s=0;s0?tn(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)!=null?(i.__=n,i.__b=n.__b+1,a=Oh(i,e,o=s+d,h),i.__i=a,r=null,a!==-1&&(h--,(r=e[a])&&(r.__u|=131072)),r==null||r.__v===null?(a==-1&&d--,typeof i.type!="function"&&(i.__u|=65536)):a!==o&&(a===o+1?d++:a>o?h>l-o?d+=a-o:d--:d=a(l!=null&&!(131072&l.__u)?1:0))for(;o>=0||a=0){if((l=t[o])&&!(131072&l.__u)&&i==l.key&&r===l.type)return o;o--}if(a{!e||typeof e!="object"||Object.keys(e).forEach(s=>{let i=e[s];const r=n[s];i!==r&&(r!==void 0&&(s==="className"||s.endsWith("Class")?i=[r,i]:s==="children"?i=[...sn(r),...sn(i)]:typeof r=="object"&&(s==="style"||s.endsWith("Style")||s==="attrs"||s.endsWith("Attrs")||s==="props")&&(i=u.extend(r,i))),n[s]=i)})}),n}function Wi(n){return Object.keys(n).forEach(t=>{n[t]===void 0&&delete n[t]}),n}const Fe=new Map;function ds(n){const{zui:t}=window;return(!Fe.size||n&&!Fe.has(n.toUpperCase()))&&Object.keys(t).forEach(e=>{const s=t[e];!s.NAME||!s.ZUI||Fe.set(e.toLowerCase(),s)}),n?Fe.get(n.toLowerCase()):void 0}function Ca(n,t,e){const s=ds(n);return s?!s.MULTI_INSTANCE&&s.get(t)?(console.error(`[ZUI] cannot create component "${n}" on element which already has a component instance.`,{element:t,options:e}),null):new s(t,e):null}function Bh(n){if(n){const t=ds(n);t&&t.defineFn()}else ds(),Fe.forEach(t=>{t.defineFn()})}u.fn.zuiInit=function(){return this.find("[zui-create],[data-zui]").each(function(){const n=u(this);let t=Zs(n,"data-");const[e,s]=(t.zui||n.attr("zui-create")).split(":");n.zui(e)||(s?t=u.share[s]:delete t.zui,requestAnimationFrame(()=>Ca(e,this,t)))}),this.find("[zui-init]").each(function(){const n=u(this);n.z("zuiInited")||u.runJS(n.z("zuiInited",!0).attr("zui-init"),["$element",n])}),this.find(".hide-before-init").removeClass("invisible hidden opacity-0"),this.find(".scroll-into-view").scrollIntoView(),this.find('[data-on="inited"]').each((n,t)=>{const e=u(t);e.zui()||e.trigger("inited")}),this},u.fn.zui=function(n,t){const e=this[0];if(!e)return;if(typeof n!="string"){const i=Di(e,void 0,!0),r={};let o;return Object.keys(i).forEach(a=>{if(a.startsWith("zui.")){const l=i[a];r[a]=l,(!o||o.gid{u("body").zuiInit()});function ka(n,t=!0){const e=u(n),s=e[0],i="zui-disable-scroll";if(t){if(e.data(i))return;if((e.css("scrollbar-gutter")||"").includes("stable")){e.data(i,{overflow:e.css("overflow")}).css("overflow","hidden");return}const r=s===document.body||e.is("html")?window.innerWidth-document.body.clientWidth:s.offsetWidth-s.clientWidth;if(!r)return;const o=e.css("paddingRight")||"0";e.data(i,{paddingRight:o,overflow:e.css("overflow")}).css({paddingRight:`${r+Number.parseInt(o,10)}px`,overflow:"hidden"})}else{const r=e.data(i);if(!r)return;e.css(r).removeData(i)}}u.fn.disableScroll=function(n=!0){return this.each((t,e)=>{ka(e,n)})},u.fn.enableScroll=function(n=!0){return this.disableScroll(!n)};function jh(n){const t=u(this),e=t.dataset();if(!(e.on||"click").split(" ").includes(n.type))return;const s=e.selector?u(n.target).closest(e.selector):t;if(!s.length)return;const i=l=>l===""?!0:l,r=l=>{if(typeof l=="string")try{l=JSON.parse(l)}catch{}return l};if(i(e.once)){if(e.onceCalled)return;t.dataset("once-called",!0)}if(i(e.prevent)&&n.preventDefault(),i(e.stop)&&n.stopPropagation(),i(e.self)&&n.currentTarget!==n.target)return;const o=[["$element",t],["event",n],["options",e],["$target",s]];if(e.if&&!u.runJS(e.if,...o))return;const a=e.call;if(a){let l=window[a];const c=/^[$A-Z_][0-9A-Z_$.]*$/i.test(a);if(l||(l=u.runJS(a,...o)),!c||!u.isFunction(l))return;const h=[],d=e.params;e.params=h,typeof d=="string"&&d.length&&(d[0]==="["?h.push(...r(d)):h.push(...d.split(", ").map(p=>(p=p.trim(),p==="$element"?t:p==="event"?n:p==="options"?e:p.startsWith("$element.")||p.startsWith("$event.")||p.startsWith("$options.")?u.runJS(p,...o):r(p))))),l(...h)}e.do&&u.runJS(e.do,...o)}u(document).on("click.zui.global change.zui.global inited.zui.global","[data-on]",jh);function ze(n){if(typeof n=="function")return ze(n());if(typeof n=="number")return[n];let t=n.match(/(\d+)(%|px)?/);return t?[parseInt(t[1]),t[2]]:(t=n.match(/(\d+)\/(\d+)/),t?[100*parseInt(t[1])/parseInt(t[2]),"%"]:[NaN])}function it(n){if(n==null)return null;const[t,e="px"]=ze(n);return Number.isNaN(t)?typeof n=="string"?n:null:`${t}${e}`}async function rn(n,t){var s,i,r;if(n instanceof Blob){const o=document.createElement("a");return o.href=window.URL.createObjectURL(n),t&&(o.download=decodeURIComponent(t)),o.click(),o.remove(),n}if(n instanceof Response){const o=await n.blob();return t=t||((r=(i=(s=n.headers.get("Content-Disposition"))==null?void 0:s.split(";")[1])==null?void 0:i.split("=")[1])==null?void 0:r.replace(/"/g,"")),rn(o,t)}const e=await fetch(n);return rn(e)}class xa{constructor(t){this._$target=u(t)}on(...t){return this._$target.on(...t),this}one(...t){return this._$target.one(...t),this}off(...t){return this._$target.off(...t),this}trigger(...t){return this._$target.trigger(...t),this}}const Wt=new xa(document);u.bus=Wt,u.on=Wt.on.bind(Wt),u.one=Wt.one.bind(Wt),u.off=Wt.off.bind(Wt),u.trigger=Wt.trigger.bind(Wt);var Uh=["Shift","Meta","Alt","Control"],$a=typeof navigator=="object"?navigator.platform:"",Sa=/Mac|iPod|iPhone|iPad/.test($a),Vh=Sa?"Meta":"Control",Kh=$a==="Win32"?["Control","Alt"]:Sa?["Alt"]:[];function Hi(n,t){return typeof n.getModifierState=="function"&&(n.getModifierState(t)||Kh.includes(t)&&n.getModifierState("AltGraph"))}function Gh(n){return n.trim().split(" ").map(function(t){var e=t.split(/\b\+/),s=e.pop();return[e=e.map(function(i){return i==="$mod"?Vh:i}),s]})}function Ta(n,t){var e;t===void 0&&(t={});var s=(e=t.timeout)!=null?e:1e3,i=Object.keys(n).map(function(a){return[Gh(a),n[a]]}),r=new Map,o=null;return function(a){a instanceof KeyboardEvent&&(i.forEach(function(l){var c=l[0],h=l[1],d=r.get(c)||c;(function(p,f){return!(f[1].toUpperCase()!==p.key.toUpperCase()&&f[1]!==p.code||f[0].find(function(m){return!Hi(p,m)})||Uh.find(function(m){return!f[0].includes(m)&&f[1]!==m&&Hi(p,m)}))})(a,d[0])?d.length>1?r.set(c,d.slice(1)):(r.delete(c),h(a)):Hi(a,a.key)||r.delete(c)}),o&&clearTimeout(o),o=setTimeout(r.clear.bind(r),s))}}function qh(n,t,e){var s;e===void 0&&(e={});var i=(s=e.event)!=null?s:"keydown",r=Ta(t,e);return n.addEventListener(i,r),function(){n.removeEventListener(i,r)}}function Bi(n,t={}){if(!n)return;const e=Object.keys(t).reduce((s,i)=>(t[i].optional||(s[i]={...t[i]}),s),{});return Object.keys(n).forEach(s=>{const i=n[s];i?i===!0?t[s]&&(e[s]={...t[s]}):e[s]=i:delete e[s]}),Object.keys(e).reduce((s,i)=>{const{keys:r,handler:o}=e[i];return typeof r=="string"?s[r]=o:r.forEach(a=>{s[a]=o}),s},{})}function ji(n,t,e){const{timeout:s,event:i="keydown",scope:r,when:o}=e||{},a=Ta(t,{timeout:s});return u(n).on(`${i}.zui.hotkeys${r?`.${r}`:""}`,function(l){o&&o(l)===!1||a(l)})}function Ui(n,t){return u(n).off(`.zui.hotkeys${t?`.${t}`:""}`)}const Yh=qh;u.fn.hotkeys=function(n,t){return ji(this,n,t)},u.fn.unbindHotkeys=function(n){return Ui(this,n)},u.hotkeys=function(n,t){ji(window,n,t)},u.unbindHotkeys=function(n){Ui(window,n)};function on(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement}async function Na(n){(typeof n=="string"||n instanceof Element||n instanceof u)&&(n={target:n});const{target:t,onError:e,onSuccess:s,afterExit:i,afterEnter:r}=n,o=u(t),a=o[0];if(!a)return;const l=a.requestFullscreen||a.webkitRequestFullscreen||a.mozRequestFullScreen;if(!l){e==null||e.call(a,new Error("[ZUI] The browser does not support full screen feature."));return}try{await l.call(a),s==null||s.call(a),u(a).off(".zui.fullscreen"),i&&o.on("exitFullscreen.zui.fullscreen",i),r&&o.on("enterFullscreen.zui.fullscreen",r)}catch(c){e==null||e.call(a,c)}document.zuiBindFullscreenChange||(document.zuiBindFullscreenChange=!0,u(document).on("fullscreenchange.zui webkitfullscreenchange.zui mozfullscreenchange.zui",c=>{const h=on();let d=h;h?u(h).addClass("is-in-fullscreen"):(d=u(document).find(".is-in-fullscreen")[0]||document,u(d).removeClass("is-in-fullscreen")),u("body").toggleClass("has-in-fullscreen",!!h);const p={event:c,target:d,fullscreenElement:h};u(d).trigger(h?"enterFullscreen":"exitFullscreen",p).trigger("toggleFullscreen",p)}))}async function Vi(n){const t=on();return n===!1&&!!t===n?n:t?(document.exitFullscreen(),!1):(await Na(n),!0)}u.fn.fullscreen=function(n){return Vi({target:this,...n})},u.getFullscreenElement=on,u.toggleFullscreen=Vi;function Oe(n){return n.parentNode===document?!1:n.parentNode?Oe(n.parentNode):!0}u.isDetached=Oe,u.fn.isDetached=function(){const n=this[0];return!n||Oe(n)};class X{constructor(t,e){this._inited=!1,this._autoDestory=0;const{KEY:s,DATA_KEY:i,DEFAULT:r,MULTI_INSTANCE:o,NAME:a}=this.constructor;if(!a)throw new Error('[ZUI] The component must have a "NAME" static property.');const l=u(t);if(l.data(s)&&!o)throw new Error("[ZUI] The component has been initialized on element.");const c=l[0],h=mt();this._gid=h,this._element=c;const d=l.parent();if(d.length&&(this._mobs=new MutationObserver(p=>{p.forEach(f=>{f.removedNodes.forEach(m=>{m===c&&(this._autoDestory&&clearTimeout(this._autoDestory),this._autoDestory=window.setTimeout(()=>{this._autoDestory=0,Oe(c)&&this.destroy()},100))})})}),this._mobs.observe(d[0],{childList:!0,subtree:!1})),this._options={...r,...l.dataset()},this.setOptions(e),this._key=this.options.key??`__${h}`,l.data(s,this).attr(i,`${h}`),o){const p=`${s}:ALL`;let f=l.data(p);f||(f=new Map,l.data(p,f)),f.set(this._key,this)}this.init(),requestAnimationFrame(async()=>{this._inited=!0,await this.afterInit(),this.emit("inited",this.options)})}static get ZUI(){return this.NAME.replace(/(^[A-Z]+)/,t=>t.toLowerCase())}static get KEY(){return`zui.${this.NAME}`}static get NAMESPACE(){return`.zui.${this.ZUI}`}static get DATA_KEY(){return`data-zui-${this.NAME}`}static get SELECTOR(){return`[${this.DATA_KEY}]`}get inited(){return this._inited}get element(){return this._element}get key(){return this._key}get options(){return this._options}get gid(){return this._gid}get $element(){return u(this.element)}get $emitter(){return this.$element}get i18nData(){return[this.options.i18n,this.constructor.i18n]}init(){}afterInit(){}render(t){this.setOptions(t)}destroy(){var r;const{KEY:t,DATA_KEY:e,MULTI_INSTANCE:s}=this.constructor,{$element:i}=this;if(this.emit("destroyed"),(r=this._mobs)==null||r.disconnect(),i.off(this.namespace).removeData(t).attr(e,null),s){const o=this.$element.data(`${t}:ALL`);if(o)if(o.delete(this._key),o.size===0)this.$element.removeData(`${t}:ALL`);else{const a=o.values().next().value;i.data(t,a).attr(e,a.gid)}}}setOptions(t){return t&&u.extend(this._options,t),this._options}emit(t,...e){const s=u.Event(t);return s.__src=this,this.$emitter.trigger(s,[this,...e]),s}on(t,e,s){const i=this;this.$element[s!=null&&s.once?"one":"on"](this._wrapEvent(t),function(r,o){(!r.__src||r.__src===i)&&e.call(this,r,o)})}one(t,e){this.on(t,e,{once:!0})}off(t){this.$element.off(this._wrapEvent(t))}i18n(t,e,s){const{i18nData:i}=this;return G(i,t,e,s,this.options.lang,this.constructor.NAME)??G(i,t,e,s,this.options.lang)??`{i18n:${t}}`}get namespace(){return`${this.constructor.NAMESPACE}.${this._key}`}_wrapEvent(t){return t.split(" ").map(e=>e.includes(".")?e:`${e}${this.namespace}`).join(" ")}static get(t,e){const s=u(t);if(this.MULTI_INSTANCE&&e!==void 0){const i=s.data(`${this.KEY}:ALL`);return i?i.get(e):void 0}return s.data(this.KEY)}static ensure(t,e){const s=this.get(t,e==null?void 0:e.key);return s?(e&&s.setOptions(e),s):new this(t,e)}static getAll(t){const{MULTI_INSTANCE:e,SELECTOR:s}=this,i=[];return u(t||document).find(s).each((r,o)=>{if(e){const l=u(o).data(`${this.KEY}:ALL`);if(l){i.push(...l.values());return}}const a=u(o).data(this.KEY);a&&i.push(a)}),i.sort((r,o)=>r.gid-o.gid)}static query(t,e,s){if(t===void 0){let i=this.getAll();return s&&(i=i.filter(s)),i.pop()}return this.get(u(t).closest(this.SELECTOR),e)}static defineFn(t){let e=t||this.ZUI;u.fn[e]&&(e=`zui${this.NAME}`);const s=this;u.fn.extend({[e](i,...r){const o=typeof i=="object"?i:void 0,a=typeof i=="string"?i:void 0;let l;return this.each((c,h)=>{let d=s.get(h);if(d?o&&d.render(o):d=new s(h,o),a){let p=d[a],f=d;p===void 0&&(f=d.$,p=f[a]),typeof p=="function"?l=p.call(f,...r):l=p}}),l!==void 0?l:this}})}}X.DEFAULT={},X.MULTI_INSTANCE=!1;class Ma extends X{init(){const{offset:t=1,side:e,zIndex:s,pinnedClass:i="is-pinned"}=this.options,{$element:r}=this;r.css({position:"sticky",zIndex:s}),e&&r.css(e,-t),this._ob=new IntersectionObserver(([o])=>o.target.classList.toggle(i,o.intersectionRatio=l&&r>=c&&i+o<=h&&r+a<=d;const p=i<=h&&i+o>=l;return r<=d&&r+a>=c&&p}u.fn.isVisible=function(n){return Ki(this,n)};function Gi(n,t,e=!1){const s=u(n);if(t!==void 0){if(t.length){const i=`zui-runjs-${mt()}`;s.append(`
task->date?>