:root {
    --bg:#f3f6f5;
    --paper:#fff;
    --ink:#183633;
    --muted:#71847e;
    --line:#dfe8e4;
    --teal:#087c6c;
    --teal-soft:#e8f5ef;
    --amber:#a26721;
    --amber-soft:#fff4e0;
    --red:#b64646;
    --sidebar:#153a38;
    --radius:18px;
    --shadow:0 9px 24px rgba(18,53,43,.035);
    font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    font-size:14px;
    color:var(--ink);
    font-synthesis:none
}

* {
    box-sizing:border-box
}
body {
    margin:0;
    background:var(--bg)
}
button,input,select,textarea {
    font:inherit
}
button,a,input,select,textarea {
    outline-offset:3px
}
button {
    cursor:pointer
}
button:disabled {
    cursor:not-allowed;
    opacity:.45
}
a {
    color:inherit;
    text-decoration:none
}
h1,h2,h3,p {
    margin:0
}
svg {
    width:20px;
    height:20px;
    flex-shrink:0;
    vertical-align:middle
}
button {
    border:0;
    background:none;
    color:inherit
}
input,select,textarea {
    width:100%;
    border:1px solid var(--line);
    border-radius:10px;
    background:white;
    padding:11px 12px;
    min-height:43px;
    color:var(--ink)
}
textarea {
    min-height:104px;
    resize:vertical
}
input:focus,select:focus,textarea:focus {
    border-color:var(--teal);
    outline:2px solid #d8eee6
}
input[type=checkbox] {
    width:18px;
    height:18px;
    min-height:0;
    accent-color:var(--teal);
    vertical-align:middle;
    margin:0 7px 0 0
}
label {
    display:block;
    font-size:12px;
    font-weight:600;
    margin-bottom:7px;
    color:#536c62
}
label.check {
    display:flex;
    align-items:center;
    line-height:1.4;
    font-weight:500;
    margin:8px 0;
    color:var(--ink)
}
small,.muted {
    color:var(--muted);
    line-height:1.55
}
code {
    font-size:12px;
    overflow-wrap:anywhere
}
button:focus-visible,a:focus-visible {
    outline:3px solid #e6b34d
}
b {
    font-weight:650
}
.loading {
    padding:70px;
    text-align:center;
    color:var(--muted)
}
.row {
    display:flex;
    align-items:center;
    gap:12px
}
.between {
    justify-content:space-between
}
.wrap {
    flex-wrap:wrap
}
.gap {
    gap:20px
}
.grow {
    flex:1
}
.stack {
    display:grid;
    gap:18px
}
.hidden {
    display:none!important
}
.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:11px 17px;
    min-height:43px;
    border-radius:10px;
    font-size:12px;
    font-weight:650;
    white-space:nowrap;
    background:white;
    border:1px solid var(--line)
}
.btn.primary {
    background:var(--teal);
    border-color:var(--teal);
    color:white;
    box-shadow:0 5px 12px #087c6c15
}
.btn.ghost {
    border-color:transparent;
    background:transparent;
    color:var(--muted)
}
.btn.danger {
    color:var(--red)
}
.btn.small {
    min-height:33px;
    padding:7px 11px;
    font-size:11px
}
.icon-btn {
    display:grid;
    place-items:center;
    padding:9px;
    border-radius:10px;
    border:1px solid var(--line);
    background:#fff
}
.eyebrow {
    text-transform:uppercase;
    letter-spacing:2.5px;
    font-weight:650;
    font-size:10px;
    color:var(--teal)
}
.pill {
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:5px 9px;
    border-radius:6px;
    font-size:10px;
    font-weight:600;
    line-height:1.1;
    white-space:nowrap;
    background:#edf1ef;
    color:#75867e
}
.pill.ok {
    background:var(--teal-soft);
    color:var(--teal)
}
.pill.warn {
    background:var(--amber-soft);
    color:var(--amber)
}
.pill.bad {
    background:#fceeee;
    color:var(--red)
}
.dot {
    width:6px;
    height:6px;
    border-radius:50%;
    background:currentColor;
    display:inline-block
}
.callout {
    padding:14px 16px;
    border:1px solid #e0e9e4;
    background:#f9fbfa;
    border-radius:12px;
    font-size:12px;
    line-height:1.65;
    color:#648074
}
.callout.warn {
    background:#fff8e9;
    border-color:#efe3c8;
    color:#906b2c
}
.error {
    padding:12px;
    border-radius:10px;
    color:var(--red);
    background:#fff0f0;
    line-height:1.6
}
.empty {
    padding:35px 24px;
    text-align:center;
    border:1px dashed #d6e3db;
    border-radius:14px;
    color:var(--muted);
    line-height:1.7
}
.empty svg {
    width:30px;
    height:30px;
    margin:8px
}
.empty b {
    color:var(--ink)
}
.field {
    margin-bottom:17px
}
.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 18px
}
.wide {
    grid-column:1/-1
}
.divider {
    border:0;
    border-top:1px solid var(--line);
    margin:18px 0
}
.badge-icon {
    display:grid;
    place-items:center;
    width:41px;
    height:41px;
    border-radius:12px;
    background:var(--teal-soft);
    color:var(--teal)
}

.sidebar {
    position:fixed;
    inset:0 auto 0 0;
    width:238px;
    padding:34px 20px 20px;
    background:var(--sidebar);
    color:#c4d9d1;
    z-index:30;
    display:flex;
    flex-direction:column
}
.brand {
    display:flex;
    align-items:center;
    gap:12px
}
.brand-mark {
    width:41px;
    height:41px;
    border:2px solid #80b8a4;
    border-radius:12px;
    display:grid;
    place-items:center;
    font-weight:700;
    color:#b9ddcb;
    font-size:25px;
    transform:rotate(-3deg)
}
.brand-name {
    letter-spacing:4px;
    color:#fff;
    font-size:24px;
    line-height:1.1;
    font-weight:750
}
.brand-sub {
    font-size:9px;
    letter-spacing:2px;
    color:#84b6a3;
    margin-top:6px
}
.nav-caption {
    text-transform:uppercase;
    font-size:9px;
    letter-spacing:2px;
    color:#6e9b88;
    margin:40px 14px 15px
}
.nav-item {
    display:flex;
    align-items:center;
    gap:12px;
    border-radius:10px;
    padding:13px 14px;
    font-size:12px;
    margin-bottom:5px;
    width:100%;
    text-align:left
}
.nav-item svg {
    width:18px;
    height:18px;
    opacity:.85
}
.nav-item:hover {
    background:#ffffff0b
}
.nav-item.active {
    color:#fff;
    background:#ffffff12;
    box-shadow:inset 3px 0 #9cd4b9
}
.nav-item .counter {
    margin-left:auto;
    font-size:10px;
    background:#ffffff18;
    border-radius:5px;
    padding:3px 6px
}
.side-card {
    border:1px solid #ffffff15;
    border-radius:13px;
    padding:15px;
    font-size:11px;
    color:#96bcaa;
    line-height:1.7;
    margin-top:auto;
    background:#ffffff05
}
.side-card .pill {
    margin-top:10px;
    background:#ffffff0a;
    color:#a4c7b8
}
.side-profile {
    display:flex;
    align-items:center;
    gap:11px;
    padding:21px 4px 0;
    font-size:11px
}
.avatar {
    display:grid;
    place-items:center;
    width:35px;
    height:35px;
    border-radius:50%;
    background:#e0eee7;
    color:#366a50;
    font-size:11px;
    font-weight:700;
    flex-shrink:0
}
.side-profile .avatar {
    background:#365d51;
    color:#d7e5d9
}
.side-profile small {
    color:#7fae96;
    font-size:10px
}
.shell {
    margin-left:238px;
    min-height:100vh
}
.topbar {
    height:87px;
    padding:0 42px;
    border-bottom:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:#ffffffb5
}
.crumb {
    font-size:12px;
    color:#789283
}
.crumb strong {
    color:#274c3c;
    font-weight:500
}
.topbar-right {
    display:flex;
    align-items:center;
    gap:15px;
    font-size:11px;
    color:#6c8b78
}
.topbar-right .vline {
    height:24px;
    border-left:1px solid var(--line)
}
.main {
    padding:32px 42px 38px;
    max-width:1650px;
    margin:0 auto
}
.page-title {
    font-size:25px;
    font-weight:620;
    letter-spacing:-.7px;
    line-height:1.25
}
.page-desc {
    margin-top:9px;
    font-size:12px;
    color:var(--muted);
    line-height:1.6
}
.page-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-bottom:27px
}
.preview-banner {
    padding:9px 24px;
    background:#f3e7ce;
    color:#785f28;
    text-align:center;
    font-size:11px;
    line-height:1.4
}
.preview-banner b {
    font-weight:650
}
.preview-banner select {
    width:auto;
    min-height:25px;
    padding:1px 8px;
    margin-left:8px;
    background:#fff9ed;
    font-size:11px
}
.mobile-menu,.bottomnav {
    display:none
}
.offline-banner {
    background:#fff0eb;
    color:#a25333;
    padding:12px;
    text-align:center;
    font-size:12px
}
.hero {
    padding:28px 30px;
    border-radius:var(--radius);
    background:#e6f0e9;
    border:1px solid #dce9df;
    position:relative;
    overflow:hidden;
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:24px
}
.hero h2 {
    font-size:22px;
    font-weight:600;
    letter-spacing:-.4px;
    line-height:1.35;
    margin:10px 0
}
.hero p {
    font-size:12px;
    line-height:1.7;
    color:#6d8675;
    max-width:500px
}
.hero-symbol {
    width:126px;
    height:126px;
    display:grid;
    place-items:center;
    position:relative;
    flex-shrink:0;
    margin:0 15px;
    color:#699985
}
.hero-symbol:before,.hero-symbol:after {
    content:'';
    position:absolute;
    border:1px solid #b9d1be;
    border-radius:26px;
    width:96px;
    height:96px;
    transform:rotate(25deg)
}
.hero-symbol:after {
    transform:rotate(-12deg);
    background:#dcecdf70
}
.hero-symbol svg {
    width:43px;
    height:43px;
    z-index:1
}
.stats {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-bottom:28px
}
.stat {
    background:white;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:21px;
    box-shadow:var(--shadow)
}
.stat-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:11px;
    color:#72917d;
    margin-bottom:15px
}
.stat-top svg {
    width:17px;
    height:17px;
    color:#a2b4a6
}
.stat-value {
    font-size:29px;
    letter-spacing:-1px;
    font-weight:560;
    margin-bottom:7px
}
.stat-foot {
    font-size:10px;
    color:#8fa195
}
.stat .pill {
    font-size:9px
}
.section-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin:3px 0 17px
}
.section-head h2 {
    font-size:14px;
    font-weight:600;
    letter-spacing:-.2px
}
.section-head small {
    font-size:10px
}
.module-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:15px
}
.module-card {
    display:block;
    border:1px solid var(--line);
    border-radius:16px;
    background:white;
    padding:20px 21px;
    text-align:left;
    box-shadow:var(--shadow);
    transition:transform .16s,border-color .16s
}
.module-card:hover {
    transform:translateY(-3px);
    border-color:#90bfac
}
.module-card h3 {
    font-size:13px;
    font-weight:620;
    margin:17px 0 8px
}
.module-card p {
    font-size:11px;
    color:var(--muted);
    line-height:1.7;
    min-height:37px
}
.module-card-foot {
    margin-top:16px;
    padding-top:12px;
    border-top:1px solid #f0f3f0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:10px;
    color:#839a8a
}
.module-card-foot svg {
    width:15px;
    height:15px
}
.card-header {
    display:flex;
    align-items:center;
    justify-content:space-between
}
.panel {
    background:white;
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden
}
.panel.pad {
    padding:23px
}
.panel-head {
    padding:20px 24px;
    border-bottom:1px solid #edf1ee;
    display:flex;
    justify-content:space-between;
    align-items:center
}
.panel-head h3 {
    font-size:13px;
    font-weight:600
}
.home-bottom {
    display:grid;
    grid-template-columns:1.75fr 1fr;
    gap:20px;
    margin-top:27px
}
.activity {
    display:flex;
    gap:12px;
    align-items:center;
    border-bottom:1px solid #f0f3f0;
    padding:14px 22px;
    cursor:pointer
}
.activity:last-child {
    border-bottom:0
}
.activity:hover {
    background:#fafffc
}
.activity-title {
    font-size:11px;
    font-weight:560;
    line-height:1.5
}
.activity small {
    font-size:10px
}
.activity .badge-icon {
    width:33px;
    height:33px;
    border-radius:9px
}
.activity .badge-icon svg {
    width:16px;
    height:16px
}
.mini-flow {
    padding:19px 22px;
    display:grid;
    gap:17px
}
.mini-flow-item {
    display:flex;
    gap:13px;
    align-items:center
}
.mini-flow-number {
    width:25px;
    height:25px;
    border:1px solid #d7e7dc;
    border-radius:50%;
    font-size:10px;
    color:#75a086;
    display:grid;
    place-items:center;
    flex-shrink:0
}
.mini-flow b {
    font-size:11px;
    font-weight:550
}
.mini-flow small {
    font-size:10px;
    display:block;
    margin-top:4px
}
.footer {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:33px;
    color:#99aaa0;
    font-size:9px;
    letter-spacing:.25px;
    line-height:1.8
}
.toolbar {
    display:flex;
    gap:12px;
    align-items:flex-end;
    flex-wrap:wrap;
    margin-bottom:22px
}
.toolbar .field {
    margin:0;
    min-width:150px;
    flex:1
}
.toolbar input,.toolbar select {
    font-size:12px
}
.toolbar .search {
    min-width:230px;
    flex:1.5
}
.toolbar label {
    font-size:10px;
    color:#8da393
}
.toolbar button {
    min-height:43px
}
.table-wrap {
    overflow-x:auto
}
table {
    border-collapse:collapse;
    width:100%;
    white-space:nowrap;
    text-align:left
}
thead {
    background:#f8faf8
}
th {
    font-size:10px;
    color:#7e9485;
    font-weight:600;
    padding:14px 21px;
    border-bottom:1px solid var(--line)
}
td {
    font-size:11px;
    padding:16px 21px;
    border-bottom:1px solid #edf2ed;
    max-width:260px;
    text-overflow:ellipsis;
    overflow:hidden
}
tbody tr:last-child td {
    border-bottom:0
}
tbody tr[data-record]:hover {
    background:#f6fbf8;
    cursor:pointer
}
.table-name {
    font-weight:550;
    color:#315240
}
.table-foot {
    display:flex;
    justify-content:space-between;
    padding:14px 22px;
    border-top:1px solid var(--line);
    font-size:10px;
    color:var(--muted)
}
.tabs {
    display:flex;
    gap:5px;
    padding:5px;
    background:#e9efeb;
    border-radius:12px;
    max-width:100%;
    overflow-x:auto;
    margin-bottom:23px
}
.tab {
    font-size:11px;
    padding:10px 15px;
    border-radius:8px;
    white-space:nowrap
}
.tab.active {
    background:#fff;
    box-shadow:0 1px 7px #002a0f08;
    color:var(--teal);
    font-weight:650
}
.access-table td,.access-table th {
    text-align:center
}
.access-table td:first-child,.access-table th:first-child {
    text-align:left
}
.access-table input {
    margin:0
}
.detail-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px
}
.detail-label {
    font-size:10px;
    color:var(--muted);
    margin-bottom:7px
}
.detail-value {
    font-size:13px;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    line-height:1.6
}
.permission-section {
    border:1px solid var(--line);
    padding:17px;
    border-radius:12px;
    margin-bottom:13px
}
.permission-fields {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3px 15px;
    margin-top:13px
}
.permission-fields label {
    font-size:11px
}
.field-editor {
    padding:17px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fbfcfb;
    margin-bottom:12px
}
.field-editor .form-grid {
    grid-template-columns:1fr 1fr 1fr
}
.field-editor .field {
    margin-bottom:10px
}
.field-editor input,.field-editor select {
    font-size:11px;
    min-height:38px;
    padding:8px
}
.field-editor label {
    font-size:10px
}
.integration-cards {
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:15px;
    margin-bottom:20px
}
.integration-card {
    padding:22px;
    background:white;
    border:1px solid var(--line);
    border-radius:15px
}
.integration-card h3 {
    font-size:13px;
    margin:14px 0 9px
}
.integration-card p {
    font-size:11px;
    color:var(--muted);
    line-height:1.7
}
.pill-row {
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-top:14px
}
.total-row {
    background:#eff7f1;
    font-weight:700
}
.login {
    min-height:100vh;
    display:grid;
    grid-template-columns:1fr 1fr
}
.login-art {
    padding:65px 70px;
    background:var(--sidebar);
    color:white;
    display:flex;
    flex-direction:column;
    position:relative;
    overflow:hidden
}
.login-art h1 {
    font-size:49px;
    letter-spacing:-2px;
    line-height:1.17;
    font-weight:500;
    max-width:460px;
    margin-top:100px
}
.login-art h1 em {
    color:#a5d5b9;
    font-style:normal
}
.login-art p {
    font-size:14px;
    color:#91b9a3;
    line-height:1.85;
    max-width:345px;
    margin-top:23px
}
.login-art .login-foot {
    margin-top:auto;
    padding-top:60px;
    font-size:10px;
    color:#719f86;
    letter-spacing:1px
}
.login-right {
    display:flex;
    align-items:center;
    justify-content:center;
    padding:55px;
    background:#fcfdfb
}
.login-form {
    width:100%;
    max-width:355px
}
.login-form h2 {
    font-size:29px;
    font-weight:570;
    letter-spacing:-.8px;
    margin:12px 0
}
.login-form .page-desc {
    margin-bottom:32px;
    font-size:12px
}
.login-form .btn {
    width:100%
}
.login-form .or {
    display:flex;
    align-items:center;
    gap:15px;
    margin:22px 0;
    color:#95a59a;
    font-size:10px
}
.login-form .or:before,.login-form .or:after {
    content:'';
    height:1px;
    background:var(--line);
    flex:1
}
.login-form small {
    font-size:10px;
    display:block
}
.login-lock {
    margin-top:25px;
    text-align:center;
    font-size:10px;
    color:#93a499
}
.login-lock svg {
    width:12px;
    height:12px;
    margin-right:5px
}
.privacy-note {
    font-size:10px;
    line-height:1.7;
    margin:18px 0;
    color:#8da491
}
.account-box {
    max-width:700px
}
.account-box h3 {
    font-size:15px;
    margin-bottom:10px
}
.account-box p {
    font-size:12px;
    color:var(--muted);
    line-height:1.7
}
.account-actions {
    display:grid;
    gap:16px;
    margin-top:20px
}
.account-actions .panel {
    padding:22px
}
.account-actions .btn {
    margin-top:14px
}
.mono {
    font-family:ui-monospace,monospace;
    font-size:11px
}
.login-preview {
    background:#fff5e3;
    padding:16px;
    border:1px solid #efe4c8;
    border-radius:13px;
    margin:18px 0;
    line-height:1.7;
    font-size:11px;
    color:#8f6f3d
}

dialog {
    border:1px solid var(--line);
    border-radius:20px;
    padding:0;
    width:min(750px,calc(100% - 30px));
    max-height:90vh;
    background:white;
    color:var(--ink);
    box-shadow:0 35px 100px #00221d25
}
dialog::backdrop {
    background:#14362d55;
    backdrop-filter:blur(4px)
}
.modal-header {
    padding:23px 26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-bottom:1px solid var(--line)
}
.modal-header h2 {
    font-size:18px;
    font-weight:600
}
.modal-header small {
    font-size:10px;
    margin-top:6px;
    display:block
}
.modal-body {
    padding:25px 26px;
    max-height:64vh;
    overflow-y:auto
}
.modal-footer {
    padding:17px 26px;
    border-top:1px solid var(--line);
    display:flex;
    justify-content:flex-end;
    gap:10px;
    background:#fafcf9
}
.modal-footer .btn {
    font-size:11px
}
#toast {
    position:fixed;
    bottom:25px;
    left:50%;
    transform:translateX(-50%) translateY(130px);
    background:#193e31;
    color:#fff;
    padding:15px 23px;
    font-size:12px;
    line-height:1.6;
    border-radius:12px;
    z-index:100;
    max-width:90%;
    box-shadow:0 12px 40px #10362420;
    transition:transform .2s;
    pointer-events:none
}
#toast.show {
    transform:translateX(-50%) translateY(0)
}
#toast.bad {
    background:#8e3838
}
.spacer {
    height:21px
}
.num {
    text-align:right;
    font-variant-numeric:tabular-nums
}
.project-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px
}
.project-card {
    padding:20px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff
}
.project-card h3 {
    font-size:13px;
    margin-bottom:8px
}
.new-module {
    border-style:dashed;
    background:#f7faf7;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:199px;
    color:var(--teal);
    font-size:12px;
    gap:9px
}

@media(min-width:1600px) {
    .main {
    padding-top:40px
}
.module-grid {
    grid-template-columns:repeat(3,1fr)
}
.module-card {
    padding:26px
}
.sidebar {
    width:255px
}
.shell {
    margin-left:255px
}

}

@media(max-width:1160px) {
    .sidebar {
    width:210px;
    padding:28px 14px
}
.shell {
    margin-left:210px
}
.main {
    padding:27px
}
.topbar {
    padding:0 27px
}
.module-grid {
    grid-template-columns:repeat(2,1fr)
}
.stats {
    grid-template-columns:repeat(2,1fr)
}
.home-bottom {
    grid-template-columns:1fr
}
.login-art {
    padding:50px
}
.login-art h1 {
    font-size:41px
}
.hero p {
    max-width:380px
}

}

@media(max-width:780px) {
    .sidebar {
    transform:translateX(-100%);
    width:250px;
    transition:transform .2s
}
.sidebar.open {
    transform:translateX(0);
    box-shadow:0 0 0 200vw #09291d60
}
.shell {
    margin-left:0
}
.topbar {
    height:68px;
    padding:0 20px;
    background:#f8fbf8
}
.topbar-right .date,.topbar-right .vline,.crumb {
    display:none
}
.mobile-menu {
    display:grid
}
.main {
    padding:25px 18px 94px
}
.page-title {
    font-size:23px
}
.page-head {
    margin-bottom:22px;
    align-items:flex-start
}
.page-head .btn {
    font-size:11px;
    padding:10px 12px
}
.page-desc {
    font-size:11px;
    max-width:320px
}
.hero {
    padding:23px;
    margin-bottom:19px
}
.hero h2 {
    font-size:21px
}
.hero p {
    font-size:11px
}
.hero-symbol {
    width:64px;
    height:64px;
    margin:0 0 0 12px
}
.hero-symbol:before,.hero-symbol:after {
    width:53px;
    height:53px;
    border-radius:15px
}
.hero-symbol svg {
    width:25px;
    height:25px
}
.stats {
    gap:11px;
    margin-bottom:25px
}
.stat {
    padding:16px;
    border-radius:14px
}
.stat-top {
    font-size:10px;
    margin-bottom:11px
}
.stat-value {
    font-size:25px
}
.stat-foot {
    font-size:9px
}
.module-grid {
    gap:11px
}
.module-card {
    padding:16px;
    border-radius:14px
}
.module-card h3 {
    font-size:12px;
    margin:13px 0 7px
}
.module-card p {
    font-size:10px;
    line-height:1.65;
    min-height:49px
}
.module-card-foot {
    font-size:9px;
    gap:5px;
    margin-top:12px
}
.module-card .badge-icon {
    width:35px;
    height:35px;
    border-radius:10px
}
.module-card .pill {
    font-size:8px;
    padding:4px 5px
}
.module-card .badge-icon svg {
    width:17px;
    height:17px
}
.bottomnav {
    display:flex;
    position:fixed;
    inset:auto 0 0;
    background:#ffffffed;
    backdrop-filter:blur(12px);
    border-top:1px solid var(--line);
    padding:10px 14px max(12px,env(safe-area-inset-bottom));
    z-index:25;
    justify-content:space-around
}
.bottom-item {
    display:flex;
    flex-direction:column;
    gap:5px;
    align-items:center;
    font-size:9px;
    color:#8aa093;
    min-width:62px;
    padding:3px 5px
}
.bottom-item svg {
    width:19px;
    height:19px
}
.bottom-item.active {
    color:var(--teal);
    font-weight:650
}
.footer {
    display:block;
    text-align:center;
    margin-top:26px;
    line-height:2
}
.preview-banner {
    font-size:9px;
    padding:8px 14px
}
.preview-banner select {
    font-size:10px;
    margin:5px 0 0 5px
}
.toolbar .field {
    min-width:130px
}
.toolbar .search {
    min-width:100%;
    flex-basis:100%
}
.toolbar {
    gap:10px
}
.toolbar input,.toolbar select {
    font-size:12px
}
.toolbar .btn {
    flex:1
}
.table-headline {
    padding:18px
}
td,th {
    padding:14px;
    font-size:11px
}
.panel-head {
    padding:18px
}
.home-bottom {
    margin-top:24px
}
.activity {
    padding:14px 17px
}
.activity .pill {
    font-size:8px
}
.activity-title {
    font-size:10px
}
.login {
    grid-template-columns:1fr
}
.login-art {
    padding:30px 28px 26px
}
.login-art h1 {
    font-size:29px;
    letter-spacing:-1px;
    max-width:300px;
    margin:25px 0 0
}
.login-art p {
    font-size:11px;
    margin-top:12px;
    max-width:290px
}
.login-art .login-foot {
    display:none
}
.login-art .brand-mark {
    width:31px;
    height:31px;
    font-size:21px
}
.login-art .brand-name {
    font-size:20px
}
.login-art .brand-sub {
    font-size:7px
}
.login-right {
    padding:34px 28px 45px
}
.login-form {
    max-width:440px
}
.login-form h2 {
    font-size:24px
}
.login-form .page-desc {
    margin-bottom:24px
}
.integration-cards {
    grid-template-columns:1fr
}
.integration-card {
    padding:18px
}
.form-grid {
    grid-template-columns:1fr
}
.wide {
    grid-column:auto
}
.detail-grid {
    gap:20px 13px
}
.detail-value {
    font-size:12px
}
.field-editor .form-grid {
    grid-template-columns:1fr 1fr
}
.permission-fields {
    grid-template-columns:1fr
}
.modal-header {
    padding:19px 21px
}
.modal-header h2 {
    font-size:16px
}
.modal-body {
    padding:20px;
    max-height:66vh
}
.modal-footer {
    padding:16px 20px
}
.tabs {
    gap:1px
}
.tab {
    padding:10px 12px;
    font-size:10px
}
dialog {
    width:calc(100% - 18px);
    max-height:94vh;
    border-radius:17px
}
.project-grid {
    grid-template-columns:1fr
}
#toast {
    bottom:84px;
    font-size:11px;
    width:max-content;
    max-width:91%
}
.topbar-right {
    gap:10px
}
.account-box .panel {
    padding:20px
}

}

@media(prefers-reduced-motion:reduce) {
    * {
    transition:none!important;
    scroll-behavior:auto!important
}

}


#toast {
    opacity:0;
    visibility:hidden
}
#toast.show {
    opacity:1;
    visibility:visible
}

@media(max-width:780px) {
    .footer {
    gap:10px;
    flex-direction:column
}
.page-head {
    align-items:flex-start
}
.page-head>.btn {
    flex-shrink:0
}

}

