:root {--navy:#111e2d;--navy2:#182b3e;--blue:#246bdb;--blue2:#eaf2ff;--ink:#172536;--muted:#708093;--line:#e5eaf0;--bg:#f5f7fa;--white:#fff;--green:#167a62;--green-bg:#e7f6ef;--amber:#a96b0b;--amber-bg:#fff4df;--red:#bd4050;--red-bg:#fff0f0;--radius:14px;--shadow:0 4px 24px rgba(24,41,62,.045)}
* {box-sizing:border-box}
html {font-family:"Segoe UI","Microsoft JhengHei","PingFang TC",sans-serif;color:var(--ink)}
body {margin:0;background:var(--bg);font-size:14px}
a {color:var(--blue);text-decoration:none}
a:hover {text-decoration:underline}
button,input,select,textarea {font:inherit}
button {cursor:pointer}
h1,h2,p {margin-top:0}
h1 {font-size:30px;line-height:1.3;letter-spacing:-.035em;margin-bottom:8px}
h2 {font-size:17px;letter-spacing:-.02em;margin-bottom:0}
small {font-size:12px}
input,select,textarea {width:100%;border:1px solid #d9e1e9;border-radius:9px;padding:11px 12px;background:#fff;color:var(--ink);outline:none;min-height:42px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus {border-color:#6a9dea;box-shadow:0 0 0 3px rgba(36,107,219,.11)}
input::placeholder,textarea::placeholder {color:#a2adba}
textarea {resize:vertical}
.app-shell {display:flex;min-height:100vh}
.sidebar {width:250px;flex:0 0 250px;background:var(--navy);color:#d7e2ec;min-height:100vh;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:26px 14px 18px;z-index:20}
.brand,.auth-brand {display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;padding:0 12px}
.brand:hover {text-decoration:none}
.brand-mark {display:grid;place-items:center;width:39px;height:39px;border-radius:10px;background:#e1ad58;color:#192536;font-weight:800;letter-spacing:-.08em;font-size:17px;flex:none}
.brand strong,.auth-brand strong {display:block;font-size:15px;line-height:1.2;letter-spacing:.02em}
.brand small,.auth-brand small {display:block;font-size:10px;letter-spacing:.16em;color:#91a6ba;margin-top:4px}
.nav-label {font-size:10px;letter-spacing:.16em;font-weight:700;color:#758da4;text-transform:uppercase;margin:37px 14px 10px}
.nav .nav-label {margin-top:31px}
.nav {display:flex;flex-direction:column;gap:4px}
.nav a {display:block;color:#aabccc;border-radius:9px;padding:11px 15px;font-weight:600;transition:background .15s,color .15s}
.nav a:hover {background:#21364a;color:#fff;text-decoration:none}
.nav a.active {background:#304b65;color:#fff;box-shadow:inset 3px 0 #e1ad58}
.sidebar-foot {margin-top:auto;border-top:1px solid #2c4052;padding:19px 13px 2px;color:#8ca0b5;font-size:11px}
.status-dot {display:inline-block;width:7px;height:7px;border-radius:50%;background:#67c9a4;margin-right:5px}
.main-wrap {min-width:0;flex:1}
.topbar {height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px}
.breadcrumb {font-size:12px;color:#8794a4;font-weight:600}
.breadcrumb a {color:#8794a4}
.top-actions {display:flex;align-items:center;gap:11px}
.avatar {width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#dbe9ff;color:#235eb4;font-weight:800}
.top-user {font-weight:700;line-height:1.2}
.top-user small {display:block;color:var(--muted);font-weight:500;margin-top:3px}
.top-actions form {margin-left:15px}
.text-button {border:none;background:none;color:var(--blue);font-weight:700;padding:8px}
.menu-btn {display:none;border:0;background:none;color:var(--ink);font-size:20px}
.content {max-width:1520px;margin:auto;padding:34px 38px 70px}
.flash-stack {display:grid;gap:8px;margin-bottom:20px}
.flash {border:1px solid #badace;border-radius:9px;padding:12px 15px;background:var(--green-bg);color:var(--green);font-weight:600}
.flash.error {border-color:#f2c6cb;background:var(--red-bg);color:var(--red)}
.page-head {display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}
.page-head p {color:var(--muted);margin:0}
.eyebrow {font-size:11px;letter-spacing:.18em;color:#6085ae;font-weight:800;margin-bottom:8px}
.date-pill {padding:11px 16px;background:#fff;border:1px solid var(--line);border-radius:10px;color:#5f6f81;font-size:12px;font-weight:700;white-space:nowrap}
.metrics {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:25px}
.metrics.two {grid-template-columns:repeat(2,minmax(0,1fr))}
.metrics.three {grid-template-columns:repeat(3,minmax(0,1fr))}
.metric {min-height:138px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px 23px;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:center}
.metric>span {color:#6a7a8d;font-size:12px;font-weight:700}
.metric strong {font-size:25px;letter-spacing:-.02em;margin-top:11px;white-space:nowrap}
.metric em {font-size:14px;font-style:normal;font-weight:600;color:#637589}
.metric small {color:#91a0ad;margin-top:7px}
.metric.accent {background:#f1f7ff;border-color:#d4e5ff}
.quick-actions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:25px}
.action-card {background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px 20px;box-shadow:var(--shadow);display:grid;grid-template-columns:43px 1fr 20px;column-gap:13px;align-items:center;color:var(--ink);transition:transform .15s,box-shadow .15s}
.action-card:hover {transform:translateY(-2px);box-shadow:0 10px 30px rgba(24,41,62,.09);text-decoration:none}
.action-icon {width:42px;height:42px;border-radius:10px;background:#edf4ff;display:grid;place-items:center;font-size:22px;color:#3275d9;grid-row:span 2}
.action-card strong {font-size:14px}
.action-card small {grid-column:2;color:var(--muted);margin-top:2px}
.action-card b {grid-column:3;grid-row:1/span 2;color:#7e9bb8;font-size:18px}
.panel {background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:22px;overflow:hidden}
.panel-head {padding:20px 23px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line)}
.panel-head a,.count {font-size:12px;font-weight:700}
.count {color:#8898a9;background:#f4f6f9;border-radius:30px;padding:5px 10px}
.table-wrap {overflow-x:auto}
table {width:100%;border-collapse:collapse;min-width:680px}
th {text-align:left;background:#fafbfd;color:#8492a1;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:800;padding:13px 22px;white-space:nowrap}
td {padding:15px 22px;border-top:1px solid #edf0f4;vertical-align:middle;color:#4d5b69}
tbody tr:hover {background:#fafcff}
td.strong,.strong {color:var(--ink);font-weight:700}
.block {display:block;margin-top:5px;color:#8996a4}
.empty {text-align:center;color:#98a6b5;padding:34px}
.badge {display:inline-block;border-radius:100px;padding:5px 10px;font-size:11px;font-weight:800;white-space:nowrap}
.badge.pending {background:var(--amber-bg);color:var(--amber)}
.badge.approved {background:var(--green-bg);color:var(--green)}
.badge.rejected {background:var(--red-bg);color:var(--red)}
.badge.neutral {background:#edf2f7;color:#627589}
.badge.large {font-size:12px;padding:9px 13px}
.form-panel {padding:0 23px 24px}
.form-panel .panel-head {padding-left:0;padding-right:0}
.form-panel>p {margin:17px 0}
.form-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;padding-top:23px}
.form-grid label,.form-stack label,.filter-row label {display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#526174}
.form-grid label small {color:#98a5b2;font-weight:500}
.span-2 {grid-column:span 2}
.required {color:var(--red)}
.btn {border:1px solid transparent;border-radius:9px;padding:11px 16px;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:15px;min-height:41px;white-space:nowrap}
.btn.primary {background:#246bdb;color:#fff}
.btn.primary:hover {background:#185cce}
.btn.secondary {background:#fff;border-color:#dce4ed;color:#50657a}
.btn.danger {background:#fff;border-color:#f0cad1;color:#b94356}
.btn.small {min-height:34px;padding:7px 10px;font-size:11px}
.btn.full {width:100%;justify-content:space-between;padding:13px 17px;font-size:13px}
.form-actions {margin-top:23px;border-top:1px solid var(--line);padding-top:23px}
.section-title {margin:26px 0 8px}
.muted {color:var(--muted);line-height:1.65}
.contact-row {display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:9px;margin:10px 0}
.contact-row .text-button {color:var(--red)}
.review-form,.inline-actions {display:flex;align-items:center;gap:6px}
.review-form input {min-width:130px;max-width:170px;min-height:34px;padding:6px 8px;font-size:11px}
.review-form input[type=date] {max-width:135px}
.filter-row {display:flex;margin-bottom:18px}
.filter-row label {min-width:220px}
.split-panels {display:grid;grid-template-columns:1.25fr .75fr;gap:20px}
.summary-list {padding:5px 23px}
.summary-list>div {display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);color:#647486}
.summary-list strong {color:var(--ink)}
.summary-list .total {border:0;font-weight:800;color:var(--ink)}
.info-note {border:1px solid #d8e6f4;background:#f0f7fe;border-radius:10px;color:#647a90;padding:14px 17px;font-size:12px;line-height:1.7}
.positive {color:var(--green);font-weight:800}
.negative,.error-text {color:var(--red);font-weight:700}
.auth-body {min-height:100vh;background:radial-gradient(circle at 80% 15%,#1c405e 0,transparent 31%),linear-gradient(135deg,#0f1d2b,#1d3247);display:grid;place-items:center;padding:30px}
.auth-shell {width:min(100%,448px)}
.auth-brand {justify-content:center;margin-bottom:28px}
.auth-brand .brand-mark {width:45px;height:45px}
.auth-card {background:#fff;border-radius:17px;padding:38px;box-shadow:0 22px 75px rgba(0,0,0,.18)}
.auth-card h1 {font-size:27px;margin-bottom:7px}
.auth-card .muted {margin-bottom:25px}
.form-stack {display:grid;gap:18px}
.form-stack label {gap:8px}
.auth-link {text-align:center;margin:25px 0 0;color:#8a98a7;font-size:12px}
.auth-link a {font-weight:800}
.auth-footer {text-align:center;color:#8da5b8;font-size:11px;margin:25px 0 0}
.auth-shell .flash {margin-bottom:14px}
.code-input {text-align:center;letter-spacing:.45em;font-size:22px;font-weight:800}
.resend {text-align:center;margin-top:15px}
.panel-cta {padding:18px 23px;background:#fbfdff;border-bottom:1px solid var(--line)}
.panel-cta p {margin:0 0 12px}
.report-filter {align-items:end;gap:9px}
.report-filter .btn {margin-bottom:0}
.ui-icon {display:inline-block;vertical-align:-.18em;flex:none}
.field-label {display:inline-flex;align-items:center;gap:7px;min-height:17px}
.field-label .ui-icon {color:#6b88aa}
.nav a {display:flex;align-items:center;gap:12px}
.nav a .ui-icon {color:#8ea8bf}
.nav a.active .ui-icon {color:#e1ad58}
.btn .ui-icon,.text-button .ui-icon {flex:none}
.text-button {display:inline-flex;align-items:center;gap:6px}
.menu-btn {align-items:center;gap:7px}
.action-icon .ui-icon {color:#3275d9}
.input-with-icon {position:relative;display:inline-flex;align-items:center;min-width:0;width:100%}
.input-with-icon>.ui-icon {position:absolute;left:11px;z-index:1;color:#91a2b4;pointer-events:none}
.input-with-icon>input,.input-with-icon>select,.input-with-icon>textarea {padding-left:35px}
.review-form .input-with-icon {min-width:130px;max-width:180px;flex:1}
.contact-row .input-with-icon {width:100%}
th .ui-icon {margin-right:6px;color:#91a4b7}
.top-actions .text-button {gap:7px}
@media(max-width:1250px) {
.metrics {grid-template-columns:repeat(2,1fr)}
.action-card {padding:17px}
.content {padding:28px 28px 60px}
.topbar {padding:0 28px}
}
@media(max-width:900px) {
.sidebar {position:fixed;transform:translateX(-100%);transition:transform .2s}
.sidebar.open {transform:translateX(0)}
.menu-btn {display:block}
.breadcrumb {margin-right:auto;margin-left:15px}
.top-user {display:none}
.topbar {padding:0 20px}
.content {padding:25px 20px}
.quick-actions {grid-template-columns:1fr}
.split-panels {grid-template-columns:1fr}
}
@media(max-width:600px) {
h1 {font-size:24px}
.page-head {align-items:flex-start;flex-direction:column}
.metrics,.metrics.two,.metrics.three {grid-template-columns:1fr}
.metric {min-height:112px}
.form-grid {grid-template-columns:1fr}
.span-2 {grid-column:span 1}
.contact-row {grid-template-columns:1fr 1fr}
.contact-row input:nth-child(3) {grid-column:1/span 2}
.auth-card {padding:27px}
.content {padding:20px 13px 50px}
.panel-head {padding:17px}
.form-panel {padding:0 17px 20px}
.review-form {flex-wrap:wrap}
.top-actions form {margin-left:0}
}
.sidebar {overflow-y:auto}
.sidebar-foot {flex:none;padding-top:17px}
.session-title {font-size:11px;color:#d8e6f1;font-weight:800}
.session-facts {margin:14px 0 17px;display:grid;gap:10px}
.session-facts>div {display:grid;gap:3px}
.session-facts dt {color:#7f98ae;font-size:10px}
.session-facts dd {margin:0;color:#e3edf5;font-size:11px;font-weight:700;overflow-wrap:anywhere}
.copyright {display:block;border-top:1px solid #2c4052;padding-top:14px;color:#8096a9;font-size:10px}
.avatar-link {overflow:hidden;text-decoration:none}
.avatar-link:hover {text-decoration:none;box-shadow:0 0 0 3px #d7e7fb}
.avatar img,.avatar-preview img {width:100%;height:100%;object-fit:cover;display:block}
.avatar-panel {display:flex;align-items:center;gap:25px;padding:24px}
.avatar-preview {height:88px;width:88px;flex:none;border-radius:50%;background:#dbe9ff;color:#235eb4;display:grid;place-items:center;font-size:34px;font-weight:800;overflow:hidden;border:4px solid #f0f5fb}
.avatar-copy {flex:1;min-width:0}
.avatar-copy p {color:var(--muted);margin:7px 0 16px;font-size:12px}
.avatar-form {display:flex;align-items:end;gap:13px}
.avatar-form label {display:grid;gap:7px;flex:1;font-size:12px;font-weight:700;color:#526174}
.avatar-form input {padding:8px;background:#fafbfd}
.password-panel {max-width:650px}
.password-auth .auth-link {margin-top:20px}
.sidebar {overflow:hidden}
.sidebar>.nav {min-height:0;flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#476078 transparent}
.sidebar-foot {margin-top:12px;padding-top:13px}
.session-facts {margin:10px 0 12px;gap:7px}
.copyright {padding-top:10px}
.session-title {font-size:12px}
.session-facts dt {font-size:11px}
.session-facts dd {font-size:12px}
@media(max-width:700px) {
.avatar-panel {align-items:flex-start;flex-direction:column}
.avatar-form {align-items:stretch;flex-direction:column}
.avatar-form label,.avatar-form button {width:100%}
}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.session-title {display:flex;align-items:center;gap:8px;min-height:20px}
.session-title .session-icon {color:#9fc0dc;display:inline-flex}
.session-facts>div {grid-template-columns:19px minmax(0,1fr);align-items:center;column-gap:10px}
.session-facts dt {display:flex;align-items:center;color:#80a4c3}
.session-facts dd {font-size:11px;line-height:1.45}
.password-strength {display:grid;gap:7px;margin-top:2px;width:100%;color:#77899c;font-size:11px;font-weight:600}
.password-strength-head {display:flex;justify-content:space-between;gap:10px}
.password-strength-head strong {color:#7c8d9f}
.password-strength-track {height:6px;border-radius:999px;background:#e7edf3;overflow:hidden}
.password-strength-track span {display:block;height:100%;width:0;border-radius:inherit;background:#a4b2c1;transition:width .2s,background .2s}
.password-strength small {color:#8998a8;font-size:11px;line-height:1.5;font-weight:500}
.password-strength[data-level="weak"] .password-strength-track span {background:#d75763}
.password-strength[data-level="weak"] strong {color:#c54b56}
.password-strength[data-level="fair"] .password-strength-track span {background:#e3a647}
.password-strength[data-level="fair"] strong {color:#b57d25}
.password-strength[data-level="good"] .password-strength-track span {background:#4c9bc5}
.password-strength[data-level="good"] strong {color:#27769e}
.password-strength[data-level="strong"] .password-strength-track span {background:#39a47d}
.password-strength[data-level="strong"] strong {color:#268563}
.page-actions {display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.asset-filter-panel {padding-bottom:22px}
.asset-filters {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 20px;padding-top:22px}
.asset-filters label,.label-controls label {display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#526174}
.asset-filter-hint {display:flex;align-items:end;color:#8596a7;font-size:11px;line-height:1.5;padding-bottom:5px}
.asset-filter-actions {display:flex;align-items:end;gap:9px;flex-wrap:wrap}
.asset-table {min-width:1280px}
.asset-table td,.asset-table th {padding-left:16px;padding-right:16px}
.asset-table td {font-size:12px}
.asset-code {font-family:Consolas,monospace;font-size:11px!important;white-space:nowrap}
.pagination {display:flex;justify-content:center;align-items:center;gap:15px;padding:20px;border-top:1px solid var(--line);font-size:12px;font-weight:700;color:#66788a}
.pagination .disabled {opacity:.45;pointer-events:none}
.asset-form-panel {max-width:850px}
.label-body {background:#f3f6fa;color:#172536}
.label-shell {max-width:1100px;margin:0 auto;padding:35px 28px}
.label-toolbar {display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:28px}
.label-toolbar h1 {font-size:27px}
.label-toolbar p {color:#6c7f91;font-size:12px;margin:0}
.label-controls {display:flex;align-items:end;gap:9px;flex-wrap:wrap}
.label-controls form {display:flex;align-items:end;gap:9px}
.label-controls input {width:100px}
.label-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.asset-label {display:flex;align-items:center;gap:16px;min-height:160px;padding:17px;background:#fff;border:1px solid #d7e0e9;border-radius:12px;break-inside:avoid}
.asset-label img {width:126px;height:126px;object-fit:contain;flex:none}
.asset-label>div {min-width:0;display:flex;flex-direction:column;gap:4px}
.asset-label strong {font-size:14px;color:#172536}
.asset-label span {font-size:10px;color:#8795a5;font-weight:700}
.asset-label b {font-size:13px;letter-spacing:.02em;overflow-wrap:anywhere}
.asset-label small {color:#617384;overflow-wrap:anywhere}
@media(max-width:900px) {
.asset-filters {grid-template-columns:repeat(2,minmax(0,1fr))}
.label-toolbar {align-items:flex-start;flex-direction:column}
}
@media(max-width:620px) {
.asset-filters,.label-grid {grid-template-columns:1fr}
.page-actions {width:100%}
.page-actions .btn {flex:1}
.label-shell {padding:20px 12px}
.label-controls {align-items:stretch}
.label-controls form {width:100%}
}
@media print {
@page {size:A4;margin:12mm}
.label-body {background:#fff}
.label-shell {max-width:none;padding:0}
.label-toolbar {display:none}
.label-grid {grid-template-columns:repeat(2,1fr);gap:5mm}
.asset-label {border:1px solid #b8c1ca;border-radius:0;min-height:42mm;padding:3mm;box-shadow:none}
.asset-label img {width:34mm;height:34mm}
.asset-label b {font-size:10pt}
.asset-label small {font-size:9pt}
}
.report-control-actions {display:flex;gap:9px;align-items:end}
.report-period-title {display:flex;justify-content:space-between;align-items:end;margin:28px 0 15px;gap:20px}
.report-period-title h2 {font-size:21px}
.report-period-title>span {font-size:11px;color:#8b9aab;font-weight:700}
.report-metrics {grid-template-columns:repeat(4,minmax(0,1fr))}
.report-metrics .metric {min-height:145px}
.report-metrics .metric strong {font-size:23px}
.report-grid {display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,.8fr);gap:20px}
.report-trend .panel-head small {display:block;color:#91a1af;margin-top:6px}
.chart-legend {display:flex;align-items:center;gap:14px;font-size:11px;color:#74879a;font-weight:700}
.chart-legend span {display:inline-flex;align-items:center;gap:6px}
.chart-legend i {display:block;width:10px;height:10px;border-radius:3px}
.legend-income {background:#2e73d5}
.legend-cost {background:#e2a74d}
.chart-wrap {padding:15px 19px 19px;overflow-x:auto}
.finance-chart {display:block;width:100%;min-width:600px;height:auto}
.chart-gridline {stroke:#e7edf3;stroke-width:1;stroke-dasharray:4 5}
.chart-baseline {stroke:#b9c8d6;stroke-width:1.4}
.chart-axis,.chart-label {fill:#8193a5;font:10px "DM Sans","Noto Sans TC",sans-serif}
.chart-income {fill:#2e73d5}
.chart-cost {fill:#e2a74d}
.cost-breakdown {padding:16px 20px 20px;display:grid;gap:15px;max-height:335px;overflow-y:auto}
.cost-row>div:first-child {display:flex;justify-content:space-between;gap:10px;font-size:11px}
.cost-row strong {color:#475d72}
.cost-row span {color:#5b6f82;font-weight:700;white-space:nowrap}
.cost-track {height:6px;background:#edf1f5;border-radius:999px;overflow:hidden;margin-top:8px}
.cost-track span {display:block;height:100%;border-radius:999px;background:#e2a74d}
.report-note {margin-bottom:15px}
.report-heading {margin-bottom:20px}
@media(max-width:1150px) {
.report-grid {grid-template-columns:1fr}
.report-metrics {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px) {
.report-control-actions {flex-wrap:wrap}
.report-metrics {grid-template-columns:1fr}
.report-period-title {align-items:flex-start;flex-direction:column}
}
@media print {
.app-body {background:#fff}
.sidebar,.topbar,.report-controls,.report-print-btn {display:none!important}
.main-wrap {width:100%}
.content {max-width:none;padding:0}
.report-heading {margin-bottom:12px}
.report-metrics {grid-template-columns:repeat(4,1fr)}
.report-metrics .metric {box-shadow:none;min-height:100px;padding:12px}
.report-metrics .metric strong {font-size:17px}
.report-grid {grid-template-columns:1fr 1fr;gap:10px}
.report-grid .panel,.content>.panel {box-shadow:none;break-inside:avoid}
.chart-wrap {padding:5px}
.finance-chart {min-width:0}
.report-note {font-size:10px}
table {min-width:0;font-size:9px}
th,td {padding:6px 8px}
}
.avatar-panel {position:relative;gap:29px;padding:30px 34px;background:linear-gradient(115deg,#fff 55%,#f6f9fd)}
.avatar-photo-wrap {display:flex;flex-direction:column;align-items:center;gap:11px;flex:none}
.avatar-trigger {position:relative;display:block;width:112px;height:112px;padding:0;border:0;border-radius:50%;background:transparent}
.avatar-trigger .avatar-preview {width:112px;height:112px;border:5px solid #fff;box-shadow:0 0 0 1px #dbe6f2,0 9px 24px rgba(35,78,123,.14);transition:transform .2s,box-shadow .2s}
.avatar-trigger:hover .avatar-preview,.avatar-trigger:focus-visible .avatar-preview {transform:scale(1.04);box-shadow:0 0 0 3px #b9d5fa,0 12px 28px rgba(35,78,123,.18)}
.avatar-trigger:focus-visible {outline:3px solid #246bdb;outline-offset:6px}
.avatar-edit-badge {position:absolute;right:0;bottom:2px;width:34px;height:34px;display:grid;place-items:center;border:3px solid #fff;border-radius:50%;background:#246bdb;color:#fff;box-shadow:0 4px 12px rgba(36,107,219,.25)}
.avatar-edit-badge .ui-icon {width:16px;height:16px}
.avatar-photo-hint {font-size:11px;font-weight:700;color:#6b8197}
.avatar-copy .eyebrow {margin-bottom:5px}
.avatar-copy h2 {font-size:19px}
.avatar-copy p {max-width:610px;margin:9px 0 18px;line-height:1.7}
.avatar-actions {display:flex;align-items:center;gap:15px;flex-wrap:wrap}
.avatar-actions>span {font-size:11px;color:#8495a8}
.avatar-confirm-dialog .swal2-image {border-radius:50%;object-fit:cover;border:5px solid #f1f6fc;box-shadow:0 6px 24px rgba(24,41,62,.12)}
@media(max-width:700px) {
.avatar-panel {padding:24px;align-items:center;text-align:center}
.avatar-copy {width:100%}
.avatar-actions {justify-content:center}
}
.report-controls {padding:0;background:#fff;box-shadow:0 10px 34px rgba(24,41,62,.055)}
.report-control-header {display:flex;align-items:center;gap:17px;padding:25px 28px 22px;background:linear-gradient(110deg,#f6f9ff 0%,#fff 72%);border-bottom:1px solid #e7edf5}
.report-control-icon {width:48px;height:48px;flex:none;border-radius:13px;background:#e5efff;color:#246bdb;display:grid;place-items:center}
.report-control-icon .ui-icon {width:22px;height:22px}
.report-control-heading {min-width:0}
.report-control-heading .eyebrow {font-size:10px;margin-bottom:4px}
.report-control-heading h2 {font-size:18px}
.report-control-heading p {margin:5px 0 0;color:#75879b;font-size:12px;line-height:1.55}
.report-current-period {margin-left:auto;flex:none;padding:8px 12px;border:1px solid #dce8f5;background:#fff;border-radius:999px;color:#778b9e;font-size:11px;font-weight:600}
.report-current-period strong {color:#245eaa;margin-left:4px}
.report-controls .report-filter-field {display:flex;flex-direction:column;gap:8px;min-width:0;font-size:12px;font-weight:700;color:#43576c}
.report-controls .report-filter-field .field-label {display:flex;align-items:center;gap:7px}
.report-controls .report-filter-field .field-label .ui-icon {color:#5279a7}
.report-controls .report-filter-field select,.report-controls .report-filter-field input {height:45px;min-height:45px;background:#fff;border-color:#d6e0eb;font-weight:600}
.report-controls .report-filter-field select:focus,.report-controls .report-filter-field input:focus {border-color:#246bdb}
.report-controls .report-filter-field.is-inactive input {background:#f5f7fa;color:#a0aebe;cursor:not-allowed}
.report-controls .report-control-actions {display:flex;align-items:center;gap:9px;white-space:nowrap}
.report-controls .report-control-actions .btn {min-height:45px;padding:11px 16px}
.report-control-footnote {display:flex;align-items:center;gap:8px;margin:0 28px 24px;padding:11px 13px;background:#f7f9fc;border-radius:9px;color:#73869a;font-size:11px;line-height:1.5}
.report-control-footnote>span:first-child {display:flex;color:#5e86b3}
.report-control-footnote .ui-icon {width:15px;height:15px}
@media(max-width:1000px) {
.report-controls .report-control-actions {grid-column:1/-1}
}
@media(max-width:650px) {
.report-control-header {align-items:flex-start;flex-wrap:wrap;padding:20px}
.report-control-icon {width:42px;height:42px}
.report-control-heading {flex:1}
.report-current-period {margin-left:0}
.report-controls .report-control-actions {grid-column:auto;flex-wrap:wrap}
.report-controls .report-control-actions .btn {flex:1}
.report-control-footnote {margin:0 20px 20px}
}
.report-control-form {padding:24px 28px 18px}
.report-period-options {margin:0;padding:0;border:0;min-width:0}
.report-period-options legend {padding:0;margin-bottom:11px;color:#52677d;font-size:12px;font-weight:800}
.report-period-pills {display:flex;flex-wrap:wrap;gap:8px}
.report-period-pill {position:relative;display:inline-flex;cursor:pointer}
.report-period-pill input {position:absolute;opacity:0;width:100%;height:100%;min-height:0;margin:0;cursor:pointer}
.report-period-pill span {display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:10px 17px;border:1px solid #dce5ef;border-radius:9px;background:#fff;color:#63788e;font-size:12px;font-weight:800;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.report-period-pill:hover span {border-color:#9bbde8;color:#205caa}
.report-period-pill input:checked+span {background:#eaf2ff;border-color:#8bb7f3;color:#1d62bc;box-shadow:inset 0 0 0 1px #8bb7f3}
.report-period-pill input:focus-visible+span {outline:3px solid #246bdb;outline-offset:3px}
.report-control-bottom {display:flex;align-items:end;justify-content:space-between;gap:18px;margin-top:21px;padding-top:19px;border-top:1px solid #edf1f5;min-height:65px}
.report-control-bottom .report-filter-field {width:min(100%,290px)}
.report-control-bottom .report-filter-field.is-hidden {display:none!important}
.report-control-bottom .report-control-actions {margin-left:auto}
.report-control-footnote {margin-top:0}
@media(max-width:650px) {
.report-control-form {padding:20px}
.report-period-pills {display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.report-period-pill span {min-width:0;width:100%}
.report-control-bottom {align-items:stretch;flex-direction:column}
.report-control-bottom .report-filter-field {width:100%}
.report-control-bottom .report-control-actions {margin-left:0}
}
/* Local image CAPTCHA; isolated from the authenticated workspace layout. */
.captcha-field {display:grid;gap:9px;min-width:0;padding:16px;background:#f8fafd;border:1px solid #dce5f1;border-radius:12px}
.captcha-field>label {margin:0}
.captcha-image-button {display:block;width:100%;height:80px;min-height:44px;min-width:0;padding:0;overflow:hidden;border:1px solid #d5e1ef;border-radius:8px;background:#f1f5fc;cursor:pointer;transition:border-color .15s,opacity .15s}
.captcha-image-button:hover {border-color:#6a9dea}
.captcha-image-button:disabled {opacity:.6;cursor:wait}
.captcha-image {display:block;width:100%;height:100%;object-fit:contain}
.captcha-field input[name=captcha] {width:100%;text-transform:uppercase;letter-spacing:.08em}
.captcha-field input[name=captcha]::placeholder {text-transform:none;letter-spacing:0;font-size:12px}
.auth-home-link {margin-top:8px}
@media(max-width:400px) {
.captcha-field {padding:12px}
}
