*, :after, :before {
    box-sizing: border-box;
}

:root {
    --primary-color: #104490;
    --contrast-color: #e95609;
    --table-head-color: #d7e7f6;
    --background-color: #f4f5f6;
    --text-color: #333;
    --minor-color: #999;
    --border-color: #ccc;
    --line-color: #eee;
    --font-size: 15px;
    --content-width: 1200px;
    --layout-margin: 30px;
    --widget-height: 40px;
    --border-radius: 3px;
}

body {
    margin: 0;
    color: var(--text-color);
    background: var(--background-color) url(/images/skyline.png) bottom no-repeat;
    background-size: 100%;
    background-attachment: fixed;
    font: var(--font-size)/1.8 system-ui, -apple-system, BlinkMacSystemFont, Helvetica, Arial, Tahoma, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", sans-serif;
}

/* States
-------------------------------------------------------- */

.CREATED, .ENROLLING, .DISABLED, .WARNING, .IN_PROGRESS {
    color: var(--contrast-color);
}
.PENDING, .BIDDING, .NONACTIVATED, .REDUCED, .TOBE_PAID, .TOBE_RECEIPTED, .TOBE_TENDERED, .TENDER_APPROVING {
    color: blue;
}
.APPROVED, .SUCCESS, .FINISHED, .COMPLETED, .ENABLED, .TENDER_APPROVED, .BID_WIN {
    color: #39b11d;
}
.REJECTED, .ERROR, .DANGER, .TENDER_REJECTED, .TENDER_REBACK {
    color: red;
}
.CANCELLED, .MINOR, .NOT_INVITED, .ENROLLED, .BID_LOSE, .HISTORICAL, .INVALID {
    color: var(--minor-color);
}

/* @Override Input/Button/TextArea
-------------------------------------------------------- */

input, textarea, button, select {
    outline: 0;
    color: inherit;
    font: inherit;
}

select {
    border: 0;
    border-bottom: var(--minor-color) 1px solid;
    padding: 3px 0;
    background: transparent;
}

.search-combo {
    display: flex;
}

.search-bar {
    display: flex;
    border: 1px solid var(--minor-color);
    border-radius: var(--border-radius);
}

.search-bar:focus-within {
    border: 1px solid var(--primary-color);
}

.search-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    color: inherit;
    border-left: 1px solid var(--minor-color);
    padding: 0 12px;
}

.search-condition {
    width: 600px;
}

.search-condition tr {
    border: 0;
}

.search-condition th {
    text-align: right;
    vertical-align: middle;
    font-weight: 400;
}

.search-condition th, .search-condition td {
    padding: 0 5px;
}

.search-condition select, .search-condition input {
    width: 90%;
}

input[type="search"] {
    border: 0;
    border-radius: var(--border-radius);
    padding: 5px 8px;
}

input[type="text"], input[type="password"] {
    padding: 0;
    border-radius: 0;
    border: 0;
    border-bottom: var(--minor-color) 1px solid;
}

input[type="text"]:focus, input[type="password"]:focus {
    border-bottom: var(--primary-color) 1px solid;
}

input[type="text"]:disabled {
    color: var(--minor-color);
    border-bottom: var(--border-color) 1px solid;
    background: transparent;
    cursor: default;
}

input[type="radio"], input[type="checkbox"] {
    cursor: pointer;
    margin: 0 5px 0 0;
}

input[type="file"] {
    display: none;
}

input.popup {
    background-image: url(/Other/pbs/images/popup.svg);
    background-repeat: no-repeat;
    background-position: top 49% right 5px;
    background-size: 16px;
    cursor: pointer;
}

textarea {
    display: block;
    resize: none;
    width: 100%;
}

textarea, [contenteditable] {
    outline: 0;
    padding: 10px;
    min-height: 100px;
    border: var(--minor-color) 1px solid;
    border-radius: var(--border-radius);
}

textarea:focus, [contenteditable]:focus {
    border: var(--primary-color) 1px solid;
}

button, a.button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    white-space: nowrap;
    font-weight: 700;
    padding: 5px 30px;
    color: #fff;
    height: var(--widget-height);
    border-radius: var(--border-radius);
    border: var(--primary-color) 1px solid;
    background: var(--primary-color);
    transition: opacity .3s;
}

button.minor, a.button.minor {
    color: var(--primary-color);
    background: #fff;
}

button.danger, a.button.danger {
    color: red;
    border-color: red;
    background: #fff;
}

button:hover, a.button:hover {
    opacity: .8;
    text-decoration: none;
}

button:active, a.button:active {
    opacity: 1;
}

button:disabled {
    opacity: .5;
    cursor: default;
}

::placeholder {
    font-style: italic;
    font-size: 13px;
    color: var(--minor-color);
}

[contenteditable]:not(:focus):empty::before {
    content: attr(placeholder);
    color: var(--minor-color);
    font-style: italic;
    font-size: 13px;
}

/* @Override Table
-------------------------------------------------------- */

table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

table tr {
    height: var(--widget-height);
    border-bottom: var(--line-color) 1px solid;
    border-top: var(--line-color) 1px solid;
}

table th, table td {
    padding: 10px;
}

table th {
    text-align: initial;
    vertical-align: initial;
    font-weight: 700;
}

table .doc {
    white-space: initial;
    padding: 15px;
}

table .doc b {
    color: initial;
    margin: initial;
}

table.default th {
    text-align: right;
}

table.compact tr {
    border: 0;
    height: 36px;
}

table.compact th, table.compact td {
    padding: 0;
    vertical-align: middle;
}

table.list {
    table-layout: fixed;
}

table.list th, table.list td {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

table.list tr:first-child {
    background: var(--table-head-color);
}

table.list th:first-child, table.list td:first-child {
    padding-left: 15px;
}

table.list th:last-child, table.list td:last-child {
    padding-right: 15px;
    text-align: right;
}

table.list td:last-child>a:not(:first-child) {
    margin-left: 10px;
}

table.list input[type="text"], table.list select {
    width: 100%;
}

table.list input[type="checkbox"] {
    vertical-align: inherit;
}

table.list td[name="attachment"] {
    white-space: initial;
}

table.list textarea {
    line-height: 1.6;
    font-size: 13px;
    min-height: 80px;
}

table.detail {
    word-break: break-all;
}

table.detail input[type="text"], table.detail input[type="password"], table.detail select {
    width: 90%;
}

table.detail th, .table-head {
    text-align: right;
    background: var(--table-head-color);
}

table.detail td:last-child {
    border-right: var(--line-color) 1px solid;
}

table.report {
    width: max-content;
    line-height: 1.6;
}

table.report .header {
    background: var(--table-head-color);
    white-space: nowrap;
}

table.report .target {
    position: relative;
}

table.report .target img {
    display: none;
    position: absolute;
    top: 5px;
    right: 5px;
    width: 18px;
    cursor: pointer;
}

table.report .target:hover img {
    display: block;
}

table.report i {
    font-size: 13px;
    margin-left: 10px;
}

table.report tr:first-child {
    border-top: var(--border-color) 1px solid;
}

table.report tr:last-child {
    border-bottom: var(--border-color) 1px solid;
}

table.report td {
    border-right: var(--border-color) 1px solid;
}

table.report td:first-child {
    text-align: right;
    border-left: var(--border-color) 1px solid;
}

table.report .separtor {
    border-bottom: var(--border-color) 1px solid;
}

/* @Override Text
-------------------------------------------------------- */

h1, h2, h3 {
    margin: 0;
}

a {
    color: var(--primary-color);
    text-decoration: none;
    cursor: pointer;
    transition: all .3s;
}

a:hover {
    text-decoration: underline;
}

b {
    color: var(--contrast-color);
    margin: 0 5px;
}

i {
    color: var(--minor-color);
    font-weight: initial;
}

label {
    cursor: pointer;
    user-select: none;
}

label.options {
    display: inline-flex;
    align-items: center;
    margin-left: 15px;
}

img {
    display: block;
    max-width: 100%;
}

/* Widget Loading
-------------------------------------------------------- */

.loading {
    width: 18px;
    height: 18px;
    margin: 5px;
    border-radius: 50%;
    border-top: 2px solid var(--line-color);
    border-right: 2px solid var(--line-color);
    border-bottom: 2px solid var(--line-color);
    border-left: 2px solid var(--minor-color);
    animation: rotating .6s infinite linear;
}

@keyframes rotating {
    from {
        transform: rotate(0);
    }

    to {
        transform: rotate(360deg);
    }
}

/* Widget Attachment
-------------------------------------------------------- */

.attachment {
    display: flex;
    line-height: 1.8;
}

.attachment>:first-child {
    margin-right: 10px;
}

.attachment .file-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    flex: 1;
}

.attachment .file-list>:not(.loading) {
    background: #eee;
    margin: 3px;
    padding: 2px 8px;
    border-radius: var(--border-radius);
    width: fit-content;
}

.attachment .item {
    display: flex;
    align-items: center;
    word-break: break-all;
}

.attachment .item>:first-child {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
}

.icon {
    cursor: pointer;
    width: 16px;
    height: 16px;
    text-decoration: none;
    margin-left: 5px;
}

.attachment .icon.cross {
    margin-left: 3px;
}

sup {
    color: var(--minor-color);
    font-size: 12px;
    margin-bottom: 25px;
}

.pager {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--minor-color);
    padding: 0 15px;
    margin-top: 15px;
}

.pager a, .pager span {
    margin-left: 10px;
}

.pager a.active {
    color: var(--contrast-color);
}

.pager b {
    margin: 0;
    font-weight: 400;
}

.pager .noresult {
    flex:1;
    text-align:center;
}

.tab-page section {
    display: none;
    margin-top: 0;
}

.tab-page section.active {
    display: block;
}

.tabs {
    display: flex;
    margin-bottom: 0;
}

.tabs>div {
    flex: 1;
}

.tabs>a {
    padding: 5px 20px;
    margin-right: 10px;
    border-top-left-radius: var(--border-radius);
    border-top-right-radius: var(--border-radius);
    background: #eee;
    user-select: none;
}

.tabs>a:last-child {
    margin: 0;
}

.tabs>a:hover {
    text-decoration: none;
}

.tabs>a.active {
    color: var(--text-color);
    font-weight: 700;
    background: #fff;
}

.log-title {
    color: var(--contrast-color);
    background: var(--background-color);
    font-size: 13px;
}

.quick-datepicker-body tr:first-child {
    border: 0;
    height: auto;
}

.quick-datepicker-target {
    background-position: top 49% right 5px;
}

/* Layouts
-------------------------------------------------------- */

header {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-width: 1400px;
    height: 80px;
    padding: 0 50px 0 30px;
    background: #fff;
    box-shadow: 0 0 6px rgb(0,0,0,.6);
}

main {
    margin: auto;
    width: var(--content-width);
}

main>* {
    margin: var(--layout-margin) 0;
}

section, table {
    position: relative;
    background: #fff;
    padding: var(--layout-margin);
    border-radius: var(--border-radius);
}

nav {
    display: flex;
    align-items: center;
}

nav img {
    display: initial;
    width: 12px;
    height: 12px;
}

nav img.bell {
    width: 16px;
    height: 16px;
}

nav a {
    color: var(--text-color);
}

nav>* {
    position: relative;
    display: flex;
    align-items: center;
    padding: 10px 20px;
    cursor: pointer;
}

nav>*>[data-badge]:after {
    right: 12px;
    top: 3px;
}

nav>*:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    height: 20px;
    width: 1px;
    margin: auto;
    background: var(--text-color);
}

nav>*:first-child:before {
    display: none;
}

nav>*:last-child {
    padding-right: 0;
}

nav>*>.submenu {
    position: absolute;
    display: none;
    flex-direction: column;
    z-index: 99;
    background: #fff;
    box-shadow: 0 0 15px var(--border-color);
    white-space: nowrap;
    top: 0;
    margin-top: 47px;
    margin-left: -15px;
    padding: 8px 0;
    cursor: initial;
}

nav>*>.submenu>a {
    position: relative;
    margin: 2px 18px;
}

nav>*>.submenu>hr {
    border: 0;
    width: 100%;
    height: 1px;
    background: var(--line-color);
}

nav>div:hover .submenu {
    display: flex;
}

.logos {
    display: flex;
    align-items: center;
}

.headline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 20px 0;
    height: var(--widget-height);
}

.headline:first-child {
    margin-top: 0;
}

.headline h2, .markdown h1 {
    position: relative;
    line-height: 21px;
    font-size: 24px;
    font-weight: 400;
    padding: 0 20px;
}

.headline h2:before, .markdown h1:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 3px;
    background: var(--contrast-color);
}

h3 {
    font-weight: 400;
    font-size: 18px;
    margin: 20px 0;
    color: var(--primary-color);
}

h3:first-child {
    margin-top: 0;
}

.headline .buttons>*:last-child {
    margin-right: 0;
}

.headline button, .headline .button {
    margin-left: 10px;
}

.footline {
    margin-top: 30px;
    text-align: center;
}

.footline button {
    margin: 0 5px 5px;
}

.footline.sticky {
    position: sticky;
    background: rgba(247, 217, 163,.6);
    left: 0;
    right: 0;
    bottom: 0;
    padding: 20px 15px 15px 15px;
    margin: -10px 0 0 0;
}

[data-badge]:after {
    content: attr(data-badge);
    position: absolute;
    right: 0;
    top: 0;
    width: 18px;
    height: 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    border: #fff 1px solid;
    color: #fff;
    background: red;
    font-size: 10px;
    transform: scale(0.9);
}

.searchbar2 { /* 新版搜索栏 */
    display: flex;
    gap: 20px;
}

.searchbar2>div {
    display: flex;
    align-items: center;
}

.searchbar { /* 旧版搜索栏 */
    height: auto;
}

.searchbar table tr {
    border: 0;
    height: auto;
}

.searchbar table th, .searchbar table td {
    background: none;
    border: 0 !important;
    padding: 2px;
    font-weight: 400;
}

.searchbar input, .searchbar select {
    width: 130px !important;
}

.searchbar .controls {
    text-align: right;
}

.check-group {
    display: flex;
}

.check-group>* {
    display: flex;
    margin-right: 15px;
}

.q-n-a li:not(:first-child) {
    margin-top: 20px;
}

.q-n-a img {
    display: inline-block;
}

img.captcha {
    cursor: pointer;
}

table.list input.field-year {
    width: 80px;
    text-align: center;
}

table.list.logs th, table.list.logs td {
    text-align: left;
    white-space: initial;
    vertical-align: top;
}

.white-board {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 80vh;
}

.white-board button {
    width: 100%;
}

.white-board input {
    width: 200px;
}

.white-board section {
    padding: 50px;
}

.central-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 80px auto;
    padding: 80px;
    max-width: 500px;
}

.error-code {
    font-size: 120px;
    color: var(--minor-color);
}

.markdown h1 {
    margin: 10px 0 30px;
}

.markdown h2 {
    font-size: 1.2em;
    margin: 15px 20px;
}

.markdown h3 {
    font-size: 1em;
    font-weight: 700;
    margin: 5px 0;
    color: initial;
}

.sidebar {
    display: flex;
    flex-direction: column;
    background: #eee;
    width: 200px;
    margin-right: 15px;
}

.sidebar > a {
    padding: 10px 20px;
}

.sidebar > a.active {
    background: #ddd;
}

.sidebar + * {
    flex: 1;
}

.dialog-loading {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.dialog-loading>div {
    padding: 15px;
    border-radius: 5px;
    background: rgba(0,0,0,.5);
}

.dialog-loading>div>div {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border-top: 3px solid rgba(255, 255, 255, 0.2);
    border-right: 3px solid rgba(255, 255, 255, 0.2);
    border-bottom: 3px solid rgba(255, 255, 255, 0.2);
    border-left: 3px solid rgba(255, 255, 255, 0.8);
    animation: spin .6s linear infinite;
}

.checkbox-group {
    display: flex;
}

.checkbox-group>* {
    display: flex;
    margin: 0 10px;
}

.charts {
    display: flex;
}

.charts>section {
    flex: 1;
}

.charts>section:not(:first-child) {
    margin-left: var(--layout-margin);
}

.overview {
    display: flex;
    align-items: baseline;
}

.overview>* {
    margin-left: 30px;
}

.sub {
    margin-right: 5px;
    color: var(--minor-color);
}

.highlight {
    font-size: 24px;
    font-weight: 300;
    color: var(--contrast-color);
}

.numeric {
    text-align: right;
}

.scoring-sheet, .fullscreen {
    width: 100%;
    min-width: var(--content-width);
}

.scoring-sheet section, .fullscreen section {
    margin: var(--layout-margin);
}

.scoring-sheet table.list td {
    white-space: unset;
}

.scoring-sheet .desc {
    color: var(--minor-color);
    font-size: 14px;
}

.scoring-sheet ol {
    position: relative;
    list-style: none;
    margin: 0;
    padding-left: 10px;
}

.scoring-sheet li:before {
    content: attr(data-order) ".";
    position: absolute;
    left: -10px;
}

.scoring-sheet .attachment {
    flex-direction: column;
}

.crucial-field {
    display: flex;
}

.crucial-field input {
    flex: 1;
}

.crucial-field input[name="crucialValue"]:disabled {
    border: 0 !important;
}

.sys-notice {
    background: red;
    color: #fff;
    width: fit-content;
    padding: 3px 10px;
    margin: 20px auto -10px auto;
    border-radius: var(--border-radius);
    text-align: center;
}

.browser-notice {
    position: absolute;
    bottom: -100px;
    left: 0;
    padding: 40px;
    font-size: 13px;
    color: #999;
    text-align: center;
}

.footnote {
    margin-top: 10px;
    color: var(--contrast-color);
    font-size: 13px;
}

section[data-stamp] {
    overflow: hidden;
}

section[data-stamp]:before {
    content: attr(data-stamp);
    position: absolute;
    top: -25px;
    right: -40px;
    width: 100px;
    height: 70px;
    font-size: 13px;
    font-weight: 700;
    color: #bbb;
    background-color: #eee;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding-bottom: 3px;
    transform: rotate(45deg);
}

.top-tray, .back-tray {
    position: fixed;
    display: flex;
    align-items: center;
    right: 0;
    bottom: 30px;
    height: 40px;
    padding: 15px;
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
    background: rgba(250, 190, 80, .5);
    transition: all .3s;
    cursor: pointer;
    gap: 5px;
}

.top-tray:hover, .back-tray:hover {
    background: rgba(250, 190, 80, .8);
}

.top-tray svg, .back-tray svg {
    width: 16px;
    height: 16px;
}

.top-tray {
    display: none;
    bottom: 80px;
}

.product-list {
    display: flex;
    flex-wrap: wrap;
    margin: -10px;
}

.product-item {
    position: relative;
    flex: 0 0 212px;
    margin: 10px;
    background: var(--background-color);
}

.product-toolbar {
    position: absolute;
    top: 0;
    right: 0;
    margin: 5px;
    display: flex;
}

.product-toolbar>a {
    width: 26px;
    height: 26px;
    padding: 4px;
    margin: 2px;
    background: #fff;
    border-radius: var(--border-radius);
    opacity: 0;
}

.product-item:hover .product-toolbar>a {
    opacity: .9;
}

.product-item:hover .product-name {
    text-decoration: underline;
}

.product-thumb {
    display: block;
    background-color: #f9f9f9;
}

.product-thumb>img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.product-item .product-thumb {
    width: 212px;
    height: 160px;
}

.product-title {
    display: block;
    padding: 10px;
    line-height: 1.6;
    word-break: break-all;
}

.product-title>div:last-child {
    line-height: 1.4;
}

.product-title:hover {
    text-decoration: none;
}

.product-title .highlight {
    font-size: 18px;
}

.product-title .MINOR {
    font-size: 13px;
}

.product-price {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-left: -3px;
}

.product-price .MINOR {
    font-size: 12px;
}

.product-detail {
    display: flex;
}

.product-detail .product-thumb {
    width: 400px;
    height: 400px;
}

.product-desc {
    flex: 1;
    margin-left: 30px;
}

.product-desc h2 {
    font-size: 24px;
    font-weight: 400;
    line-height: 1.6;
}

.product-desc table input {
    width: 100%;
}

.product-prop {
    display: flex;
    margin: 5px 0;
}

.product-prop:first-child, .product-prop:last-child {
    margin-top: 20px;
}

.product-prop>*:first-child {
    width: 80px;
    color: var(--minor-color);
}

.product-prop>*:last-child {
    flex: 1;
}