/* FastAdmin workspace: navigation, compact controls and structured editing. */
body#tabs {
    --tt-content-top: 72px;
    --tt-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
    font-size: 15px;
}

/* Keep FastAdmin's tab nodes as navigation state without a second visible header. */
body#tabs #firstnav.tt-tabbar,
body#tabs #secondnav.tt-page-tabs,
body#tabs.multiplenav #secondnav.tt-page-tabs {
    position: fixed !important;
    top: 0;
    left: -20000px;
    width: 1200px;
    height: 44px;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}

body#tabs .tt-topbar-main { padding: 0 30px; }
body#tabs .tt-collapse-toggle { display: none; }
body#tabs .tt-menu-toggle::before { display: none; }
body#tabs .tt-secondary { top: var(--tt-topbar-h); }
body#tabs .tt-breadcrumb { gap: 11px; }
body#tabs .tt-nav-scroll { padding: 0 12px 22px; overflow-y: auto; }
body#tabs .tt-nav-caption { margin-bottom: 10px; letter-spacing: 0; }
body#tabs .tt-nav { gap: 4px; }
body#tabs .tt-nav-link { min-height: 44px; padding: 10px 12px; gap: 12px; font-size: 15px; line-height: 24px; }
body#tabs .tt-nav-link > .tt-nav-icon { flex: 0 0 16px; width: 16px; height: 16px; color: #9bbba7; }
body#tabs .tt-nav-link:hover { color: #fff; background: #ffffff0a; }
body#tabs .tt-nav-group.is-current .tt-nav-link,
body#tabs .tt-nav-group.is-active .tt-nav-link { color: #fff; font-weight: 600; background: #ffffff14; }
body#tabs .tt-nav-group.is-current .tt-nav-icon,
body#tabs .tt-nav-group.is-active .tt-nav-icon,
body#tabs .tt-nav-group.is-current .tt-nav-caret,
body#tabs .tt-nav-group.is-active .tt-nav-caret { color: #b8dfcb; }
body#tabs .tt-nav-caret > svg { display: block; width: 12px; height: 12px; }
body#tabs .tt-secondary-heading { padding: 0 24px; color: #738279; font-size: 13px; }
body#tabs .tt-secondary-nav { padding: 0 12px 24px; overflow-y: auto; }
body#tabs .tt-secondary-link { min-height: 44px; padding: 10px 12px; font-size: 14px; line-height: 24px; }
body#tabs .tt-secondary-link.is-active { background: #e3f1e9; }
body#tabs .tt-secondary-link.is-active::before { display: none; }
body#tabs .tt-brand-mark { transform: none; }
body#tabs .tt-brand-copy strong { transform: none; font-size: 17px; line-height: 24px; letter-spacing: 0; }
body#tabs .tt-brand-copy small { transform: none; }
body#tabs .tt-menu-search { display: none; }
body#tabs .navbar-custom-menu > .navbar-nav > li:not(.user-menu) { display: none; }
.tt-platform-return { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:40px; margin:0 0 12px; padding:8px 12px; color:#b5d0be; background:transparent; border:1px solid #ffffff1c; border-radius:8px; font:inherit; font-size:14px; }
.tt-platform-return:hover { color:#edf8ee; background:#ffffff08; }

:is(body.inside-aside, body.inside-header) { --tt-text:#303a36; --tt-heading:#202e28; --tt-muted:#737e78; --tt-border:#e6eae7; --tt-input-border:#dce3df; --tt-canvas:#f5f7f6; font-size:14px; }
:is(body.inside-aside, body.inside-header) .content { padding: 26px 30px 28px; }
:is(body.inside-aside, body.inside-header) .panel-body { padding: 20px; }
:is(body.inside-aside, body.inside-header) .panel-default > .panel-heading { padding: 17px 20px; }
:is(body.inside-aside, body.inside-header) .panel-title { font-size: 16px; }
:is(body.inside-aside, body.inside-header) .form-control { font-size: 15px; }
:is(body.inside-aside, body.inside-header) .form-horizontal .control-label { color: var(--tt-muted); padding-right: 16px; }
:is(body.inside-aside, body.inside-header) .form-group { margin-bottom: 24px; }
.tt-page-heading { margin:0 0 20px; }
.tt-page-heading h1 { margin:0; color:#253d31; font-size:22px; line-height:1.4; letter-spacing:-.3px; font-weight:600; }
.tt-page-heading p { margin:5px 0 0; color:var(--tt-muted); font-size:14px; line-height:22px; }
/* Labels sit with their fields, so long editing pages use the available width. */
:is(body.inside-aside, body.inside-header) form.tt-page-form .form-group:not(.layer-footer) { display:block; margin:0 0 22px; }
:is(body.inside-aside, body.inside-header) form.tt-page-form .form-group > .control-label { float:none; display:block; width:100%; padding:0 0 8px; color:var(--tt-text); font-size:14px; font-weight:500; line-height:20px; text-align:left; }
:is(body.inside-aside, body.inside-header) form.tt-page-form .form-group > :is(.col-sm-4,.col-sm-8,.col-sm-9,.col-sm-10) { float:none; width:100%; max-width:none; min-width:0; padding:0; }
:is(body.inside-aside, body.inside-header) form.tt-page-form .help-block { font-size:13px; line-height:22px; }
:is(body.inside-aside, body.inside-header) #myTabContent > .tab-pane.flex.active { display:block; }
:is(body.inside-aside, body.inside-header) #myTabContent > .tab-pane.flex > .panel { width:100%; max-width:100%; }
:is(body.inside-aside, body.inside-header) .btn { min-height: 36px; font-size: 14px; font-weight: 500; }
:is(body.inside-aside, body.inside-header) .btn.disabled,
:is(body.inside-aside, body.inside-header) .btn[disabled] { cursor: not-allowed; }

/* Filters keep full labels above left-aligned fields and actions on their own row. */
:is(body.inside-aside, body.inside-header) .form-commonsearch {
    padding: 18px 20px;
    margin-bottom: 24px;
    background: var(--tt-soft);
    border-radius: 9px;
}
:is(body.inside-aside, body.inside-header) .form-commonsearch fieldset > .row {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 250px));
    justify-content: start;
    gap: 18px 24px;
    margin: 0;
}
:is(body.inside-aside, body.inside-header) .form-commonsearch fieldset { min-width:0; }
:is(body.inside-aside, body.inside-header) .form-commonsearch fieldset > .row::before,
:is(body.inside-aside, body.inside-header) .form-commonsearch fieldset > .row::after,
:is(body.inside-aside, body.inside-header) .form-commonsearch .form-group::before,
:is(body.inside-aside, body.inside-header) .form-commonsearch .form-group::after { display: none; }
:is(body.inside-aside, body.inside-header) .form-commonsearch .form-group {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    float: none;
    width: auto;
    min-width: 0;
    padding: 0;
    margin: 0;
}
:is(body.inside-aside, body.inside-header) .form-commonsearch .control-label {
    flex: none;
    width: auto;
    padding: 0;
    margin: 0;
    line-height: 20px;
    white-space: nowrap !important;
    text-align: left;
    font-size: 14px;
    height:auto;
    overflow:visible;
    text-overflow:clip;
}
:is(body.inside-aside, body.inside-header) .bootstrap-select.form-control { padding:0; border:0; background:transparent; box-shadow:none; }
:is(body.inside-aside, body.inside-header) .bootstrap-select > .dropdown-toggle { width:100%; height:36px; min-height:36px; padding:6px 12px; font-size:14px; line-height:22px; }
:is(body.inside-aside, body.inside-header) .bootstrap-select > select { width:.5px !important; height:100% !important; padding:0 !important; border:0 !important; opacity:0 !important; }
:is(body.inside-aside, body.inside-header) .form-commonsearch .form-group > div {
    flex: none;
    width: 100%;
    min-width: 0;
    padding: 0;
}
/* Each subject level shares the filter grid instead of splitting one field. */
:is(body.inside-aside, body.inside-header) .form-commonsearch .form-group:has(.exam-subject-cascade),
:is(body.inside-aside, body.inside-header) .form-commonsearch .form-group:has(.exam-subject-cascade) > div,
:is(body.inside-aside, body.inside-header) .form-commonsearch .exam-subject-cascade {
    display: contents;
}
:is(body.inside-aside, body.inside-header) .form-commonsearch .form-group:has(.exam-subject-cascade) > .control-label {
    display: none;
}
:is(body.inside-aside, body.inside-header) .form-commonsearch .exam-subject-cascade > div {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
:is(body.inside-aside, body.inside-header) .form-commonsearch .subject-level {
    margin: 0;
    color: var(--tt-muted);
    font-size: 14px;
}
:is(body.inside-aside, body.inside-header) .form-commonsearch .form-group:has(> .col-xs-offset-4) {
    grid-column: 1 / -1;
    padding-top: 14px;
    border-top: 1px solid var(--tt-border);
}
:is(body.inside-aside, body.inside-header) .form-commonsearch .form-group > .col-xs-offset-4 {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: 0;
}
:is(body.inside-aside, body.inside-header) .form-commonsearch .col-xs-offset-4 .btn { min-width:76px; }
:is(body.inside-aside, body.inside-header) .form-commonsearch .row-between { margin: 0 -4px; }
:is(body.inside-aside, body.inside-header) .form-commonsearch .row-between > div { padding: 0 4px; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar {
    display:flex;
    flex-wrap:wrap;
    align-items:flex-start;
    gap:10px;
    padding:0;
    margin:0 0 16px;
    border:0;
}
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar::before,
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar::after { display:none; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar > .bs-bars { flex:1 1 auto; float:none !important; min-width:0; margin:0; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar > :is(.columns,.search,.columns-right,.columns-left) { flex:none; float:none !important; margin:0 !important; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar > .bs-bars { order:0; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar > .search { order:1; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar > :is(.columns,.columns-right,.columns-left) { order:2; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .toolbar { margin:0; padding:0; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .toolbar > .help-block { margin-top:0; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .search .form-control { height: 36px; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .columns .btn { height: 36px; min-width:36px; padding:0 10px; border-radius:6px; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .columns .btn-group > .btn { border-radius: 0; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .columns .btn-group > .btn:first-child { border-radius: 7px 0 0 7px; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .columns .btn-group > .btn:last-child { border-radius: 0 7px 7px 0; }

/* Match Element's open table rows instead of Bootstrap's boxed cells. */
:is(body.inside-aside, body.inside-header) .table-bordered,
:is(body.inside-aside, body.inside-header) .fixed-table-container { border: 0; border-radius: 0; }
:is(body.inside-aside, body.inside-header) .table-bordered > thead > tr > th,
:is(body.inside-aside, body.inside-header) .table-bordered > tbody > tr > td { border-left: 0; border-right: 0; }
:is(body.inside-aside, body.inside-header) .table > thead > tr > th {
    padding: 12px 0;
    font-size: 14px;
    line-height: 23px;
    font-weight: 500;
    border-bottom-color: var(--tt-border);
}
:is(body.inside-aside, body.inside-header) .fixed-table-container thead th .th-inner { padding: 0 10px; line-height: 23px; }
:is(body.inside-aside, body.inside-header) .table > tbody > tr > td { padding: 12px 10px; border-color: var(--tt-border); }
:is(body.inside-aside, body.inside-header) .table-striped > tbody > tr:nth-of-type(odd) { background: #fff; }
:is(body.inside-aside, body.inside-header) .table .btn-xs { min-height: 32px; }
:is(body.inside-aside, body.inside-header) .table .no-records-found td { padding: 28px 10px; color: var(--tt-muted); background: #fff; }

/* Standard icon-only row actions follow the reference's plain circular buttons. */
:is(body.inside-aside, body.inside-header) .table :is(.btn-editone,.btn-delone,.btn-dragsort) { width:32px; min-width:32px; height:32px; min-height:32px; padding:0; border-radius:50%; box-shadow:none; gap:0; }
:is(body.inside-aside, body.inside-header) .table .btn-dragsort { color:#697d70; border-color:var(--tt-input-border); background:#fff; }
:is(body.inside-aside, body.inside-header) .table .btn-dragsort:is(:hover,:focus) { color:#126d57; border-color:#9ebfaf; background:#f1f7f3; }
:is(body.inside-aside, body.inside-header) .table .btn-comment { min-width:58px; height:32px; min-height:32px; padding:0 10px; border-color:var(--tt-input-border); background:#f8fbf9; color:#557363; font-size:12px; line-height:30px; }
:is(body.inside-aside, body.inside-header) .table .btn-comment:is(:hover,:focus) { border-color:#9ebfaf; background:#edf6f0; color:#126d57; }
:is(body.inside-aside, body.inside-header) .table .btn-editone { color:#168268; border-color:#bedbcd; background:#f0f8f4; }
:is(body.inside-aside, body.inside-header) .table .btn-editone:is(:hover,:focus) { color:#126d57; border-color:#168268; background:#e2f1e9; }
:is(body.inside-aside, body.inside-header) .table .btn-delone { color:#c44848; border-color:#ebcccc; background:#fff5f4; }
:is(body.inside-aside, body.inside-header) .table .btn-delone:is(:hover,:focus) { color:#ae3838; border-color:#d48686; background:#fce9e7; }
:is(body.inside-aside, body.inside-header) .table :is(.btn-editone,.btn-delone) > .fa { width:14px; height:14px; margin:0; }
:is(body.inside-aside, body.inside-header) .table :is(.btn-editone,.btn-delone) > .fa::before { content:""; display:block; width:14px; height:14px; background:currentColor; -webkit-mask:var(--tt-action-icon) center/contain no-repeat; mask:var(--tt-action-icon) center/contain no-repeat; }
:is(body.inside-aside, body.inside-header) .table .btn-editone { --tt-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 4 5 5M4 20l5-1L20 8a3.5 3.5 0 0 0-5-5L4 14v6Z'/%3E%3C/svg%3E"); }
:is(body.inside-aside, body.inside-header) .table .btn-delone { --tt-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M5 6l1 15h12l1-15M9 6V3h6v3m-5 4v7m4-7v7'/%3E%3C/svg%3E"); }

/* User records group identity and membership details into calm, readable rows. */
.tt-user-list .table > tbody > tr > td { vertical-align:middle; padding-top:15px; padding-bottom:15px; }
.tt-user-list .tt-user-identity { min-width:180px; max-width:260px; }
.tt-user-list .tt-user-name { display:block; overflow:hidden; color:var(--tt-heading); font-weight:500; line-height:22px; text-overflow:ellipsis; white-space:nowrap; }
.tt-user-list .tt-user-meta { display:block; margin-top:4px; color:var(--tt-muted); font-size:12px; font-weight:400; line-height:19px; font-variant-numeric:tabular-nums; }
.tt-user-list .tt-user-identity > .tt-user-meta { display:flex; flex-wrap:wrap; align-items:center; gap:3px 10px; }
.tt-user-list .tt-user-id { padding-left:10px; border-left:1px solid var(--tt-input-border); line-height:13px; }
.tt-user-list .tt-user-membership { min-width:175px; }
.tt-user-list .tt-user-member { display:inline-block; max-width:190px; padding:1px 8px; overflow:hidden; border:1px solid #d6e8dc; border-radius:4px; color:#3b7556; background:#f1f8f3; font-size:13px; line-height:20px; vertical-align:top; text-overflow:ellipsis; }
.tt-user-list .tt-user-member.is-empty { border-color:var(--tt-border); color:var(--tt-muted); background:#f7f9f8; }
.tt-user-list .tt-user-date { display:block; font-variant-numeric:tabular-nums; line-height:22px; }
.tt-user-list .tt-user-date > .tt-user-meta { margin-top:2px; }
.tt-user-list .tt-user-score { color:var(--tt-heading); font-weight:500; font-variant-numeric:tabular-nums; }
.tt-user-list .table .tt-user-actions { min-width:230px; white-space:nowrap; }
.tt-user-list .table .tt-user-actions .btn { min-width:32px; height:32px; min-height:32px; margin:0 3px 0 0; padding:0 9px; border:1px solid var(--tt-input-border); border-radius:6px; color:#52715e; background:#fff; font-size:12px; line-height:30px; box-shadow:none; }
.tt-user-list .table .tt-user-actions .btn-editone { width:32px; padding:0; }
.tt-user-list .table .tt-user-actions .btn:is(:hover,:focus) { border-color:#9fbeac; color:#246b48; background:#f1f7f3; }
.tt-user-list .table .tt-user-actions .btn > .fa { font-size:12px; }

/* The exam option editor is one row per answer, including the action buttons. */
:is(body.inside-aside, body.inside-header) .fieldlist { padding: 12px; }
:is(body.inside-aside, body.inside-header) .fieldlist dd {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px;
    margin: 0 0 12px;
}
:is(body.inside-aside, body.inside-header) .fieldlist dd:last-of-type { margin-bottom: 0; }
:is(body.inside-aside, body.inside-header) .fieldlist dd input.form-control { display: block; width: auto; flex: 1 1 180px; min-width: 0; }
:is(body.inside-aside, body.inside-header) .fieldlist dd input.form-control:first-child { flex: 0 0 52px; width: 52px; text-align: center; }
:is(body.inside-aside, body.inside-header) .fieldlist dd ins { flex: 1; width: auto; font-size: 14px; color: var(--tt-muted); }
:is(body.inside-aside, body.inside-header) .fieldlist dd ins:first-child { flex: 0 0 52px; }
:is(body.inside-aside, body.inside-header) .fieldlist dd .btn { flex: none; margin: 0 !important; }
:is(body.inside-aside, body.inside-header) .fieldlist dd .btn-dragsort { display: none; }
:is(body.inside-aside, body.inside-header) .fieldlist dd .option-preview { flex-basis: 100%; }
:is(body.inside-aside, body.inside-header) .fieldlist dd > .plupload-preview { flex-basis:100%; }

/* Image fields pair a quiet thumbnail with clear selection and removal actions. */
:is(body.inside-aside, body.inside-header) :is(.plupload-preview,.faupload-preview) { display:flex; flex-wrap:wrap; gap:12px; padding:0; margin:12px 0 0; list-style:none; }
:is(body.inside-aside, body.inside-header) :is(.plupload-preview,.faupload-preview)::before,
:is(body.inside-aside, body.inside-header) :is(.plupload-preview,.faupload-preview)::after { display:none; }
:is(body.inside-aside, body.inside-header) :is(.plupload-preview,.faupload-preview):empty { display:none; }
:is(body.inside-aside, body.inside-header) :is(.plupload-preview,.faupload-preview) > li { position:relative; width:108px; margin:0; padding:0; }
:is(body.inside-aside, body.inside-header) :is(.plupload-preview,.faupload-preview) > li .thumbnail { width:108px; height:108px; padding:0; margin:0; border-radius:8px; border-color:var(--tt-input-border); overflow:hidden; background:#f8faf9; }
:is(body.inside-aside, body.inside-header) :is(.plupload-preview,.faupload-preview) > li .thumbnail img { width:100%; height:100%; object-fit:contain; }
:is(body.inside-aside, body.inside-header) :is(.plupload-preview,.faupload-preview) .btn-trash { position:absolute; top:6px; right:6px; display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; min-height:26px; padding:0; border:1px solid #e9cdcd; border-radius:6px; color:#b85151; background:#fff; line-height:24px; }
:is(body.inside-aside, body.inside-header) .tt-image-control { position:relative; display:grid; grid-template-columns:80px minmax(0,1fr); align-items:center; gap:0 16px; width:360px; max-width:100%; min-height:80px; vertical-align:top; }
:is(body.inside-aside, body.inside-header) .tt-image-control > .form-control { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
:is(body.inside-aside, body.inside-header) .tt-image-control .input-group-addon { grid-column:2; grid-row:1; display:flex; flex-wrap:wrap; align-items:center; gap:8px; width:auto; min-width:0; height:auto; padding:0; border:0; background:transparent; line-height:normal; text-align:left; white-space:normal; }
:is(body.inside-aside, body.inside-header) .tt-image-control .input-group-addon > span:has(> :is(.plupload,.faupload)) { display:none; }
:is(body.inside-aside, body.inside-header) .tt-image-control .plupload,
:is(body.inside-aside, body.inside-header) .tt-image-control .faupload { display:none !important; }
:is(body.inside-aside, body.inside-header) .tt-image-control :is(.fachoose,.faselect,.tt-image-clear) { display:inline-flex; justify-content:center; align-items:center; gap:7px; min-width:0; height:32px; min-height:32px; padding:0 11px; border:1px solid var(--tt-input-border); border-radius:6px; background:#fff; color:#3d574b; line-height:20px; font-size:13px; font-weight:500; }
:is(body.inside-aside, body.inside-header) .tt-image-control :is(.fachoose,.faselect):is(:hover,:focus) { color:var(--tt-primary); border-color:#9ebfaf; background:#f5faf7; }
:is(body.inside-aside, body.inside-header) .tt-image-control :is(.fachoose,.faselect) .fa { color:#648071; font-size:14px; }
:is(body.inside-aside, body.inside-header) .tt-image-control .tt-image-clear { padding:0 8px; color:#7d8681; border-color:transparent; background:transparent; }
:is(body.inside-aside, body.inside-header) .tt-image-control .tt-image-clear:is(:hover,:focus) { color:#b85151; border-color:#efdada; background:#fff7f6; }
:is(body.inside-aside, body.inside-header) .tt-image-control .tt-image-clear[hidden] { display:none; }
:is(body.inside-aside, body.inside-header) .tt-image-control .tt-image-caption { flex-basis:100%; color:var(--tt-muted); font-size:12px; line-height:20px; }
:is(body.inside-aside, body.inside-header) .tt-image-control.has-image:not(.is-multiple) .tt-image-caption,
:is(body.inside-aside, body.inside-header) .tt-image-control:not(.is-multiple) .btn-trash { display:none; }
:is(body.inside-aside, body.inside-header) .tt-image-control .tt-image-placeholder { grid-column:1; grid-row:1; display:grid; place-items:center; width:80px; height:80px; border:1px solid var(--tt-border); border-radius:8px; color:#9aa9a0; background:#f6f8f7; font-size:25px; }
:is(body.inside-aside, body.inside-header) .tt-image-control:has(> :is(.plupload-preview,.faupload-preview) > li) .tt-image-placeholder { display:none; }
:is(body.inside-aside, body.inside-header) .tt-image-control > :is(.plupload-preview,.faupload-preview) { grid-column:1; grid-row:1; margin:0; gap:10px; }
:is(body.inside-aside, body.inside-header) .tt-image-control > :is(.plupload-preview,.faupload-preview) > li { width:80px; height:80px; min-height:80px; border:0; border-radius:8px; background:transparent; }
:is(body.inside-aside, body.inside-header) .tt-image-control > :is(.plupload-preview,.faupload-preview) > li .thumbnail { width:80px; height:80px; margin:0; }
:is(body.inside-aside, body.inside-header) .tt-image-control .btn-trash { top:4px; right:4px; width:22px; height:22px; min-height:22px; border-radius:5px; line-height:20px; font-size:11px; }
:is(body.inside-aside, body.inside-header) .tt-image-control.is-multiple { width:100%; }
:is(body.inside-aside, body.inside-header) .tt-image-control.is-multiple.has-image > :is(.plupload-preview,.faupload-preview) { grid-column:1 / -1; }
:is(body.inside-aside, body.inside-header) .tt-image-control.is-multiple.has-image .input-group-addon { grid-column:1 / -1; grid-row:2; margin-top:12px; }
:is(body.inside-aside, body.inside-header) .tt-image-control > .msg-box { grid-column:1 / -1; }
:is(body.inside-aside, body.inside-header) .tt-profile-image { display:flex; flex-direction:column; align-items:center; gap:12px; width:auto; }
:is(body.inside-aside, body.inside-header) .tt-profile-image .profile-avatar-text { display:none !important; }
:is(body.inside-aside, body.inside-header) .tt-profile-image .faupload { position:static; display:inline-flex; align-items:center; justify-content:center; gap:7px; width:auto; height:32px; min-height:32px; padding:0 11px; border:1px solid var(--tt-input-border); border-radius:6px; color:#3d574b; background:#fff; opacity:1; font-size:13px; line-height:20px; }
:is(body.inside-aside, body.inside-header) .tt-profile-image .faupload:is(:hover,:focus) { border-color:#9ebfaf; color:var(--tt-primary); background:#f5faf7; }
:is(body.inside-aside, body.inside-header) .box:has(#update-form) { border:1px solid var(--tt-border); border-radius:var(--tt-radius-lg); background:#fff; box-shadow:0 2px 10px rgba(18,59,51,.035); }
:is(body.inside-aside, body.inside-header) .box:has(#update-form) > .panel-heading { display:none; }

/* Long edits are independent FastAdmin pages with their own refreshable URL. */
body.tt-workspace-editor { background:var(--tt-canvas); }
body.tt-workspace-editor .content { min-height:100vh; width:100%; max-width:none; margin:0; padding:26px 30px 28px; }
body.tt-workspace-editor form[role=form] { box-sizing:border-box; width:100%; max-width:none; padding:20px 20px 0; margin:0; background:#fff; border:1px solid var(--tt-border); border-radius:12px; box-shadow:0 2px 10px #123b3306; }
body.tt-workspace-editor form[role=form] .form-group:not(.layer-footer) { display:block; margin:0 0 22px; }
body.tt-workspace-editor form[role=form] .form-group > .control-label { float:none; display:block; width:100%; padding:0 0 8px; text-align:left; font-size:14px; line-height:20px; }
body.tt-workspace-editor form[role=form] .form-group > :is(.col-sm-4,.col-sm-8,.col-sm-9,.col-sm-10) { float:none; width:100%; min-width:0; max-width:none; padding:0; }
body.tt-workspace-editor form[role=form] .form-group.layer-footer { position:sticky; bottom:0; z-index:5; display:block !important; padding:18px 0; margin:0; border-top:1px solid var(--tt-border); background:#fff; }
body.tt-workspace-editor form[role=form] .layer-footer > label { display:none; }
body.tt-workspace-editor form[role=form] .layer-footer > div { display:flex; align-items:center; justify-content:flex-end; gap:10px; width:100%; padding:0; }
body.tt-workspace-editor form[role=form] .layer-footer .btn { min-width:76px; margin:0; }

/* Keep UMEditor's data contract and give its surface the reference editor treatment. */
body.tt-workspace-editor .edui-container { max-width:100%; border:1px solid var(--tt-input-border); border-radius:8px; background:#fff; box-shadow:none; }
body.tt-workspace-editor .edui-container .edui-toolbar { border-bottom:1px solid var(--tt-border); border-radius:7px 7px 0 0; background:#fff; box-shadow:none; }
body.tt-workspace-editor .edui-container .edui-toolbar .edui-btn-toolbar { padding:6px; }
body.tt-workspace-editor .edui-container .edui-toolbar * { font-family:var(--tt-font); }
body.tt-workspace-editor .edui-container .edui-combobox { border-color:var(--tt-input-border); background:#fff; }
body.tt-workspace-editor .edui-container .edui-editor-body { border-radius:0 0 7px 7px; background:#fff; box-shadow:none; }
body.tt-workspace-editor .edui-container .edui-body-container { font-family:var(--tt-font); font-size:15px; line-height:1.7; color:var(--tt-text); }

/* Keep the library within the viewport when the browser zoom changes. */
.layui-layer.tt-material-dialog { width:min(1040px,calc(100vw - 32px)) !important; height:min(720px,calc(100dvh - 40px)) !important; top:50% !important; left:50% !important; translate:-50% -50%; }
.layui-layer.tt-material-dialog .layui-layer-content { height:calc(100% - 64px) !important; overflow:hidden; }
.layui-layer.tt-material-dialog iframe { width:100% !important; height:100% !important; }

/* Shared link picker matches the reference selector, independently of drawers. */
.layui-layer.tt-link-dialog { display:flex; flex-direction:column; width:min(960px,calc(100vw - 48px)) !important; height:min(528px,88dvh) !important; top:6vh !important; left:50% !important; translate:-50% 0; border-radius:16px !important; overflow:hidden; }
.layui-layer.tt-link-dialog .layui-layer-title { flex:none; height:72px; padding:24px; border-bottom:1px solid #e4ebe7; color:#123b33; font-size:18px; font-weight:600; line-height:24px; }
.layui-layer.tt-link-dialog .layui-layer-setwin { top:26px; right:24px; }
.layui-layer.tt-link-dialog .layui-layer-content { flex:1; min-height:0; height:auto !important; overflow:hidden; border-radius:0; }
.layui-layer.tt-link-dialog iframe { display:block; width:100% !important; height:100% !important; }
.layui-layer.tt-link-dialog .layui-layer-footer { flex:none; margin:0; padding:16px 24px !important; border-top:1px solid #e4ebe7; background:#f9fbfa; }
.layui-layer.tt-link-dialog .layui-layer-footer .row { margin:0; }
.layui-layer.tt-link-dialog .tt-link-footer { display:flex; justify-content:flex-end; gap:10px; }
.layui-layer.tt-link-dialog .tt-link-footer .btn { min-width:62px; height:40px; margin:0; padding:10px 16px; border-radius:8px; font-size:14px; line-height:18px; }
.layui-layer.tt-link-dialog.has-link-params { height:min(650px,88dvh) !important; }
@media (max-width:640px) {
    .layui-layer.tt-link-dialog { width:calc(100vw - 24px) !important; height:calc(100dvh - 24px) !important; top:12px !important; }
    .layui-layer.tt-link-dialog .layui-layer-title { height:64px; padding:20px 16px; }
    .layui-layer.tt-link-dialog .layui-layer-footer { padding:16px !important; }
}

/* Short edits slide in from the right, using the reference drawer's header. */
.layui-layer.tt-form-drawer { display:flex; flex-direction:column; top: 0 !important; left: auto !important; right: 0 !important; height: 100vh !important; height: 100dvh !important; max-width: 100vw; border-radius: 0 !important; }
.layui-layer.tt-form-drawer .layui-layer-title { flex:none; border-radius: 0; }
.layui-layer.tt-form-drawer .layui-layer-content { flex:1; min-height:0; height:auto !important; overflow:hidden; }
.layui-layer.tt-form-drawer iframe { width:100% !important; height:100% !important; }
.layui-layer.tt-form-drawer .layui-layer-footer { flex:none; }
.layui-layer-fast.layui-layer.tt-form-drawer .layui-layer-title { padding-right:72px; }
.layui-layer.tt-form-drawer .layui-layer-content,
.layui-layer.tt-form-drawer iframe,
.layui-layer.tt-form-drawer .layui-layer-footer { border-radius: 0; }
.layui-layer.tt-form-drawer .layui-layer-max,
.layui-layer.tt-form-drawer .layui-layer-maxmin,
.layui-layer.tt-form-drawer .layui-layer-min { display: none !important; }
.layui-layer.tt-form-drawer .layui-layer-footer .row > label { display:none; }
.layui-layer.tt-form-drawer .layui-layer-footer .row > div { display:flex; justify-content:flex-end; gap:10px; width:100%; padding:0; }
.layui-layer.tt-form-drawer .layui-layer-footer .btn { min-width:76px; height:36px; margin:0; line-height:22px; padding:6px 13px; }
body.tt-drawer-editor { background:var(--tt-canvas); }
body.tt-drawer-editor .content { padding:24px; }
body.tt-drawer-editor form[role=form] { padding:22px; margin:0; border:1px solid var(--tt-border); border-radius:10px; background:#fff; }
body.tt-drawer-editor .form-horizontal .form-group { display:block; margin:0 0 22px; }
body.tt-drawer-editor .form-horizontal .control-label { float:none; display:block; width:100%; padding:0 0 8px; color:#52665a; text-align:left; font-size:14px; font-weight:500; line-height:20px; }
body.tt-drawer-editor .form-horizontal .form-group > :is(.col-sm-4,.col-sm-8,.col-sm-9,.col-sm-10) { float:none; width:100%; min-width:0; padding:0; }
body.tt-drawer-editor .form-horizontal .form-group::before,
body.tt-drawer-editor .form-horizontal .form-group::after { display:none; }
body.tt-drawer-editor .form-horizontal .tt-drawer-section + .tt-drawer-section { margin-top:24px; padding-top:22px; border-top:1px solid var(--tt-border); }
body.tt-drawer-editor .tt-drawer-section h2 { margin:0 0 20px; color:var(--tt-heading); font-size:15px; font-weight:600; line-height:22px; }
body.tt-drawer-editor .tt-drawer-section > .form-group:last-child,
body.tt-drawer-editor .tt-drawer-row > .form-group { margin-bottom:0; }
body.tt-drawer-editor .tt-drawer-row { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
body.tt-drawer-editor input.form-control[type=number] { font-variant-numeric:tabular-nums; }
:is(body.inside-aside, body.inside-header) .tt-image-control .msg-box { position:static; flex-basis:100%; width:100%; margin-top:6px; }
:is(body.inside-aside, body.inside-header) .tt-image-control .msg-wrap { white-space:normal; }
/* FastAdmin's fixed footer forwards clicks to these original form buttons. */
body.tt-drawer-editor .form-horizontal .form-group.layer-footer { display: none !important; }
@media (max-width:480px) {
    body.tt-drawer-editor .content { padding:16px; }
    body.tt-drawer-editor form[role=form] { padding:18px; }
    body.tt-drawer-editor .tt-drawer-row { grid-template-columns:minmax(0,1fr); }
}

@media (max-width: 1200px) {
    :is(body.inside-aside, body.inside-header) .content { padding: 24px; }
    body#tabs .tt-topbar-main { padding: 0 24px; }
}
@media (max-width: 900px) {
    body#tabs { --tt-topbar-h: 72px; --tt-content-top: 72px; }
    body#tabs .tt-menu-toggle { display: grid; }
    body#tabs .tt-collapse-toggle { display: none; }
}
@media (max-width: 600px) {
    body#tabs { --tt-topbar-h: 64px; --tt-content-top: 64px; }
    :is(body.inside-aside, body.inside-header) .content { padding: 20px 15px; }
    :is(body.inside-aside, body.inside-header) .form-commonsearch .form-group { flex: 1 1 100%; }
    body.tt-workspace-editor .content { padding: 0 15px 20px; }
    body.tt-workspace-editor form[role=form] { padding: 20px 16px; }
    body.tt-workspace-editor form[role=form] .form-group > .control-label,
    body.tt-drawer-editor .form-horizontal .control-label { flex-basis: 100%; width: 100%; padding: 0 0 8px; text-align: left; }
    body.tt-workspace-editor form[role=form] .form-group > .col-sm-8,
    body.tt-workspace-editor form[role=form] .form-group > .col-sm-10 { flex-basis: 100%; }
    body.tt-workspace-editor form[role=form] .form-group.layer-footer { padding-left: 0; }
}
/* The content iframe has a smaller viewport than the complete reference shell. */
:is(body.inside-aside, body.inside-header).tt-viewport-wide .content { padding:26px 30px 28px; }
:is(body.inside-aside, body.inside-header).tt-viewport-wide.is-dialog:not(.tenant-attachment-page) .content { padding:20px 24px; }
:is(body.inside-aside, body.inside-header).tt-viewport-wide.tt-workspace-editor .content { padding:26px 30px 28px; }

body.inside-aside.tenant-attachment-page.is-dialog .content { padding:0; min-height:0; }

/* A compact shared control rhythm, including legacy Bootstrap plugins. */
:is(body.inside-aside, body.inside-header) .form-control { height:36px; min-height:36px; padding:6px 11px; font-size:14px; color:var(--tt-text); border-color:var(--tt-input-border); border-radius:6px; box-shadow:none; }
:is(body.inside-aside, body.inside-header) textarea.form-control { height:auto; min-height:96px; line-height:1.7; }
:is(body.inside-aside, body.inside-header) select.form-control:not([multiple]) { appearance:none; padding-right:36px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23819087' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 6 3 3 3-3'/%3E%3C/svg%3E"); background-position:right 10px center; background-size:16px; background-repeat:no-repeat; }
:is(body.inside-aside, body.inside-header) select.form-control[multiple]:not(.selectpicker) { height:auto; min-height:104px; }
:is(body.inside-aside, body.inside-header) .sp_container .sp_input { height:36px; min-height:36px; font-size:14px; }
:is(body.inside-aside, body.inside-header) .form-control:focus { border-color:#168268; box-shadow:0 0 0 3px #16826812; }
:is(body.inside-aside, body.inside-header) .form-control:not(:focus):not([disabled]):not([readonly]):hover { border-color:#a6bfb0; }
:is(body.inside-aside, body.inside-header) .form-control[readonly] { background:#f6f8f7; }
:is(body.inside-aside, body.inside-header) .form-control:disabled { color:#96a198; background:#f6f8f7; border-color:#e3e9e5; cursor:not-allowed; }
:is(body.inside-aside, body.inside-header) .form-control.n-invalid { border-color:#d69a9a; }
:is(body.inside-aside, body.inside-header) .form-control.n-invalid:focus { box-shadow:0 0 0 3px #c4484812; }
:is(body.inside-aside, body.inside-header) .bootstrap-tagsinput { display:flex; flex-wrap:wrap; align-items:center; gap:6px; width:100%; min-height:36px; padding:5px 11px; border:1px solid var(--tt-input-border); border-radius:6px; color:var(--tt-text); background:#fff; box-shadow:none; font-size:14px; line-height:24px; }
:is(body.inside-aside, body.inside-header) .bootstrap-tagsinput:focus-within { border-color:#168268; box-shadow:0 0 0 3px #16826812; }
:is(body.inside-aside, body.inside-header) .bootstrap-tagsinput > input { flex:1 1 80px; min-width:80px; max-width:100%; height:24px; margin:0; padding:0; border:0; border-radius:0; color:inherit; background:transparent; box-shadow:none; font:inherit; outline:none; }
:is(body.inside-aside, body.inside-header) .bootstrap-tagsinput .tag { margin:0; padding:1px 6px; border-radius:4px; color:#356b54; background:#edf6f1; font-size:13px; line-height:20px; }
:is(body.inside-aside, body.inside-header) .input-group:not(.tt-image-control):has(> .input-group-addon :is(.plupload,.faupload)) { display:flex; align-items:center; gap:8px; }
:is(body.inside-aside, body.inside-header) .input-group:not(.tt-image-control):has(> .input-group-addon :is(.plupload,.faupload)) > .form-control { flex:1; width:0; min-width:0; border-radius:6px; }
:is(body.inside-aside, body.inside-header) .input-group:not(.tt-image-control):has(> .input-group-addon :is(.plupload,.faupload)) > .input-group-addon { display:flex; align-items:center; gap:8px; flex:none; width:auto; height:36px; padding:0; border:0; background:transparent; line-height:22px; white-space:nowrap; }
:is(body.inside-aside, body.inside-header) .input-group:not(.tt-image-control):has(> .input-group-addon :is(.plupload,.faupload)) .input-group-addon .btn { min-width:80px; height:36px; padding:6px 12px; border:1px solid var(--tt-input-border); border-radius:6px; background:#fff; color:#3d574b !important; }
:is(body.inside-aside, body.inside-header) .input-group:not(.tt-image-control):has(> .input-group-addon :is(.plupload,.faupload)) .input-group-addon .btn:is(:hover,:focus) { border-color:#9ebfaf; background:#f1f7f3; color:#126d57 !important; }
:is(body.inside-aside, body.inside-header) .btn { height:36px; border-radius:6px; line-height:22px; padding:6px 13px; box-shadow:none; transition:background-color .14s,border-color .14s,color .14s; }
:is(body.inside-aside, body.inside-header) .btn > .fa { font-size:13px; }
:is(body.inside-aside, body.inside-header) form[role=form] .btn-info { display:inline-flex; align-items:center; justify-content:center; gap:8px; color:#40594d; border:1px solid var(--tt-input-border); background:#fff; }
:is(body.inside-aside, body.inside-header) form[role=form] .btn-info:is(:hover,:focus) { color:#126d57; border-color:#9ebfaf; background:#f1f7f3; }
:is(body.inside-aside, body.inside-header) #btnFrontend::before { content:""; display:inline-block; width:15px; height:15px; background:currentColor; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7 .5l4-4a5 5 0 0 0-7-7l-2.3 2.3M14 11a5 5 0 0 0-7-.5l-4 4a5 5 0 0 0 7 7l2.3-2.3'/%3E%3C/svg%3E") center/contain no-repeat; }
:is(body.inside-aside, body.inside-header) .form-horizontal .radio { display:inline-flex; align-items:center; flex-wrap:wrap; gap:4px; max-width:100%; min-height:36px; margin:0; padding:2px; border:1px solid #e2e9e4; border-radius:8px; background:#f4f7f5; vertical-align:top; }
:is(body.inside-aside, body.inside-header) .form-horizontal .radio > label { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-width:68px; min-height:30px; margin:0; padding:3px 10px; border:1px solid transparent; border-radius:5px; color:#68786e; font-size:14px; line-height:22px; background:transparent; cursor:pointer; }
:is(body.inside-aside, body.inside-header) .form-horizontal .radio > label:has(input:checked) { border-color:#d1e2d8; color:#126d57; background:#fff; box-shadow:0 1px 3px #183f2910; }
:is(body.inside-aside, body.inside-header) .form-horizontal .radio > label:hover { color:#126d57; }
:is(body.inside-aside, body.inside-header) .form-horizontal .radio input[type=radio] { position:static; width:13px; height:13px; margin:0; accent-color:#168268; }
:is(body.inside-aside, body.inside-header) .form-horizontal label.radio:not(:has(input)) { display:block; height:auto; min-height:0; margin:0; padding:0; border:0; border-radius:0; color:var(--tt-text); background:transparent; box-shadow:none; font-weight:400; line-height:22px; }
:is(body.inside-aside, body.inside-header) .form-horizontal .checkbox { display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; min-height:36px; margin:0; padding:0; }
:is(body.inside-aside, body.inside-header) .form-horizontal :is(.checkbox > label,.checkbox-inline) { display:inline-flex; align-items:center; gap:8px; min-height:36px; margin:0; padding:6px 0; color:#52665a; font-size:14px; line-height:22px; cursor:pointer; }
:is(body.inside-aside, body.inside-header) .form-horizontal :is(.checkbox,.checkbox-inline) input[type=checkbox] { position:static; width:16px; height:16px; margin:0; accent-color:#168268; }
:is(body.inside-aside, body.inside-header) .form-horizontal :is(.radio,.checkbox) label:has(input:disabled) { color:#98a29b; cursor:not-allowed; box-shadow:none; }
:is(body.inside-aside, body.inside-header) .form-horizontal :is(.radio,.checkbox) label:focus-within { outline:2px solid #16826855; outline-offset:2px; }
:is(body.inside-aside, body.inside-header) .form-horizontal .help-block { color:var(--tt-muted); font-size:13px; line-height:21px; margin:6px 0 0; }
:is(body.inside-aside, body.inside-header) .form-horizontal label:has(+ div [data-rule*="required"])::after { content:" *"; color:#c36161; font-weight:400; }
:is(body.inside-aside, body.inside-header) .bootstrap-select > .dropdown-toggle { border:1px solid var(--tt-input-border); color:var(--tt-text); background:#fff; }
:is(body.inside-aside, body.inside-header) .dropdown-menu { padding:5px; border-color:var(--tt-border); border-radius:8px; box-shadow:0 8px 24px #163b3314; }
:is(body.inside-aside, body.inside-header) .dropdown-menu > li > a { padding:7px 11px; border-radius:4px; line-height:22px; font-size:14px; }
:is(body.inside-aside, body.inside-header) .dropdown-menu > li > a:hover { background:#eff6f2; color:#126d57; }

/* The page card and bordered sections follow the requested editing layout. */
.tt-form-section { margin:0 0 20px; padding:0; border:1px solid var(--tt-border); border-radius:8px; }
.tt-form-section > header { margin:0; padding:18px 20px; border-bottom:1px solid var(--tt-border); }
.tt-form-section h2 { margin:0; color:var(--tt-heading); font-size:16px; line-height:24px; font-weight:600; }
.tt-form-section header p { margin:4px 0 0; color:var(--tt-muted); font-size:13px; line-height:21px; }
.tt-form-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; padding:22px 20px; }
.tt-form-grid > .tt-field-wide { grid-column:1 / -1; }
:is(body.inside-aside, body.inside-header) form.tt-sectioned-form .tt-form-grid > .form-group { margin:0; min-width:0; }
:is(body.inside-aside, body.inside-header) form.tt-sectioned-form .tt-form-section > .form-group { margin:0; padding:22px 20px; }

/* One setting per row. Cap ordinary fields, while keeping content editors usable. */
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) {
    --tt-field-width:800px;
    --tt-field-height:40px;
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) .form-group:not(.layer-footer) > .control-label {
    display:block; float:none; width:100%; padding:0 0 8px; text-align:left;
    color:var(--tt-text); font-size:14px; font-weight:500; line-height:22px;
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) .form-group:not(.layer-footer) > div[class*="col-"] {
    float:none; width:100% !important; max-width:var(--tt-field-width) !important; min-width:0; padding:0;
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) .form-group:not(.layer-footer) > div:has(.editor,.edui-container,.fieldlist,table) {
    max-width:100% !important;
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) .form-group > div > :is(input.form-control:not([type=hidden]):not(.hide),textarea.form-control,select.form-control:not(.bs-select-hidden),.sp_container,.bootstrap-select,.el-select,.el-cascader,.el-date-editor,.input-group:not(.tt-image-control)) {
    width:100% !important; max-width:100%; min-width:0;
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) :is(input.form-control:not([type=hidden]):not(.hide),select.form-control:not([multiple]):not(.bs-select-hidden),.sp_input,.el-input__inner,.bootstrap-select > .dropdown-toggle) {
    box-sizing:border-box; height:var(--tt-field-height); min-height:var(--tt-field-height);
    padding-top:8px; padding-bottom:8px; font-size:14px; line-height:22px; border-radius:6px;
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) .bootstrap-select.form-control {
    height:var(--tt-field-height); min-height:var(--tt-field-height); padding:0;
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) :is(.sp_container,.bootstrap-tagsinput,.sp_element_box) {
    min-height:var(--tt-field-height);
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) .el-input__icon { line-height:var(--tt-field-height); }
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) .form-group > div:has(> #c-limit_time_hour) {
    display:flex; align-items:center; gap:10px;
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) :is(#c-limit_time_hour,#c-limit_time_minute) {
    flex:1 1 0; width:0 !important; min-width:0;
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) .form-group > div:has(> :is(#c-switch_screen_count,#c-switch_screen_second)) {
    display:flex; align-items:center; gap:10px;
}
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) :is(#c-switch_screen_count,#c-switch_screen_second) { flex:1; min-width:0; }
:is(body.inside-aside, body.inside-header) form[role=form]:not(.form-commonsearch) .help-block { max-width:var(--tt-field-width); margin-top:8px; }
body.tt-workspace-editor .edui-container .edui-body-container { min-height:180px !important; font-size:14px; }
body.tt-workspace-editor .edui-container .edui-toolbar { background:#fafcfb; }
body.tt-workspace-editor .edui-container .edui-toolbar .edui-btn-toolbar { padding:5px 7px; }
body.tt-workspace-editor .edui-container .edui-combobox { height:26px; line-height:24px; border-color:#e1e7e3; }
body.tt-workspace-editor .edui-container .edui-button { border-radius:4px; }

/* List actions share one size and outline; the create action carries the color. */
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .help-block { order:10; flex:1 0 100%; margin:2px 0 0; font-size:13px; line-height:21px; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn,
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn-group > .btn { margin:0; height:36px; min-width:84px; padding:6px 14px; border-radius:6px; line-height:22px; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn-refresh { width:36px; padding:6px 0; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn-refresh .fa { margin:0; }
:is(body.inside-aside, body.inside-header) .toolbar > .tt-table-tools { display:flex; flex:0 0 auto; align-items:center; order:9; margin-left:auto; border:1px solid var(--tt-input-border); border-radius:6px; background:#fff; }
:is(body.inside-aside, body.inside-header) .tt-table-tools > .tt-table-tool-buttons { display:flex; float:none; margin:0 !important; border-left:1px solid var(--tt-border); }
:is(body.inside-aside, body.inside-header) .tt-table-tools .btn { height:34px; min-height:34px; min-width:36px; margin:0; padding:0 10px; border:0; border-radius:0; background:transparent; color:#69766e; }
:is(body.inside-aside, body.inside-header) .tt-table-tools > .btn-refresh { width:36px; padding:0; }
:is(body.inside-aside, body.inside-header) .tt-table-tools > .btn-refresh .fa { margin:0; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn:not(.btn-add),
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn-group > .btn { color:#40594d !important; border-color:var(--tt-input-border); background:#fff; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn:not(.btn-add):is(:hover,:focus),
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn-group > .btn:is(:hover,:focus) { color:#126d57 !important; border-color:#9ebfaf; background:#f1f7f3; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn:is(.btn-del,.btn-delete):not(.disabled):not([disabled]) { color:#b85151 !important; border-color:#e9cdcd; background:#fff; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn:is(.btn-del,.btn-delete):not(.disabled):not([disabled]):is(:hover,:focus) { color:#a63c3c !important; border-color:#dca6a6; background:#fff4f3; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn:is(.disabled,[disabled],[aria-disabled=true]),
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn-group > .btn:is(.disabled,[disabled],[aria-disabled=true]) { opacity:1; color:#8d9992 !important; background:#f7f9f8; border-color:#e2e8e4; pointer-events:none; box-shadow:none; }
:is(body.inside-aside, body.inside-header) .btn:focus-visible { outline:2px solid #168268; outline-offset:2px; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar > .columns { display:flex; align-items:center; gap:0; padding:0; border:1px solid var(--tt-input-border); border-radius:6px; background:#fff; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .columns .btn { height:34px; min-height:34px; border:0; border-radius:0; background:transparent; color:#69766e; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .columns .btn-group > .btn:first-child,
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .columns .btn-group > .btn:last-child { border-radius:0; }
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .columns > .btn + .btn,
:is(body.inside-aside, body.inside-header) .bootstrap-table:not(.ta-panel *) > .fixed-table-toolbar .columns > .btn + .btn-group { border-left:1px solid var(--tt-border); }
:is(body.inside-aside, body.inside-header) .panel-intro > .panel-heading { padding:0 20px; border-bottom:1px solid var(--tt-border); background:#fff; }
:is(body.inside-aside, body.inside-header) .panel-intro > .panel-heading .nav-tabs { display:flex; flex-wrap:wrap; gap:28px; padding:0; margin:0; border:0; border-radius:0; background:transparent; }
:is(body.inside-aside, body.inside-header) .panel-intro:not(.ta-panel) > .panel-heading .nav-tabs::before,
:is(body.inside-aside, body.inside-header) .panel-intro:not(.ta-panel) > .panel-heading .nav-tabs::after { display:none; }
:is(body.inside-aside, body.inside-header) .panel-intro > .panel-heading .nav-tabs > li { float:none; margin:0; }
:is(body.inside-aside, body.inside-header) .panel-intro > .panel-heading .nav-tabs > li > a { position:relative; padding:17px 0 16px; margin:0; border:0; border-radius:0; color:#7b847e; font-size:14px; line-height:22px; background:transparent; }
:is(body.inside-aside, body.inside-header) .panel-intro > .panel-heading .nav-tabs > li > a::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; border-radius:2px; background:transparent; transition:background-color .16s; }
:is(body.inside-aside, body.inside-header) .panel-intro > .panel-heading .nav-tabs > li > a:hover { color:#2d6550; background:transparent; }
:is(body.inside-aside, body.inside-header) .panel-intro > .panel-heading .nav-tabs > li.active > a { color:#176d55; background:transparent; box-shadow:none; font-weight:600; }
:is(body.inside-aside, body.inside-header) .panel-intro > .panel-heading .nav-tabs > li.active > a::after { background:#168268; }
:is(body.inside-aside, body.inside-header) .table thead { background:#f7f9f8; color:#657269; }
:is(body.inside-aside, body.inside-header) .table > tbody > tr > td { font-size:14px; }
@media (max-width:760px) {
    .tt-form-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
    body.tt-workspace-editor form[role=form] { padding:22px 20px 0; }
    body.tt-workspace-editor .content { padding-left:20px; padding-right:20px; }
}
@media (prefers-reduced-motion:reduce) { :is(body.inside-aside, body.inside-header) .btn { transition:none; } }

:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn-add { order:-2; padding:6px 16px; box-shadow:none; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn-add + .btn { margin-left:0; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn-refresh { order:9; min-width:36px; margin-left:auto; color:#65786c; }
:is(body.inside-aside, body.inside-header) .toolbar:not(.ta-panel *) > .btn-refresh:hover { background:#f1f5f2; }
body.is-dialog.tt-workspace-editor { background:var(--tt-canvas); }
/* Layer uses its normal close lifecycle, with a directional animation on both ends. */
.layui-layer.tt-form-drawer { animation:tt-drawer-enter .26s cubic-bezier(.22,.68,0,1.01) both !important; box-shadow:-12px 0 40px #102e2918; }
.layui-layer.tt-form-drawer.layer-anim-close { animation:tt-drawer-exit .2s ease-in both !important; }
@keyframes tt-drawer-enter { from { opacity:.5; transform:translateX(100%); } to { opacity:1; transform:translateX(0); } }
@keyframes tt-drawer-exit { from { opacity:1; transform:translateX(0); } to { opacity:.3; transform:translateX(100%); } }
@media (prefers-reduced-motion:reduce) { .layui-layer.tt-form-drawer,.layui-layer.tt-form-drawer.layer-anim-close { animation-duration:.01ms !important; } }

/* Match the existing workspace's stroke icons on list tools. */
:is(body.inside-aside, body.inside-header) :is(.toolbar,.input-group-addon:not(.tt-image-control *)) .btn > .fa:is(.fa-plus,.fa-refresh,.fa-pencil,.fa-trash,.fa-recycle,.fa-cog,.fa-upload,.fa-list) { display:inline-block; flex:none; width:14px; height:14px; margin:0; vertical-align:middle; }
:is(body.inside-aside, body.inside-header) :is(.toolbar,.input-group-addon:not(.tt-image-control *)) .btn > .fa:is(.fa-plus,.fa-refresh,.fa-pencil,.fa-trash,.fa-recycle,.fa-cog,.fa-upload,.fa-list)::before { content:""; display:block; width:14px; height:14px; background:currentColor; mask:var(--tt-tool-icon) center/contain no-repeat; -webkit-mask:var(--tt-tool-icon) center/contain no-repeat; }
:is(body.inside-aside, body.inside-header) .toolbar .fa-plus { --tt-tool-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%205v14M5%2012h14%27%2F%3E%3C%2Fsvg%3E"); }
:is(body.inside-aside, body.inside-header) .toolbar .fa-refresh { --tt-tool-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M20%207v5h-5M4%2017v-5h5%27%2F%3E%3Cpath%20d%3D%27M19%208a8%208%200%200%200-13-2l-2%202m16%208-2%202A8%208%200%200%201%205%2016%27%2F%3E%3C%2Fsvg%3E"); }
:is(body.inside-aside, body.inside-header) .toolbar .fa-pencil { --tt-tool-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27m15%204%205%205M4%2020l5-1L20%208a3.5%203.5%200%200%200-5-5L4%2014v6Z%27%2F%3E%3C%2Fsvg%3E"); }
:is(body.inside-aside, body.inside-header) .toolbar .fa-trash { --tt-tool-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%206h18M5%206l1%2015h12l1-15M9%206V3h6v3m-5%204v7m4-7v7%27%2F%3E%3C%2Fsvg%3E"); }
:is(body.inside-aside, body.inside-header) .toolbar .fa-recycle { --tt-tool-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%208h16v13H4zM3%203h18v5H3zM9%2012h6%27%2F%3E%3C%2Fsvg%3E"); }
:is(body.inside-aside, body.inside-header) .toolbar .fa-cog { --tt-tool-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%275%27%20cy%3D%2712%27%20r%3D%271%27%2F%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%271%27%2F%3E%3Ccircle%20cx%3D%2719%27%20cy%3D%2712%27%20r%3D%271%27%2F%3E%3C%2Fsvg%3E"); }
:is(body.inside-aside, body.inside-header) :is(.toolbar,.input-group-addon) .fa-upload { --tt-tool-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V3m-5 5 5-5 5 5M4 16v5h16v-5'/%3E%3C/svg%3E"); }
:is(body.inside-aside, body.inside-header) .input-group-addon .fa-list { --tt-tool-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01'/%3E%3C/svg%3E"); }

/* SelectPage attaches menus to body; keep its actions visible and evenly spaced. */
:is(body.inside-aside, body.inside-header) .sp_result_area { min-width:min(320px,calc(100vw - 32px)); max-width:calc(100vw - 32px); border:1px solid var(--tt-input-border); border-radius:8px; box-shadow:0 8px 24px #163b331a; }
:is(body.inside-aside, body.inside-header) .sp_control_box { display:flex; align-items:center; gap:6px; height:auto; min-height:52px; padding:8px; border-bottom:1px solid var(--tt-border); background:#f8faf9; }
:is(body.inside-aside, body.inside-header) .sp_control_box > p { display:none; }
:is(body.inside-aside, body.inside-header) .sp_control_box > button.btn { display:inline-flex; flex:1; align-items:center; justify-content:center; gap:6px; float:none; min-width:0; height:36px; min-height:36px; margin:0; padding:6px 7px; border:1px solid var(--tt-input-border); border-radius:6px; background:#fff; color:#40594d; font-size:14px !important; line-height:22px; opacity:1; transition:background-color .14s,border-color .14s,color .14s; }
:is(body.inside-aside, body.inside-header) .sp_control_box > button.btn:is(:hover,:focus) { border-color:#9ebfaf; background:#eff7f2; color:#126d57; opacity:1; }
:is(body.inside-aside, body.inside-header) .sp_control_box > button.btn:focus-visible { outline:2px solid #168268 !important; outline-offset:1px; }
:is(body.inside-aside, body.inside-header) .sp_control_box .spfont { flex:none; font-size:14px; line-height:14px; }
:is(body.inside-aside, body.inside-header) .sp_control_box .sp_select_all { order:0; }
:is(body.inside-aside, body.inside-header) .sp_control_box .sp_select_all::after { content:"全选本页"; }
:is(body.inside-aside, body.inside-header) .sp_control_box .sp_unselect_all { order:1; }
:is(body.inside-aside, body.inside-header) .sp_control_box .sp_unselect_all::after { content:"取消本页"; }
:is(body.inside-aside, body.inside-header) .sp_control_box .sp_clear_all { order:2; }
:is(body.inside-aside, body.inside-header) .sp_control_box .sp_clear_all::after { content:"清空已选"; }
:is(body.inside-aside, body.inside-header) .sp_results { padding:6px; }
:is(body.inside-aside, body.inside-header) .sp_results > li { min-height:36px; padding:7px 32px 7px 10px; color:var(--tt-text); font-size:14px; font-weight:400; line-height:22px; border-radius:5px; }
:is(body.inside-aside, body.inside-header) .sp_results > li.sp_over { background:#eef6f1 !important; color:#126d57 !important; }
:is(body.inside-aside, body.inside-header) .sp_results > li.sp_selected { color:#126d57; background:#e9f4ee; font-weight:500; }
:is(body.inside-aside, body.inside-header) .sp_results > li.sp_selected::after { position:absolute; top:50%; right:12px; transform:translateY(-50%); content:"✓"; color:#168268; font-size:15px; }
:is(body.inside-aside, body.inside-header) .sp_result_area .sp_pagination { height:36px; padding:3px 6px; border-top:1px solid var(--tt-border); }
:is(body.inside-aside, body.inside-header) .sp_result_area .sp_pagination > ul { display:flex; align-items:center; }
:is(body.inside-aside, body.inside-header) .sp_result_area .sp_pagination > ul > li { flex:none; }
:is(body.inside-aside, body.inside-header) .sp_result_area .sp_pagination > ul > li > a { float:none; display:block; height:28px; border-radius:4px; line-height:28px; color:#52665a; }
:is(body.inside-aside, body.inside-header) .sp_result_area .sp_pagination > ul > li.disabled > a { color:#8c9991; background:#fff; }
:is(body.inside-aside, body.inside-header) .sp_result_area .sp_pagination > ul > li.pageInfoBox { flex:1; min-width:0; }
:is(body.inside-aside, body.inside-header) .sp_result_area .sp_pagination > ul > li.pageInfoBox > a { width:auto; font-size:12px; }

.tt-form-caption { position:relative; margin:0 0 20px; padding:12px 0 15px; border-bottom:1px solid var(--tt-border); color:#168268; font-size:14px; font-weight:500; line-height:22px; }
.tt-form-caption::after { content:""; position:absolute; bottom:-1px; left:0; width:56px; height:2px; background:#168268; border-radius:2px; }
/* 更多按钮：用齿轮图标替换横向省略号 */
:is(body.inside-aside, body.inside-header) .toolbar .btn-more .fa-cog { --tt-tool-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.7'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'12'%20cy%3D'12'%20r%3D'3'%2F%3E%3Cpath%20d%3D'M19.4%2015a1.7%201.7%200%200%200%20.3%201.9l.1.1a2%202%200%201%201-2.8%202.8l-.1-.1a1.7%201.7%200%200%200-1.9-.3%201.7%201.7%200%200%200-1%201.5V21a2%202%200%201%201-4%200v-.1a1.7%201.7%200%200%200-1-1.6%201.7%201.7%200%200%200-1.9.3l-.1.1a2%202%200%201%201-2.8-2.8l.1-.1a1.7%201.7%200%200%200%20.3-1.9%201.7%201.7%200%200%200-1.5-1H3a2%202%200%201%201%200-4h.1a1.7%201.7%200%200%200%201.6-1%201.7%201.7%200%200%200-.3-1.9l-.1-.1a2%202%200%201%201%202.8-2.8l.1.1a1.7%201.7%200%200%200%201.9.3H9a1.7%201.7%200%200%200%201-1.5V3a2%202%200%201%201%204%200v.1a1.7%201.7%200%200%200%201%201.5%201.7%201.7%200%200%200%201.9-.3l.1-.1a2%202%200%201%201%202.8%202.8l-.1.1a1.7%201.7%200%200%200-.3%201.9V9a1.7%201.7%200%200%200%201.5%201H21a2%202%200%201%201%200%204h-.1a1.7%201.7%200%200%200-1.5%201Z'%2F%3E%3C%2Fsvg%3E"); }

