@charset "UTF-8";

/*
 * WebADM WebApps - Classic Theme
 *
 * The original WebADM look (Arial 11px, grey footer) with the new form controls. The colors
 * and metrics are exposed as CSS variables below (see lib/htdocs/themes/README.md).
 */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
        margin: 0;
        padding: 0;
        border: 0;
        font-family: inherit;
        font-size: inherit;
}
* {
        box-sizing: border-box;
}

.red{ color: #d40000; }
.blue{ color: blue; }
.grey{ color: #767676; }
.green{ color: green; }
.b{ font-weight:bold; }
.big{ font-size:13px; }
.center{ text-align:center; }
.nobr{ white-space:nowrap; }

/* design tokens: every theme defines the same --wa-* variables (see themes/README.md) */
:root {
        --wa-font: Arial, Helvetica, sans-serif;
        --wa-font-title: Helvetica Neue, Helvetica, Arial, sans-serif;
        --wa-font-size: 12px;
        --wa-line-height: 160%;
        --wa-bg: #faf5ee;
        --wa-bg-image: none;
        --wa-surface: #ffffff;
        --wa-surface-2: #f7f7f7;
        --wa-surface-3: #eeeeee;
        --wa-border: #dddddd;
        --wa-border-strong: #cccccc;
        --wa-border-hover: #aaaaaa;
        --wa-text: #333333;
        --wa-text-2: #555555;
        --wa-muted: #999999;
        --wa-primary: #1E90FF;
        --wa-primary-hover: #1C85EE;
        --wa-primary-soft: rgba(30, 144, 255, 0.08);
        --wa-accent: #FFA500;
        --wa-accent-hover: #FF8C00;
        --wa-success: #32CD32;
        --wa-success-hover: #22BD22;
        --wa-success-soft: #eefbee;
        --wa-danger: #FF6347;
        --wa-danger-hover: #FF4500;
        --wa-danger-soft: #fff1ee;
        --wa-warning: #FFA500;
        --wa-warning-hover: #FF6A05;
        --wa-warning-soft: #fff6e5;
        --wa-switch-on: var(--wa-primary);
        --wa-field-width: 200px;
        --wa-field-short: 100px;
        --wa-field-wide: 300px;
        --wa-radius: 6px;
        --wa-radius-lg: 5px;
        --wa-ring: 0 0 0 3px rgba(30, 144, 255, 0.2);
        --wa-focus: 0 0 0 2px #ffffff, 0 0 0 4px var(--wa-primary);
        --wa-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
        --wa-shadow: 0px 1px 4px 0px rgba(128, 128, 128, 0.3);
}

/* ----------------------------------------------------------- form inputs */

:where(input[type="text"], input[type="password"], input[type="email"], input[type="tel"],
       input[type="number"], input[type="search"], input[type="url"], input[type="date"],
       input[type="time"], input[type="datetime-local"], input:not([type]), select, textarea) {
        font-family: inherit;
        font-size: var(--wa-font-size);
        font-weight: normal;
        line-height: 1.35;
        color: var(--wa-text);
        min-height: 30px;
        padding: 6px 10px;
        margin: 2px 0;
        vertical-align: middle;
        background-color: var(--wa-surface);
        border: 1px solid var(--wa-border-strong);
        border-radius: var(--wa-radius);
        box-shadow: var(--wa-shadow-sm);
        outline: none;
        transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
}
:where(input[type="text"], input[type="password"], input[type="email"], input[type="tel"],
       input[type="number"], input[type="search"], input[type="url"], input[type="date"],
       input[type="time"], input[type="datetime-local"], input:not([type]), select, textarea):hover {
        border-color: var(--wa-border-hover);
}
:where(input[type="text"], input[type="password"], input[type="email"], input[type="tel"],
       input[type="number"], input[type="search"], input[type="url"], input[type="date"],
       input[type="time"], input[type="datetime-local"], input:not([type]), select, textarea):focus {
        outline: 2px solid transparent;
        border-color: var(--wa-primary);
        box-shadow: var(--wa-ring);
}
:where(input[type="text"], input[type="password"], input[type="email"], input[type="tel"],
       input[type="number"], input[type="search"], input[type="url"], input[type="date"],
       input[type="time"], input[type="datetime-local"], input:not([type]), select, textarea):disabled {
        color: var(--wa-muted);
        background-color: var(--wa-surface-2);
        border-color: var(--wa-border);
        box-shadow: none;
        cursor: not-allowed;
}
:where(input[readonly], textarea[readonly]) {
        background-color: var(--wa-surface-2);
}
::placeholder {
        color: #767676;
        opacity: 1;
}
:where(textarea) {
        resize: vertical;
        min-height: 72px;
}

:where(select) {
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        cursor: pointer;
        padding-right: 32px;
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" stroke="%236b7280" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M6 8l4 4 4-4"/></svg>');
        background-repeat: no-repeat;
        background-position: right 9px center;
        background-size: 16px;
}
:where(select[multiple], select[size]:not([size="1"])) {
        padding-right: 10px;
        background-image: none;
}

:where(input[type="file"]) {
        font-family: inherit;
        font-size: var(--wa-font-size);
        color: var(--wa-text-2);
}
:where(input[type="file"])::file-selector-button {
        font-family: inherit;
        font-size: 12px;
        font-weight: 600;
        color: var(--wa-text);
        margin-right: 10px;
        padding: 6px 12px;
        cursor: pointer;
        background: var(--wa-surface);
        border: 1px solid var(--wa-border-strong);
        border-radius: var(--wa-radius);
        transition: background-color 0.15s, border-color 0.15s;
}
:where(input[type="file"])::file-selector-button:hover {
        background: var(--wa-surface-2);
        border-color: var(--wa-border-hover);
}

/* radios & checkboxes (drawn without pseudo-elements for broad support) */
:where(input[type="radio"], input[type="checkbox"]) {
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        width: 17px;
        height: 17px;
        margin: 0 5px 0 0;
        vertical-align: -4px;
        cursor: pointer;
        background-color: var(--wa-surface);
        background-repeat: no-repeat;
        background-position: center;
        border: 1.5px solid var(--wa-border-strong);
        box-shadow: var(--wa-shadow-sm);
        transition: border-color 0.15s, background-color 0.15s, box-shadow 0.15s;
}
:where(input[type="radio"]) {
        border-radius: 50%;
}
:where(input[type="checkbox"]) {
        border-radius: 5px;
}
:where(input[type="radio"], input[type="checkbox"]):hover {
        border-color: var(--wa-primary);
}
:where(input[type="radio"]):checked {
        border-color: var(--wa-primary);
        box-shadow: inset 0 0 0 4px var(--wa-primary);
}
:where(input[type="checkbox"]):checked {
        border-color: var(--wa-primary);
        background-color: var(--wa-primary);
        background-size: 11px;
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 10" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 5.2l3.2 3L11 1.5"/></svg>');
}
:where(input[type="radio"], input[type="checkbox"]):focus-visible {
        outline: 2px solid transparent;
        border-color: var(--wa-primary);
        box-shadow: var(--wa-focus);
}
:where(input[type="radio"]):checked:focus-visible {
        box-shadow: inset 0 0 0 4px var(--wa-primary), var(--wa-focus);
}
:where(input[type="radio"], input[type="checkbox"]):disabled {
        opacity: 0.45;
        cursor: not-allowed;
}

/* native checkbox switch: <input type="checkbox" class="switch"> or role="switch" */
:where(input[type="checkbox"].switch, input[type="checkbox"][role="switch"]) {
        width: 36px;
        height: 20px;
        border: 0;
        border-radius: 999px;
        vertical-align: -5px;
        background-color: var(--wa-border-strong);
        background-size: 20px 20px;
        background-position: left center;
        background-image: radial-gradient(circle, #fff 0 7px, transparent 7.5px);
        box-shadow: inset 0 1px 2px rgba(16, 24, 40, 0.12);
        transition: background-color 0.2s, background-position 0.2s;
}
:where(input[type="checkbox"].switch, input[type="checkbox"][role="switch"]):checked {
        background-color: var(--wa-switch-on);
        background-size: 20px 20px;
        background-position: right center;
        background-image: radial-gradient(circle, #fff 0 7px, transparent 7.5px);
}

/* the main field of a form cell (alone, or followed by buttons and help) gets the standard width */
:where(td.body td > :is(input[type="text"], input[type="password"], input[type="email"], input[type="tel"], input:not([type]), select):not(.widget_field, [style*="width"], [size], .widget_plain *):first-child:only-of-type,
       td.body td > .widget_password:first-child > input:not(.widget_field, [style*="width"], [size], .widget_plain *)) {
        min-width: var(--wa-field-width);
}

/* ------------------------------------------------------ framework widgets */
/* markup produced by widget_frm.php (webapp_*); webapps/jstheme.js upgrades legacy radios to the same structure */

/* switch: webapp_switch() */
.widget_switch {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        vertical-align: middle;
        margin-right: 6px;
        cursor: pointer;
        user-select: none;
        -webkit-user-select: none;
}
.widget_switch input {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: 0;
        opacity: 0;
        pointer-events: none;
}
.widget_switch input[type="radio"] {
        display: none;
}
.widget_switch_slider {
        position: relative;
        flex: none;
        width: 38px;
        height: 22px;
        border-radius: 999px;
        background: var(--wa-border-strong);
        box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
        transition: background-color 0.2s, box-shadow 0.2s;
}
.widget_switch_slider::after {
        content: "";
        position: absolute;
        top: 3px;
        left: 3px;
        width: 16px;
        height: 16px;
        border-radius: 50%;
        background: #fff;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
        transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.widget_switch input:checked + .widget_switch_slider {
        background: var(--wa-switch-on);
}
.widget_switch input:checked + .widget_switch_slider::after {
        transform: translateX(16px);
}
.widget_switch:hover input:not(:disabled) + .widget_switch_slider {
        box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12), 0 0 0 4px rgba(0, 0, 0, 0.05);
}
.widget_switch input:focus-visible + .widget_switch_slider {
        box-shadow: var(--wa-focus);
}
.widget_switch.disabled {
        cursor: not-allowed;
        opacity: 0.5;
}
.widget_switch_title {
        color: var(--wa-text-2);
}
.widget_switch .widget_switch_state {
        display: none;
}
.widget_switch .widget_switch_state:is(.selected, :has(> input:checked)) {
        display: inline;
}

/* radio group: webapp_radios(), inline segmented control or 'list' of option cards */
.widget_radios {
        display: inline-flex;
        flex-wrap: wrap;
        min-height: 30px;
        gap: 2px;
        padding: 3px;
        margin: 2px 6px 2px 0;
        vertical-align: middle;
        background: var(--wa-surface-3);
        border-radius: 10px;
}
.widget_radio {
        display: inline-flex;
        align-items: center;
        padding: 4px 11px;
        line-height: 1.3;
        white-space: nowrap;
        color: var(--wa-text-2);
        cursor: pointer;
        border-radius: 7px;
        transition: background-color 0.15s, color 0.15s, box-shadow 0.15s, border-color 0.15s;
        user-select: none;
        -webkit-user-select: none;
}
.widget_radios:not(.widget_radios_list) .widget_radio input {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: 0;
        opacity: 0;
        pointer-events: none;
}
.widget_radio:hover {
        color: var(--wa-text);
        background: rgba(255, 255, 255, 0.55);
}
.widget_radio:is(.selected, :has(> input:checked)) {
        color: var(--wa-primary);
        font-weight: bold;
        background: var(--wa-surface);
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.04);
}
.widget_radio.focused {
        box-shadow: var(--wa-focus);
}
.widget_radio:is(.disabled, :has(> input:disabled)) {
        cursor: not-allowed;
        opacity: 0.5;
}
.widget_radio:is(.disabled, :has(> input:disabled)):hover {
        background: none;
}
.widget_radio:is(.disabled, :has(> input:disabled)):is(.selected, :has(> input:checked)):hover {
        background: var(--wa-surface);
}
.widget_radios_list {
        display: flex;
        flex-direction: column;
        min-height: 0;
        gap: 6px;
        padding: 0;
        margin: 2px 0;
        background: none;
        border-radius: 0;
}
.widget_radios_list .widget_radio {
        display: flex;
        gap: 4px;
        padding: 8px 12px;
        white-space: normal;
        background: var(--wa-surface);
        border: 1px solid var(--wa-border);
        border-radius: 8px;
}
.widget_radios_list .widget_radio input {
        flex: none;
        margin: 0 6px 0 0;
        vertical-align: 0;
}
.widget_radios_list .widget_radio:hover {
        color: var(--wa-text-2);
        border-color: var(--wa-border-hover);
        background: var(--wa-surface-2);
}
.widget_radios_list .widget_radio:is(.disabled, :has(> input:disabled)):hover {
        border-color: var(--wa-border);
        background: var(--wa-surface);
}
.widget_radios_list .widget_radio:is(.selected, :has(> input:checked)) {
        color: var(--wa-text);
        font-weight: normal;
        border-color: var(--wa-primary);
        background: var(--wa-primary-soft);
        box-shadow: inset 0 0 0 1px var(--wa-primary);
}
.widget_radios_list .widget_radio.focused {
        box-shadow: inset 0 0 0 1px var(--wa-primary), var(--wa-focus);
}

/* form fields: webapp_field() sizes */
.widget_field {
        width: var(--wa-field-width);
}
.widget_field_short {
        width: var(--wa-field-short);
}
.widget_field_wide {
        width: var(--wa-field-wide);
}
.widget_field_full {
        width: 100%;
}
.widget_field_auto {
        width: auto;
}

/* form rows: webapp_row() and webapp_section() in a widget_form table */
td.widget_label {
        padding-right: 10px;
        white-space: nowrap;
}
td.widget_section {
        font-weight: bold;
        padding: 8px 0 4px 0;
}
/* section marker: webapp_section() and legacy section titles (h1 alone in a full-width cell) */
td.widget_section::before, :where(td.body td[colspan] > h1:only-child:not(.widget_plain *))::before {
        content: "";
        display: inline-block;
        width: 3px;
        height: 11px;
        margin: 0 7px 1px 0;
        vertical-align: middle;
        border-radius: 2px;
        background: var(--wa-primary);
}

/* action tiles: webapp_actions() */
.widget_actions {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin: 4px 0;
}
.widget_action {
        position: relative;
        display: flex;
}
.widget_action_link {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 4px;
        padding: 0 4px;
        text-align: center;
        white-space: nowrap;
}
.widget_action_icon {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 36px;
}
.widget_action_icon img {
        min-width: 24px;
        max-width: 48px;
        max-height: 36px;
}
a.widget_action_link .widget_action_title {
        color: #02E;
}
a.widget_action_link:hover {
        text-decoration: none;
}
a.widget_action_link:hover .widget_action_title {
        color: #E03;
        text-decoration: underline;
}
.widget_action > .widget_help {
        position: absolute;
        top: 0;
        right: -8px;
}
.widget_action.disabled .widget_action_icon img {
        opacity: 0.4;
}
.widget_action.disabled .widget_action_title {
        color: #767676;
}

/* status: webapp_status() */
.widget_status {
        font-weight: bold;
}
.widget_status_success {
        color: green;
}
.widget_status_error {
        color: #d40000;
}
.widget_status_warning {
        color: #b34700;
}
.widget_status_info {
        color: blue;
}

/* a help icon and the content just before it, kept on one line by webapps/jstheme.js */
.widget_nowrap {
        white-space: nowrap;
}
:where(.widget_nowrap > *) {
        white-space: normal;
}

/* help icon: webapp_help(), a button with a tooltip */
.widget_help {
        display: inline-block;
        margin: 0 0 0 3px;
        padding: 0;
        vertical-align: middle;
        line-height: 0;
        font: inherit;
        color: inherit;
        background: none;
        border: 0;
        border-radius: 50%;
        cursor: help;
        -webkit-appearance: none;
        appearance: none;
}
.widget_help img {
        width: 13px;
}
.widget_help:focus-visible {
        outline: 2px solid transparent;
        box-shadow: var(--wa-focus);
}

/* text with a tooltip: webapp_popup() */
.widget_popup {
        margin: 0;
        padding: 0;
        font: inherit;
        color: inherit;
        text-align: inherit;
        background: none;
        border: 0;
        border-bottom: 1px dotted currentColor;
        cursor: help;
        -webkit-appearance: none;
        appearance: none;
}
.widget_popup:focus-visible {
        outline: 2px solid transparent;
        box-shadow: var(--wa-focus);
}

/* result boxes: render_success() and render_error() (__render_webapp_page), the theme draws the
   icons (the framework error image is hidden) */
div.widget_result {
        text-align: center;
}
.widget_result_error, .widget_result_success {
        width: 300px;
        display: inline-block;
        padding: 22px 18px 20px 18px;
        color: #333;
        font-size: 12px;
        text-align: center;
        word-wrap: break-word;
}
.widget_result_icon {
        width: 54px;
        height: 54px;
        margin: 0 auto 14px;
        border-radius: 50%;
}
.widget_result_icon img {
        display: none;
}
.widget_result_icon::before {
        content: "";
        display: block;
        width: 100%;
        height: 100%;
        background-color: currentColor;
}
.widget_result_error .widget_result_icon {
        color: #e5484d;
        background-color: #fdecec;
}
.widget_result_error .widget_result_icon::before {
        -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42 42"><defs><mask id="m"><rect width="42" height="42" fill="white"/><rect x="18.5" y="8.5" width="5" height="16" rx="2.5" fill="black"/><circle cx="21" cy="31" r="3" fill="black"/></mask></defs><circle cx="21" cy="21" r="21" mask="url(%23m)"/></svg>') center / 34px no-repeat;
        mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42 42"><defs><mask id="m"><rect width="42" height="42" fill="white"/><rect x="18.5" y="8.5" width="5" height="16" rx="2.5" fill="black"/><circle cx="21" cy="31" r="3" fill="black"/></mask></defs><circle cx="21" cy="21" r="21" mask="url(%23m)"/></svg>') center / 34px no-repeat;
}
.widget_result_success .widget_result_icon {
        color: #2f9e44;
        background-color: #e9f7ec;
}
.widget_result_success .widget_result_icon::before {
        -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42 42"><defs><mask id="m"><rect width="42" height="42" fill="white"/><path d="M12 21.5l6 6 12-12.5" fill="none" stroke="black" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/></mask></defs><circle cx="21" cy="21" r="21" mask="url(%23m)"/></svg>') center / 34px no-repeat;
        mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42 42"><defs><mask id="m"><rect width="42" height="42" fill="white"/><path d="M12 21.5l6 6 12-12.5" fill="none" stroke="black" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/></mask></defs><circle cx="21" cy="21" r="21" mask="url(%23m)"/></svg>') center / 34px no-repeat;
}
.widget_result_buttons {
        margin-top: 16px;
}
/* standalone boxes: a thin top edge in the state color */
div.frame.widget_result_error {
        border-top: 3px solid #e5484d;
}
div.frame.widget_result_success {
        border-top: 3px solid #2f9e44;
}

/* ------------------------------------------------ password show/hide button (jstheme.js) */

.widget_password {
        position: relative;
        display: inline-block;
        vertical-align: middle;
}
.widget_password input {
        padding-right: 34px;
}
.widget_password_toggle {
        position: absolute;
        top: 50%;
        right: 4px;
        width: 26px;
        height: 24px;
        margin-top: -12px;
        padding: 0;
        font-size: 13px;
        line-height: 24px;
        color: var(--wa-muted);
        cursor: pointer;
        background: none;
        border: 0;
        border-radius: 6px;
        transition: color 0.15s, background-color 0.15s;
}
.widget_password_toggle:hover {
        color: var(--wa-text);
        background: var(--wa-surface-3);
}
.widget_password_toggle:focus-visible {
        outline: 2px solid transparent;
        box-shadow: var(--wa-focus);
}

th, td {
        vertical-align: middle;
        padding: 2px;
}
p {
        text-align: justify;
}
ul, ol {
        padding: 5px;
        margin-left: 10px;
}
ul li, ol li {
        padding: 2px;
        margin-left: 10px;
}
small {
        font-size: 9px;
}
big {
        font-size: 13px;
}
a {
        text-decoration: none;
        color: #02E;
}
a:hover, a:active, a:focus {
        color: #E03;
        text-decoration: underline;
}

html, body {
        font-family: Arial, Helvetica, sans-serif;
        color: #444;
        height: 100%;
}
body.boxed {
        background-color: var(--wa-bg);
        background-image: var(--wa-bg-image);
        line-height: 160%;
        font-size: 11px;
}
body.fullpage {
        background-color: white;
        line-height: 160%;
        font-size: 11px;
}

table.middle {
        width: 100%;
        height: 75%;
        padding: 20px;
}

div.home {
        font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
        color: #5b6166;
        padding: 20px 20px 0 20px;
        margin: 0 auto;
        background-color: white;
        display: inline-block;
        line-height: 125%;
}
div.boxed {
        overflow: hidden;
        border: 1px solid #ddd;
        border-radius: 5px;
        box-shadow: 0px 1px 4px 0px rgba(128,128,128,0.3);
}
div.fullpage {
        height: 100%;
}
div.home h1 {
        font-size: 18px;
        font-weight: 300;
        text-align: center;
        color: #5b6166;
        padding: 5px 20px 5px 20px;
}
div.home h2 {
        font-size: 11px;
        font-weight: 300;
        text-align: center;
        color: #5b6166;
        padding: 2px 20px 15px 20px;
}
div.home h2 a {
        color: #5b6166;
        text-decoration: none;
}
div.home ul {
        width: 400px;
        list-style: none;
        margin: 0;
        padding: 0;
}
div.home ul li {
        border-top: 1px solid #dce0e6;
        padding-right: 10px;
        margin: 0;
        text-align: left;
}
div.home ul li:hover {
        background-color: #fafafa;
}
div.home span.icon {
        display: inline-block;
        width: 40px;
        padding: 12px 0 0 8px;
        vertical-align: top;
}
div.home span.title {
        font-size: 14px;
        color: #555;
}
div.home span.help {
        font-size: 11px;
        padding-top: 5px;
        line-height: 16px;
}
div.home ul li a {
        text-decoration: none;
        display: inline-block;
        padding: 15px 15px 10px 15px;
        width: 340px;
}
div.home ul li a>span {
        display: block;
        width: 95%;
        font-size: 11px;
        color: #868686;
}
div.home a.arrow {
        background:url('../../images/arrow.png') no-repeat right;
}
div.noapp {
        font-size: 13px;
        padding: 0 20px 30px 20px;
}
div.links {
        margin: 0 -20px 0 -20px;
}
div.links a {
        font-size: 11px;
        font-weight: 300;
        text-decoration: none;
        padding: 9px 10px 9px 10px;
        background-color: #999;
        width: 50%;
        color: white;
}
div.links a.admin {
        float: left;
        text-align: center;
}
div.links a.websrv {
        float: right;
        text-align: center;
}
div.links a .fa {
        font-size: 1.1em;
        padding-right: 8px;
}
div.links a:hover, div.links a:focus, div.links a:active {
        background-color: #FDBC00;
}
div.footer {
        color: white;
        font-size: 11px;
        text-align: right;
        font-weight: 300;
        padding: 9px 10px 9px 10px;
        margin: 0 -20px 0 -20px;
        background-color: #999;
}
div.footer a {
        text-decoration: none;
        color: #FFE88A;
}

table.content {
        padding: 0;
        margin: 0 auto;
        background-color: white;
}
table.content_default {
        overflow: hidden;
        border-radius: 5px;
        box-shadow: 0px 1px 4px 0px rgba(128,128,128,0.3);
}
table.content_fullpage {
        width: 100%;
        height: 100%;
        vertical-align: top;
}
table.content td.body {
        padding: 15px;
        margin: 0;
        color: #5b6166;
}
table.content_fullpage td.body {
        vertical-align: top;
        height: 100%;
}
table.content td.header {
        font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
        font-size: 15px;
        font-weight: 300;
        color: #5b6166;
        padding: 15px 50px 12px 15px;
        text-align: left;
        white-space: nowrap;
        border-bottom: 1px solid #e7e7e7;
}
/* application icon: the monochrome icon of the application (--wa-app-icon, webapp_frm.php) drawn
   in the title color */
.widget_app_icon {
        display: inline-block;
        width: 18px;
        height: 18px;
        margin: 0 8px 0 0;
        vertical-align: -4px;
        background-color: #5b6166;
        -webkit-mask: var(--wa-app-icon) center / contain no-repeat;
        mask: var(--wa-app-icon) center / contain no-repeat;
}
table.content td.logo {
        border-bottom: 1px solid #e7e7e7;
        width: 100px;
        height: 50px;
        padding: 8px 15px 0 0;
        text-align: right;
        vertical-align: middle;
}
table.content td.footer {
        font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
        font-size: 11px;
        font-weight: 300;
        color: white;
        background-color: #999;
        white-space: nowrap;
        vertical-align: middle;
}

/* footer language menu (webapp_frm.php __webapp_close()), opened and placed by webapps/jstheme.js */
.widget_lang {
        float: left;
        display: flex;
        align-items: center;
        height: 28px;
        padding: 0 5px 0 4px;
        margin: 0;
}
/* a light pill on the grey footer */
.widget_lang_button {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        height: 20px;
        padding: 0 6px 0 7px;
        font-family: inherit;
        font-size: 11px;
        font-weight: bold;
        color: #444;
        cursor: pointer;
        background: rgba(255, 255, 255, 0.52);
        border: 0;
        border-radius: 10px;
        box-shadow: 0px 1px 2px 0px rgba(0,0,0,0.1);
}
/* optical centering: the text box of the button is trimmed to the capital letters */
.widget_lang_code {
        text-box: trim-both cap alphabetic;
}
/* chevron in the text color (menu opening upwards), 10px: centered on whole pixels in the
   20px button (a half pixel offset is rounded differently by the browsers) */
.widget_lang_button::after {
        content: "";
        flex: none;
        width: 10px;
        height: 10px;
        background-color: currentColor;
        -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none" stroke="black" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M2.5 6.25L5 3.75l2.5 2.5"/></svg>') center / 10px no-repeat;
        mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" fill="none" stroke="black" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M2.5 6.25L5 3.75l2.5 2.5"/></svg>') center / 10px no-repeat;
}
.widget_lang_button:hover, .widget_lang.open .widget_lang_button {
        background: rgba(255, 255, 255, 0.75);
}
.widget_lang.open .widget_lang_button::after {
        transform: rotate(180deg);
}
.widget_lang_button:focus-visible {
        outline: 2px solid transparent;
        box-shadow: var(--wa-focus);
}
.widget_lang_button img, .widget_lang_list img {
        flex: none;
        width: 20px;
        height: 15px;
}
.widget_lang_button img {
        width: 16px;
        height: 12px;
        border-radius: 2px;
}
.widget_lang_list {
        max-height: calc(100vh - 16px);
        overflow-y: auto;
        margin: 0;
        padding: 3px;
        list-style: none;
        background-color: #fefefe;
        border: 1px solid #ddd;
        border-radius: 5px;
        box-shadow: 0px 2px 8px 0px rgba(128,128,128,0.4);
        z-index: 9999;
}
.widget_lang_list li {
        margin: 0;
        padding: 0;
        list-style: none;
}
.widget_lang_list a {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 5px 8px;
        font-size: 11px;
        font-weight: normal;
        color: #333;
        text-decoration: none;
        border-radius: 3px;
}
.widget_lang_list a:hover, .widget_lang_list a:focus {
        color: #333;
        text-decoration: none;
        background-color: #eee;
}
.widget_lang_list a:focus-visible {
        outline: 2px solid transparent;
        box-shadow: inset 0 0 0 2px #1E90FF;
}
.widget_lang_list a.selected {
        font-weight: bold;
        background-color: #eaf4ff;
}
/* the theme menu on the right of the footer (webapp_frm.php __webapp_close()) */
.widget_lang.widget_theme {
        float: right;
        padding: 0 4px 0 5px;
}
.widget_theme .widget_lang_button .fa {
        font-size: 11px;
        opacity: 0.8;
}
/* check mark in the text color */
.widget_lang_list a.selected::after {
        content: "";
        flex: none;
        width: 12px;
        height: 12px;
        margin-left: auto;
        background-color: currentColor;
        -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7.4l2.6 2.5L11 4.2"/></svg>') center / 12px no-repeat;
        mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7.4l2.6 2.5L11 4.2"/></svg>') center / 12px no-repeat;
}

/* result boxes before the page layout */
div.frame {
        border: 1px solid #ddd;
        background-color: #fefefe;
        border-radius: 5px;
        box-shadow: 0px 1px 4px 0px rgba(128,128,128,0.3);
}

/* tooltips: webapp_help() and webapp_popup() (shown and placed by webapps/jstheme.js), and the
   popups of jspopup.js */
.help_popup {
        max-width: calc(100vw - 16px);
        padding: 5px;
        z-index: 9999;
        position: absolute;
        visibility: hidden;
        font-family: Arial, Helvetica, sans-serif;
        font-size: 11px;
        font-weight: normal;
        line-height: 160%;
        text-align: left;
        white-space: normal;
        color: #333;
        border: 1px solid #ccc;
        background-color: #fff;
        border-radius: 0.5em;
}
.help_popup_text, .help_popup p {
        display: block;
        max-width: 200px;
}
/* a popup showing only an image (e.g. a QR code) */
.help_popup_text > img:only-child {
        display: block;
}

div.ajax_popup {
        padding: 5px;
        z-index: 9999;
        position: absolute;
        visibility: hidden;
        border: 1px solid #ccc;
        background-color: #fff;
        border-radius: 5px;
        box-shadow: 0px 1px 4px 0px rgba(128,128,128,0.3);
}


.widget_button {
        font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
        font-weight: normal;
        font-style: normal;
        display: inline-block;
        vertical-align: middle;
        padding: 8px 16px 8px 16px;
        margin: 2px;
        font-size: 11px;
        text-align: center;
        cursor: pointer;
        color: #333;
        text-shadow: 0 1px 1px rgba(255,255,255,0.75);
        background-color: #f5f5f5;
        border-color: #e6e6e6 #e6e6e6 #bfbfbf;
        border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
        border: 1px solid #bbb;
        border-radius: 4px;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
}
.widget_button:hover {
        color: #333;
        background-color: #e6e6e6;
}
.widget_button:disabled {
        background-color: #f5f5f5;
        border: 1px solid #ccc;
        color: #AAA;
        text-shadow: none;
        cursor: default;
        box-shadow: none;
}
.widget_button_blue:hover {
        color: #fff;
        background-color: #1C85EE;
}
.widget_button_blue {
        color: #fff;
        text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
        background-color: #1E90FF;
        border-color: #15497c #15497c #0a223b;
        border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
        border-radius: 4px;
        cursor: pointer;
}
.widget_button_green:hover {
        color: #fff;
        background-color: #22BD22;
}
.widget_button_green {
        color: #fff;
        text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
        background-color: #32CD32;
        border-color: #15497c #15497c #0a223b;
        border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
        border-radius: 4px;
        cursor: pointer;
}
.widget_button_red:hover {
        color: #fff;
        background-color: #FF4500;
}
.widget_button_red {
        color: #fff;
        text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
        background-color: #FF6347;
        border-color: #9b3621 #9b3621 #0a223b;
        border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
        border-radius: 4px;
        cursor: pointer;
}
.widget_button_orange:hover {
        color: #fff;
        background-color: #FF8C00;
}
.widget_button_orange {
        color: #fff;
        text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
        background-color: #FFA500;
        border-color: #cd781c #cd781c #633b10;
        border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
        border-radius: 4px;
        cursor: pointer;
}
.widget_button:focus-visible {
        outline: 2px solid transparent;
        box-shadow: var(--wa-focus);
}
.widget_button:disabled:hover {
        color: #AAA;
        background-color: #f5f5f5;
        border-color: #ccc;
        cursor: default;
}
.widget_button_small {
        padding: 8px 10px 8px 10px;
}
.widget_button_large {
        padding: 10px 20px 10px 20px;
}

.widget_menu {
        list-style: none;
        margin: 0;
        padding: 0;
        border-radius: 4px;
        overflow: hidden;
        white-space: nowrap;
}
.widget_menu li {
        display: inline-block;
        position: relative;
        float: left;
        margin: 0;
        padding: 0;
        background: #F7F7F7;
}
.widget_menu a {
        font-size: 11px;
        white-space: nowrap;
        display: block;
        border-top: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
        border-right: 1px solid #ddd;
        border-left: none;
        padding: 8px 8px;
        color: #555;
        text-decoration: none;
}
.widget_menu li:first-child a {
        border-left: 1px solid #ddd;
        border-radius: 4px 0 0 4px;
}
.widget_menu li:last-child a {
        border-radius: 0 4px 4px 0;
}
.widget_menu li.selected a {
        background: #e8e8e8;
}
.widget_menu a:focus-visible {
        outline: 2px solid transparent;
        box-shadow: inset 0 0 0 2px #1E90FF;
}
.widget_menu a:hover, .widget_menu a:active, .widget_menu a:focus {
        background: #e8e8e8;
}
.widget_menu .fa {
        width: 16px;
}
.widget_menu li.disabled a {
        color: #aaa;
        background: #F7F7F7;
        cursor: default;
}

.widget_table {
        background-color: #F7F7F7;
        border-top: #ddd 1px solid;
        border-bottom: #ddd 1px solid;
        border-right: #ddd 1px solid;
        border-radius: 3px;
        overflow: hidden;
}
.widget_table th {
        padding: 5px;
        color: #555;
        font-weight: normal;
        background-color: #eee;
        border-left: #ddd 1px solid;
        white-space: nowrap;
}
.widget_table td {
        padding: 5px;
        border-top: #ddd 1px solid;
        border-left: #ddd 1px solid;
        white-space: nowrap;
}
.widget_table a .fa {
        color: #666;
}

/* small screens: the boxed layout becomes a full page (mobile clients are not detected server-side) */
@media (max-width: 600px) {
        body.boxed {
                background-color: white;
        }
        table.middle {
                height: 100%;
                padding: 0;
        }
        table.middle > tbody > tr > td {
                height: 100%;
                vertical-align: top;
        }
        table.content_default {
                width: 100%;
                height: 100%;
                border-radius: 0;
                box-shadow: none;
        }
        table.content_default td.body {
                height: 100%;
                vertical-align: top;
        }
        table.content td.header {
                padding: 15px;
                white-space: normal;
        }
        .widget_result_error, .widget_result_success {
                max-width: 100%;
        }
        div.home.boxed {
                display: block;
                width: 100%;
                border: 0;
                border-radius: 0;
                box-shadow: none;
        }
        div.home ul, div.home ul li a {
                width: auto;
        }
        /* label / value rows stack vertically (legacy tables guessed with zero specificity) */
        td.body table.widget_form > tbody > tr > td.widget_label,
        td.body table.widget_form > tbody > tr > td.widget_value,
        :where(td.body table:not([class], .widget_plain *) > tbody > tr > td:first-child:nth-last-child(2):not(:empty, [style*="width"]),
               td.body table:not([class], .widget_plain *) > tbody > tr > td:first-child:not(:empty, [style*="width"]) + td:last-child) {
                display: block;
                padding-left: 0;
                padding-right: 0;
        }
        .widget_table {
                display: block;
                max-width: 100%;
                overflow-x: auto;
        }
        .widget_field, .widget_password, .widget_password .widget_field {
                max-width: 100%;
        }
        /* room for the help icon of a field (a percentage width, not only max-width, also lets
           the table shrink below the field width) */
        .widget_nowrap > :is(.widget_field, .widget_password) {
                max-width: calc(100% - 30px);
        }
        .widget_nowrap > .widget_field_wide {
                width: min(var(--wa-field-wide), calc(100% - 30px));
        }
}

/* avoid iOS zoom-on-focus */
@media (pointer: coarse) {
        :where(input[type="text"], input[type="password"], input[type="email"], input[type="tel"],
               input[type="number"], input[type="search"], input[type="url"], input[type="date"], input[type="time"],
               input[type="datetime-local"], input:not([type]), select, textarea) {
                font-size: 16px;
                line-height: 16px;
        }
}

/* forced colors (Windows high contrast): native controls and visible focus */
@media (forced-colors: active) {
        :where(input[type="radio"], input[type="checkbox"]) {
                appearance: auto;
        }
        :focus-visible, .widget_radio.focused, .widget_switch input:focus-visible + .widget_switch_slider {
                outline: 2px solid CanvasText;
                outline-offset: 2px;
        }
        td.widget_section::before, :where(td.body td[colspan] > h1:only-child)::before {
                display: none;
        }
        .widget_switch_slider {
                border: 1px solid CanvasText;
        }
        .widget_switch input:checked + .widget_switch_slider, .widget_switch_slider::after {
                forced-color-adjust: none;
                background: Highlight;
        }
        .widget_switch_slider::after {
                background: CanvasText;
        }
        .widget_radio:is(.selected, :has(> input:checked)) {
                outline: 2px solid Highlight;
        }
        .widget_lang_button::after, .widget_lang_list a.selected::after, .widget_result_icon::before, .widget_app_icon {
                forced-color-adjust: none;
                background-color: CanvasText;
        }
}

@media (prefers-reduced-motion: reduce) {
        .widget_switch_slider, .widget_switch_slider::after, .widget_radio, .widget_password_toggle,
        :where(input, select, textarea) {
                transition: none !important;
        }
}
