:root{--bg:#f4f7fb;--panel:#fff;--border:#d9e1ea;--text:#1f2d3d;--muted:#687589;--primary:#1d4ed8;--primary-dark:#1e40af;--danger:#dc2626}*{box-sizing:border-box}body{background:#f4f7fb;background:var(--bg);color:#1f2d3d;color:var(--text);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}input,select,textarea{background:#fff;border:1px solid #d9e1ea;border:1px solid var(--border);border-radius:8px;padding:8px 10px;width:100%}textarea{min-height:90px;resize:vertical}.admin-shell{display:flex;min-height:100vh}.sidebar{background:#0f172a;color:#d7e0ee;padding:20px 14px;width:230px}.brand{font-size:18px;font-weight:700;margin-bottom:20px}.menu{display:flex;flex-direction:column;gap:8px}.menu-link{border-radius:8px;color:#d7e0ee;padding:10px 12px}.menu-link.active,.menu-link:hover{background:#2563eb59;color:#fff}.main-panel{display:flex;flex:1 1;flex-direction:column;min-width:0}.topbar{align-items:center;background:#fff;border-bottom:1px solid #d9e1ea;border-bottom:1px solid var(--border);display:flex;height:64px;justify-content:space-between;padding:0 18px}.content{padding:18px}.site-footer{font-size:12px;padding:12px 0;text-align:center}.site-footer,.site-footer a{color:#687589;color:var(--muted)}.site-footer a{transition:color .2s}.site-footer a:hover{color:#1d4ed8;color:var(--primary)}.page-title{margin:4px 0 8px}.page-desc{color:#687589;color:var(--muted);margin:0}.panel{background:#fff;background:var(--panel);border:1px solid #d9e1ea;border:1px solid var(--border);border-radius:12px;margin-top:16px;padding:16px}.panel h2{margin-top:0}.panel-title-row{gap:12px;justify-content:space-between}.panel-title-row,.toolbar{align-items:center;display:flex}.toolbar{flex-wrap:wrap;gap:10px;margin-bottom:12px}.toolbar label{align-items:center;display:flex;gap:8px}.toolbar>input,.toolbar>select{min-width:220px;width:auto}.table-wrap{border:1px solid #d9e1ea;border:1px solid var(--border);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;min-width:960px;width:100%}td,th{border-bottom:1px solid #edf2f7;padding:10px;text-align:left;vertical-align:top}th{background:#f8fbff;white-space:nowrap}.table-actions{display:flex;flex-wrap:wrap;gap:8px}.table-actions select{min-width:110px;width:auto}.btn{border:0;border-radius:8px;cursor:pointer;padding:8px 12px;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.65}.btn-primary{background:#1d4ed8;background:var(--primary);color:#fff}.btn-primary:hover{background:#1e40af;background:var(--primary-dark)}.btn-secondary{background:#e5ecf6;color:#243447}.btn-danger{background:#dc2626;background:var(--danger);color:#fff}.pager{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:12px}.pager-actions{display:flex;gap:8px}.grid-form{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.grid-form label{display:flex;flex-direction:column;gap:6px}.form-actions,.grid-form textarea{grid-column:1/-1}.form-actions{display:flex;gap:10px}.form-tip{color:#687589;color:var(--muted);font-size:12px;margin-top:4px}.checkbox{align-items:center;display:flex;gap:8px}.checkbox input{width:auto}.json-view{background:#0f172a;border-radius:10px;color:#dbeafe;overflow:auto;padding:12px}.ellipsis{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-top:14px}.card{background:#fff;border:1px solid #d9e1ea;border:1px solid var(--border);border-radius:12px;padding:14px}.card p{color:#687589;color:var(--muted);margin-bottom:0}.login-page{align-items:center;background:linear-gradient(140deg,#e2e8f0,#f8fafc);justify-content:center;min-height:100vh}.login-card,.login-page{display:flex;padding:20px}.login-card{background:#fff;border:1px solid #d9e1ea;border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:8px;width:360px}.login-card h1{margin:0}.full{width:100%}.error-box{background:#fee2e2;border-radius:8px;color:#b91c1c;padding:8px 10px}.map-picker-mask{align-items:center;background:#0f172a80;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1100}.map-picker-dialog{background:#fff;border-radius:12px;max-height:90vh;overflow:auto;padding:14px;width:min(1000px,100%)}.map-picker-canvas,.map-picker-dialog{border:1px solid #d9e1ea;border:1px solid var(--border)}.map-picker-canvas{border-radius:8px;height:420px;margin-top:10px;width:100%}.map-picker-info{color:#687589;color:var(--muted);display:flex;flex-direction:column;gap:4px;margin-top:10px}.inner-panel{background:#f8fbff;margin-top:12px}.inner-panel h3{margin:0}.line-form{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:10px}.line-form .checkbox{justify-content:center}.message-detail{display:flex;flex-direction:column;gap:12px}.message-meta{color:#687589;color:var(--muted);display:flex;flex-wrap:wrap;gap:10px 16px}.message-reply-box{background:#f8fbff;border:1px solid #d9e1ea;border:1px solid var(--border);border-radius:8px;padding:12px}.message-reply-box label{display:block;margin-bottom:6px}.stats-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-bottom:14px}.stats-card{background:#f8fbff;border:1px solid #d9e1ea;border:1px solid var(--border);border-radius:10px;padding:10px 12px}.stats-label{color:#687589;color:var(--muted);font-size:12px}.stats-value{font-size:20px;font-weight:700;margin-top:4px}.income-chart{height:420px;width:100%}.upload-field{align-items:center;display:flex;gap:8px;grid-column:1/-1}.upload-field input{flex:1 1}.upload-btn{cursor:pointer;white-space:nowrap}.upload-preview{grid-column:1/-1}.upload-preview img{background:#fafafa;border:1px solid #ddd;border-radius:4px;height:120px;object-fit:contain;width:120px}@media (max-width:900px){.admin-shell{flex-direction:column}.sidebar{padding:12px;width:100%}.menu{flex-direction:row;flex-wrap:wrap}.grid-form,.line-form{grid-template-columns:1fr}}
/*# sourceMappingURL=main.7a1d5895.css.map*/