:root{--brand:#075b88;--brand2:#09a5d6;--bg:#f4f7fa;--brand-deep:#06486b;--brand-soft:#eaf6fc}
body{background:var(--bg);color:#263746;font-family:"Microsoft YaHei","Segoe UI",sans-serif}
.app-shell{padding:1.6rem 1.2rem 1.6rem}
.shell-flush-top .app-shell{padding-top:1.35rem}
.app-shell-inner{max-width:1440px;margin:0 auto}
.app-footer{padding:0 1.2rem 1.6rem;color:#607789}
.app-footer-inner{max-width:1440px;margin:0 auto;padding:1rem 1.1rem;border:1px solid rgba(7,91,136,.10);border-radius:18px;background:rgba(255,255,255,.72);box-shadow:0 10px 26px rgba(20,72,105,.055);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.app-footer-brand{min-width:0}
.app-footer-title{color:#173d55;font-size:.92rem;font-weight:900}
.app-footer-desc{margin-top:.18rem;color:#7890a0;font-size:.78rem;line-height:1.45}
.app-footer-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.45rem}
.app-footer-links a{display:inline-flex;align-items:center;min-height:32px;padding:.34rem .68rem;border-radius:999px;color:#587181;font-size:.78rem;font-weight:750;text-decoration:none;white-space:nowrap;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}
.app-footer-links a:hover{background:#eaf6fc;color:#075b88}
.app-footer-links a.active{background:#075b88;color:#fff;box-shadow:0 8px 18px rgba(7,91,136,.16)}
.brand-nav{position:sticky;top:0;z-index:1030;background:linear-gradient(115deg,#05486b 0%,#086892 45%,#0a83b0 100%);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid rgba(255,255,255,.10);box-shadow:0 12px 28px rgba(5,57,86,.24)}
.brand-nav .container-fluid{min-height:78px;max-width:1440px;display:flex;align-items:center;gap:1.15rem}
.brand-mark{display:flex;align-items:center;gap:.9rem;color:#fff;text-decoration:none;flex-shrink:0}
.brand-mark:hover{color:#fff}
.brand-mark::after{display:none}
.brand-logo-image{display:block;height:42px;width:42px;object-fit:contain;flex:0 0 42px;padding:4px;border-radius:14px;background:rgba(255,255,255,.12);box-shadow:0 10px 24px rgba(0,0,0,.14)}
.brand-system-name{font-size:1.28rem;font-weight:800;letter-spacing:.02em;color:#fff;line-height:1;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.10)}
.brand-nav-links{gap:.55rem;margin-left:auto;padding:.35rem;border-radius:18px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.brand-nav .nav-link{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1.06rem!important;border-radius:14px;color:rgba(238,248,255,.88)!important;font-weight:700;letter-spacing:.01em;transition:all .2s ease}
.brand-nav .nav-link:hover{color:#fff!important;background:rgba(255,255,255,.14);box-shadow:0 8px 18px rgba(0,0,0,.10);transform:translateY(-1px)}
.brand-nav .nav-link.active{color:#075b88!important;background:#fff;box-shadow:0 10px 22px rgba(0,0,0,.12)}
.brand-nav .nav-link.active::after{display:none}
.brand-userbar{display:flex;align-items:center;padding-left:.35rem}
.brand-user-menu{appearance:none;-webkit-appearance:none;display:inline-flex!important;align-items:center!important;gap:.62rem!important;min-height:48px;padding:.42rem .78rem .42rem .45rem!important;border:1px solid rgba(255,255,255,.24)!important;border-radius:999px!important;background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.10))!important;color:#fff!important;font:inherit!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 10px 22px rgba(0,0,0,.10)!important;transition:all .2s ease;outline:0!important}
.brand-user-menu:hover,.brand-user-menu.show,.brand-user-menu:focus{background:linear-gradient(135deg,rgba(255,255,255,.24),rgba(255,255,255,.14))!important;border-color:rgba(255,255,255,.42)!important;color:#fff!important;transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 12px 26px rgba(0,0,0,.14)!important}
.brand-user-menu::after{margin-left:.15rem;opacity:.72}
.brand-user-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#fff;color:#075b88;font-weight:900;font-size:1rem;box-shadow:0 6px 14px rgba(0,0,0,.10);flex:0 0 34px}
.brand-user-avatar-role{background:linear-gradient(135deg,#fff,#dff3fb);color:#075b88;border:1px solid rgba(255,255,255,.72);font-size:.96rem;letter-spacing:0}
.brand-user-meta{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1}
.brand-user-name{max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:800;color:#fff!important}
.brand-user-role{margin-top:.18rem;font-size:.68rem;font-weight:700;color:rgba(238,248,255,.78)!important}
.brand-user-dropdown{min-width:190px;padding:.5rem;border:1px solid rgba(11,92,142,.08);border-radius:18px;box-shadow:0 20px 44px rgba(18,61,88,.20);margin-top:.55rem!important}
.brand-user-dropdown .dropdown-item{border-radius:12px;padding:.65rem .8rem;font-weight:700;color:#173d55}
.brand-user-dropdown .dropdown-item:hover{background:#eaf6fc;color:#075b88}
.brand-user-dropdown .dropdown-item.active{background:#075b88;color:#fff}
.brand-toggler{border-color:rgba(255,255,255,.22)!important;border-radius:14px;padding:.45rem .7rem;background:rgba(255,255,255,.08)}
.brand-toggler .navbar-toggler-icon{filter:brightness(0) invert(1)}
.brand-toggler:focus{box-shadow:0 0 0 .18rem rgba(255,255,255,.18)!important}
.panel{border:0;border-radius:12px;box-shadow:0 2px 12px #1b49651a}
.metric-card{height:128px;border-radius:12px;padding:22px;color:#fff;display:flex;flex-direction:column;justify-content:center;box-shadow:0 4px 15px #1d4e6d20}
.metric-card small{opacity:.85;font-size:.95rem}.metric-card strong{font-size:1.75rem;margin-top:8px}
.metric-card.blue{background:linear-gradient(135deg,#075b88,#138ebc)}.metric-card.green{background:linear-gradient(135deg,#178f56,#2fba76)}
.metric-card.red{background:linear-gradient(135deg,#d84343,#ed6868)}.metric-card.cyan{background:linear-gradient(135deg,#0489a9,#19b8c7)}
.metric-card.yellow{background:linear-gradient(135deg,#d89516,#f0b83b)}
.account-tabs{border-bottom:0;gap:12px}
.account-tabs .nav-link{border:1px solid #cfe0ea;border-radius:12px;background:#fff;color:#456274;font-weight:600;padding:.8rem 1.1rem;box-shadow:0 2px 8px #1b49650d;transition:all .2s ease}
.account-tabs .nav-link:hover{border-color:#7cb9d3;background:#f3f9fc;color:#075b88}
.account-tabs .nav-link.active{background:linear-gradient(135deg,#075b88,#1194c3);border-color:#075b88;color:#fff;box-shadow:0 6px 18px #0b527329}
.account-tabs .nav-link .badge{background:#e8f1f6!important;color:#456274!important}
.account-tabs .nav-link.active .badge{background:#ffffff33!important;color:#fff!important}
.table thead th{background:#edf4f8;color:#527084;border:0;font-size:.88rem;white-space:nowrap}.table td{vertical-align:middle}
a{color:#0875a5}.form-control,.form-select{border-radius:8px}.form-page{max-width:720px}.import-page{max-width:1100px}
.form-page input:not([type=checkbox]),.form-page select,.form-page textarea,.import-page input[type=file]{display:block;width:100%;padding:.55rem .75rem;border:1px solid #ced4da;border-radius:8px}
.form-control,.form-select{min-height:44px;border-color:#d6e2ea}
.form-control:focus,.form-select:focus{border-color:#0b7cae;box-shadow:0 0 0 .18rem rgba(7,91,136,.12)}
.import-result-summary{display:grid;grid-template-columns:auto 1fr;gap:.95rem;align-items:start;padding:1rem 1.1rem;border-radius:20px;border:1px solid transparent;box-shadow:0 12px 28px rgba(29,85,122,.06)}
.import-result-summary.success{background:#f1fbf4;border-color:rgba(31,123,69,.16)}
.import-result-summary.warning{background:#fff8e8;border-color:rgba(153,111,0,.16)}
.import-result-icon{width:2.4rem;height:2.4rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;font-weight:800}
.import-result-summary.success .import-result-icon{background:#e0f5e7;color:#1f7b45}
.import-result-summary.warning .import-result-icon{background:#fff0c7;color:#996f00}
.import-result-title{font-weight:800;margin-bottom:.25rem}

.date-enhanced-wrap{display:flex;align-items:center;gap:.55rem;position:relative;width:100%}
.date-enhanced-wrap .form-control{flex:1 1 auto;min-width:0}
.date-picker-open-btn{flex:0 0 auto;width:42px;height:42px;border-radius:12px;border:1px solid rgba(11,92,142,.16);background:#f5fbff;color:#0b5c8e;font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:all .18s ease}
.date-picker-open-btn:hover{background:#eaf6fd;border-color:rgba(11,92,142,.28)}
.custom-date-popover{position:absolute;top:calc(100% + .45rem);left:0;width:320px;border-radius:18px;border:1px solid rgba(11,92,142,.14);background:#fff;box-shadow:0 18px 44px rgba(18,67,97,.18);padding:.95rem;z-index:1080;display:none}
.custom-date-popover.show{display:block}
.custom-date-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem;gap:.6rem}
.custom-date-title-row{display:flex;align-items:center;gap:.45rem}
.custom-date-select{border:1px solid rgba(11,92,142,.14);border-radius:10px;background:#f8fbfe;color:#18384b;font-size:.84rem;font-weight:700;padding:.36rem .6rem;min-width:84px}
.custom-date-nav{width:34px;height:34px;border:0;border-radius:10px;background:rgba(11,92,142,.08);color:#0b5c8e;font-weight:800}
.custom-date-nav:hover{background:rgba(11,92,142,.14)}
.custom-date-weekdays,.custom-date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}
.custom-date-weekdays{margin-bottom:.45rem}
.custom-date-weekdays span{text-align:center;font-size:.75rem;color:#6a8698;font-weight:600}
.custom-date-cell{height:34px;border:0;border-radius:10px;background:transparent;color:#244659;font-size:.85rem;font-weight:600}
.custom-date-cell:hover{background:rgba(11,92,142,.08)}
.custom-date-cell.is-muted{color:#b0bfca}
.custom-date-cell.is-active{background:linear-gradient(135deg,#0b5c8e,#1b96c6);color:#fff}
.custom-date-foot{display:flex;justify-content:flex-end;gap:.45rem;margin-top:.9rem}
.custom-date-action{border:1px solid rgba(11,92,142,.14);border-radius:10px;background:#fff;color:#0b5c8e;font-size:.82rem;font-weight:700;padding:.36rem .72rem}
.custom-date-action:hover{background:#eef7fb}
@media (max-width:575.98px){.custom-date-popover{width:min(320px,calc(100vw - 2rem))}}
.import-result-summary.success .import-result-title{color:#1f7b45}
.import-result-summary.warning .import-result-title{color:#996f00}
.import-result-text{margin:0;color:#5f7687;line-height:1.65}
.import-result-stats{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.7rem}
.import-result-pill{display:inline-flex;align-items:center;padding:.34rem .72rem;border-radius:999px;background:rgba(255,255,255,.7);color:#466173;font-size:.82rem;font-weight:700}
.import-result-pill strong{color:#075b88;margin-left:.25rem}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.detail-grid>div{display:flex;flex-direction:column}.detail-grid label{font-size:.85rem;color:#718493}.detail-grid b{margin-top:4px}
.login-wrap{min-height:calc(100vh - 3rem);display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:460px;border-radius:18px}.sun-icon{font-size:3rem;color:#f2ac22}.login-brand-logo{display:block;width:76px;height:76px;object-fit:contain;margin:0 auto 1rem}
@media(max-width:991.98px){.app-shell{padding:1rem .85rem 1.4rem}.app-footer{padding:0 .85rem 1.2rem}.app-footer-inner{align-items:flex-start;flex-direction:column;padding:.95rem}.app-footer-links{justify-content:flex-start}.brand-nav .container-fluid{min-height:auto;padding-top:.82rem;padding-bottom:.82rem}.brand-logo-image{height:38px;width:38px;flex-basis:38px}.brand-system-name{font-size:1.12rem}.brand-nav-links{margin:1rem 0 .7rem;padding:.45rem;gap:.45rem;background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.14)}.brand-nav .nav-link{justify-content:flex-start;padding:.82rem 1rem!important}.brand-userbar{padding:1rem 0 0;border-top:1px solid rgba(255,255,255,.16);justify-content:space-between}}
@media(max-width:768px){.detail-grid{grid-template-columns:1fr}.metric-card{height:110px}.app-footer{padding-bottom:5.8rem}.app-footer-inner{border-radius:16px}.app-footer-links{gap:.38rem}.app-footer-links a{min-height:30px;padding:.3rem .58rem;font-size:.75rem}.brand-nav .container-fluid{gap:.75rem}.brand-logo-image{height:34px;width:34px;flex-basis:34px}.brand-system-name{font-size:1rem}.brand-nav-links{border-radius:16px}.brand-user-menu{font-size:.9rem}.brand-user-name{max-width:130px}}
