/* Shared visual language. Native fonts, no remote assets or runtime styling. */
:root {
    --sww-ink: #171923;
    --sww-muted: #626677;
    --sww-accent: #6331b7;
    --sww-accent-strong: #452080;
    --sww-accent-soft: #f1ecfa;
    --sww-lime: #d8f36a;
    --sww-line: #e2e5ec;
    --sww-canvas: #f6f7fa;
    --sww-paper: #fff;
    --sww-radius: 12px;
    --sww-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
body {
    color: var(--sww-ink);
    background: var(--sww-paper);
    font-family: var(--sww-font);
    font-size: 15px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .anton, .montserrat {
    font-family: var(--sww-font);
    color: inherit;
    font-weight: 650;
    line-height: 1.25;
    letter-spacing: -.025em;
}
h1, .h1 { font-size: 36px; }
h2, .h2 { font-size: 28px; }
h3, .h3 { font-size: 22px; }
h4, .h4 { font-size: 18px; }
h5, .h5 { font-size: 15px; }
h6, .h6 { font-size: 13px; }
a { color: var(--sww-accent); text-underline-offset: 3px; }
a:hover, a:focus { color: var(--sww-accent-strong); }
:focus-visible { outline: 3px solid var(--sww-accent); outline-offset: 3px; }
::selection { background: #e6dcf7; color: var(--sww-ink); }
.text-muted, .help-block { color: var(--sww-muted); }
hr { border-top-color: var(--sww-line); }
img.logo-site:hover { box-shadow: none; }
.sww-brand-test { color: #16743d; }
a:hover .sww-brand-test, a:focus-visible .sww-brand-test { color: #1b7d44; }
[hidden] { display: none !important; }

.btn {
    min-height: 40px;
    padding: 9px 16px;
    border-radius: 8px;
    background-image: none;
    box-shadow: none;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    text-shadow: none;
    transition: background-color .12s, border-color .12s, color .12s;
}
.btn:hover, .btn:focus, .btn:active, .btn.active { background-image: none; box-shadow: none; }
.btn-default { color: var(--sww-ink); background: var(--sww-paper); border-color: #d7dbe5; }
.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active {
    color: var(--sww-accent-strong); background: var(--sww-accent-soft); border-color: #b7a0d9;
}
.btn-primary { color: #fff; background: var(--sww-accent); border-color: var(--sww-accent); }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active,
.open > .dropdown-toggle.btn-primary { color: #fff; background: var(--sww-accent-strong); border-color: var(--sww-accent-strong); }
.btn-success { background: #23734b; border-color: #23734b; color: #fff; }
.btn-success:hover, .btn-success:focus { background: #185537; border-color: #185537; }
.btn-danger { background: #b53041; border-color: #b53041; color: #fff; }
.btn-danger:hover, .btn-danger:focus { background: #922535; border-color: #922535; }
.btn-warning { background: #f5e5be; border-color: #d9be7d; color: #694300; }
.btn-warning:hover, .btn-warning:focus { background: #eddaa6; border-color: #b28e3e; color: #533600; }
.btn-info { background: #eaf0fb; border-color: #b7c9e9; color: #264b7e; }
.btn-info:hover, .btn-info:focus { background: #dce7f9; border-color: #8eabd8; color: #1b3b66; }
.btn-link { color: var(--sww-accent); }
.btn-lg { min-height: 48px; padding: 13px 22px; font-size: 16px; border-radius: 9px; }
.btn-sm { min-height: 34px; padding: 6px 11px; font-size: 13px; }
.btn-xs { min-height: 28px; padding: 3px 8px; font-size: 12px; border-radius: 5px; }
.btn.disabled, .btn[disabled], fieldset[disabled] .btn { opacity: .55; }
.btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary {
    background: var(--sww-accent); border-color: var(--sww-accent);
}

.form-control {
    height: 42px;
    padding: 9px 12px;
    border: 1px solid #cdd2de;
    border-radius: 8px;
    background: var(--sww-paper);
    color: var(--sww-ink);
    font-family: inherit;
    font-size: 14px;
    box-shadow: none;
    transition: border-color .12s;
}
.form-control:focus { border-color: var(--sww-accent); box-shadow: 0 0 0 3px #6331b718; }
.form-control::placeholder { color: #787d8d; opacity: 1; }
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { background: var(--sww-canvas); }
textarea.form-control { height: auto; min-height: 110px; line-height: 1.65; }
select.form-control { padding-right: 8px; }
.input-sm, .input-group-sm > .form-control { height: 34px; padding: 6px 10px; }
.input-lg, .input-group-lg > .form-control { height: 48px; }
.input-group-addon { color: var(--sww-muted); background: var(--sww-canvas); border-color: #cdd2de; border-radius: 8px; }
.input-group:not(.input-group-sm):not(.input-group-lg) > .input-group-btn > .btn { min-height: 42px; }
.control-label, label { font-weight: 600; }
.radio label, .checkbox label { font-weight: 400; }
input[type="checkbox"], input[type="radio"], progress { accent-color: var(--sww-accent); }
.has-error .form-control { border-color: #b53041; }
.has-error .help-block, .has-error .control-label { color: #9e2638; }
.help-block { font-size: 13px; line-height: 1.55; }

.dropdown-menu {
    border: 1px solid var(--sww-line);
    border-radius: 9px;
    box-shadow: 0 8px 24px #17192312;
    font-size: 14px;
}
.dropdown-menu > li > a { padding: 8px 16px; color: var(--sww-ink); }
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { color: var(--sww-accent-strong); background: var(--sww-accent-soft); }
.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {
    color: var(--sww-accent-strong); background: var(--sww-accent-soft); font-weight: 600;
}
.bootstrap-select .dropdown-menu .notify { background: var(--sww-accent-soft); color: var(--sww-accent-strong); }
.bootstrap-select .bs-searchbox { padding: 10px; }
.bootstrap-select .bs-searchbox .form-control { height: 38px; }

.panel { border-radius: var(--sww-radius); box-shadow: none; }
.panel-default { border-color: var(--sww-line); }
.panel-heading { padding: 15px 20px; border-top-left-radius: 11px; border-top-right-radius: 11px; background-image: none; }
.panel-default > .panel-heading { color: var(--sww-ink); background: var(--sww-paper); border-color: var(--sww-line); }
.panel-primary { border-color: #d9cbea; }
.panel-primary > .panel-heading { background: var(--sww-accent-soft); border-color: #d9cbea; color: var(--sww-accent-strong); }
.panel-body { padding: 20px; }
.panel-footer { padding: 14px 20px; background: var(--sww-canvas); border-color: var(--sww-line); border-radius: 0 0 11px 11px; }
.well { background: var(--sww-canvas); border: 1px solid var(--sww-line); border-radius: 10px; box-shadow: none; }
.list-group-item { border-color: var(--sww-line); }
.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {
    color: var(--sww-accent-strong); background: var(--sww-accent-soft); border-color: #d8c9ed; text-shadow: none;
}
.list-group-item.active .list-group-item-text { color: inherit; }

.table > thead > tr > th { border-bottom: 1px solid var(--sww-line); color: var(--sww-muted); font-size: 12px; font-weight: 650; vertical-align: middle; }
.table > tbody > tr > td, .table > tbody > tr > th { border-top-color: var(--sww-line); vertical-align: middle; }
.table-striped > tbody > tr:nth-of-type(odd) { background-color: #fafafd; }
.table-hover > tbody > tr:hover { background-color: var(--sww-accent-soft); }
.table-bordered, .table-bordered > thead > tr > th, .table-bordered > tbody > tr > td { border-color: var(--sww-line); }

.alert { border-radius: 9px; box-shadow: none; background-image: none; text-shadow: none; }
.alert-success { color: #215b3d; background: #edf8f0; border-color: #c5e3ce; }
.alert-info { color: #294d78; background: #eff4fc; border-color: #cbdaf0; }
.alert-warning { color: #795307; background: #fcf7e9; border-color: #ead9a6; }
.alert-danger { color: #9c293b; background: #fcf0f2; border-color: #ecc7cf; }
.label { display: inline-block; padding: .35em .55em; border-radius: 5px; font-weight: 600; line-height: 1.2; }
.label-primary { background: var(--sww-accent); }
.label-success { background: #23734b; }
.label-danger { background: #b53041; }
.label-warning { background: #f5e5be; color: #694300; }
.label-info { background: #eaf0fb; color: #264b7e; }
.badge { padding: 4px 7px; font-weight: 600; font-size: 11px; }

.nav-tabs { border-bottom-color: var(--sww-line); }
.nav-tabs > li > a { border-radius: 0; color: var(--sww-muted); }
.nav-tabs > li > a:hover { background: var(--sww-canvas); border-color: transparent transparent var(--sww-line); }
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
    color: var(--sww-accent-strong); background: transparent; border: 1px solid transparent; border-bottom: 3px solid var(--sww-accent); font-weight: 600;
}
.pagination > li > a, .pagination > li > span { padding: 8px 13px; color: var(--sww-accent); border-color: var(--sww-line); }
.pagination > li > a:hover { color: var(--sww-accent-strong); background: var(--sww-accent-soft); border-color: var(--sww-line); }
.pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > span {
    color: #fff; background: var(--sww-accent); border-color: var(--sww-accent);
}
.breadcrumb { background: transparent; padding-left: 0; font-size: 13px; }
.modal-content { border: 1px solid var(--sww-line); border-radius: 14px; box-shadow: 0 16px 56px #17192330; }
.modal-header, .modal-footer { padding: 18px 22px; border-color: var(--sww-line); }
.modal-header { border-radius: 13px 13px 0 0; }
.modal-body { padding: 22px; }
.modal-header.bg-danger { background: #fcf0f2; color: #9c293b; }
.modal-header.bg-warning { background: #fcf7e9; color: #795307; }
.modal-backdrop.in { opacity: .35; }
.tooltip, .popover { font-family: var(--sww-font); }
.progress { border-radius: 6px; box-shadow: none; background: var(--sww-canvas); }
.progress-bar { background-color: var(--sww-accent); background-image: none; box-shadow: none; }

.footer .text-muted, .footer .text-footer, .panel-footer > .text-muted {
    display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px 28px; margin: 0;
}
.sww-footer-brand { color: var(--sww-muted); font-size: 12px; white-space: nowrap; }
.sww-footer-links { display: inline-flex; flex-wrap: wrap; gap: 8px 24px; font-size: 12px; }
.sww-footer-links a { color: var(--sww-muted); }
.sww-footer-links a:hover { color: var(--sww-accent); }

@media (max-width: 767px) {
    h1, .h1 { font-size: 29px; }
    h2, .h2 { font-size: 24px; }
    .panel-body { padding: 16px; }
    .panel-heading { padding: 14px 16px; }
    .form-control { font-size: 16px; }
    .footer .text-muted, .footer .text-footer, .panel-footer > .text-muted { justify-content: flex-start; gap: 8px 24px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
    body { color: #000; background: #fff; }
    .btn, .panel, .well { box-shadow: none; }
}
