*{box-sizing:border-box}
:root{
 --bg:#07111f;--panel:#101d31;--panel2:#14243b;--line:#2a3a52;
 --text:#f4f7fb;--muted:#9eacbf;--gold:#f0b456;--red:#ff6767;
 --green:#45d2a0;--blue:#4fa4ff
}
html{font-size:16px}
body{
 margin:0;min-height:100vh;color:var(--text);
 font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;
 background:
 radial-gradient(circle at 10% 0,rgba(65,124,255,.22),transparent 35%),
 radial-gradient(circle at 95% 0,rgba(255,121,81,.13),transparent 28%),
 linear-gradient(150deg,#06101d,#101d30 60%,#081322)
}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.container{width:min(1120px,94%);margin:auto;padding:24px 0 48px}
.header{
 display:flex;justify-content:space-between;align-items:center;gap:18px;
 margin-bottom:20px
}
.brand h1{margin:0;font-size:29px;letter-spacing:1px}
.brand p{margin:7px 0 0;color:var(--muted);font-size:13px}
.nav{display:flex;gap:10px;flex-wrap:wrap}
.btn{
 display:inline-flex;align-items:center;justify-content:center;min-height:43px;
 padding:10px 16px;border:0;border-radius:12px;cursor:pointer;font-weight:800
}
.btn-primary{background:linear-gradient(135deg,#f5bd62,#ff8756);color:#271500}
.btn-green{background:linear-gradient(135deg,#4cdda9,#36a8dc);color:#04171c}
.btn-dark{background:#24344c;color:#fff;border:1px solid #344861}
.btn-danger{background:rgba(255,103,103,.14);color:#ff9b9b;border:1px solid rgba(255,103,103,.35)}
.card{
 background:rgba(16,29,49,.94);border:1px solid var(--line);
 border-radius:20px;box-shadow:0 18px 55px rgba(0,0,0,.28)
}
.notice-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px;align-items:start}
.notice{
 position:relative;overflow:hidden;padding:18px 18px 16px;min-height:auto;
 background:
 radial-gradient(circle at 90% 12%,rgba(240,180,86,.12),transparent 25%),
 linear-gradient(145deg,rgba(21,37,61,.98),rgba(10,21,37,.98))
}
.notice:before{
 content:"";position:absolute;left:0;top:0;bottom:0;width:5px;
 background:linear-gradient(var(--gold),#ff8855,var(--red))
}
.notice-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.kicker{font-size:11px;color:var(--gold);letter-spacing:2px}
.status{
 padding:5px 10px;border:1px solid rgba(240,180,86,.4);
 border-radius:999px;color:#ffd594;font-size:11px;background:rgba(240,180,86,.07)
}
.name{margin:12px 0 9px;font-size:31px;font-weight:900;line-height:1.15}
.problem{
 margin:0;padding:8px 0 8px 12px;border-left:3px solid var(--gold);
 font-size:15px;line-height:1.6;color:#dce5ef;overflow-wrap:anywhere
}
.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:14px}
.info{
 padding:11px 10px;border:1px solid var(--line);border-radius:12px;
 background:rgba(255,255,255,.035)
}
.label{font-size:11px;color:var(--muted);margin-bottom:4px}
.value{font-size:17px;font-weight:900}
.amount{font-size:28px;color:var(--red)}
.remark{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);line-height:1.55;font-size:12px}
.empty{text-align:center;padding:70px 20px;color:var(--muted)}
.page-title{margin:0 0 18px}
.history-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
.history-item{padding:14px 14px 12px}
.history-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.history-name{font-size:18px;font-weight:900;line-height:1.25}
.history-money{font-size:20px;color:var(--red);font-weight:900;white-space:nowrap}
.history-problem{margin-top:8px;line-height:1.5;color:#d4deea;font-size:14px}
.history-meta{margin-top:8px;color:var(--muted);font-size:12px;line-height:1.55}
.login-wrap{width:min(430px,92%);margin:9vh auto 0}
.login-card{padding:25px}
.login-card h1{margin:0 0 8px}
.login-card p{color:var(--muted);font-size:13px}
label{display:block;margin:15px 0 7px;font-weight:800;font-size:14px}
input,textarea,select{
 width:100%;min-height:47px;padding:12px 13px;border-radius:12px;
 border:1px solid #34465f;background:#091524;color:#fff;outline:none
}
textarea{min-height:105px;resize:vertical;line-height:1.6}
input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(240,180,86,.12)}
.alert{padding:12px 14px;border-radius:12px;margin:12px 0;line-height:1.6}
.alert-error{background:rgba(255,103,103,.12);border:1px solid rgba(255,103,103,.32);color:#ffb0b0}
.alert-ok{background:rgba(69,210,160,.12);border:1px solid rgba(69,210,160,.30);color:#9af0d1}
.admin-grid{display:grid;grid-template-columns:390px 1fr;gap:18px}
.form-card{padding:20px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.table-card{padding:18px}
.admin-list{display:grid;gap:11px}
.admin-item{
 padding:14px;border:1px solid var(--line);border-radius:14px;
 background:rgba(255,255,255,.035)
}
.admin-item-top{display:flex;justify-content:space-between;gap:12px}
.admin-item-name{font-weight:900}
.admin-item-problem{margin:8px 0;color:#cdd8e5;line-height:1.55}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.small-btn{min-height:36px;padding:7px 12px;border-radius:9px;font-size:13px}
.footer{text-align:center;color:#748398;font-size:12px;margin-top:25px}
@media(max-width:850px){
 .container{width:100%;padding:14px 10px 35px}
 .header{align-items:flex-start;flex-direction:column}
 .brand h1{font-size:22px}
 .admin-grid{grid-template-columns:1fr}
 .notice-list{grid-template-columns:1fr}
 .history-grid{grid-template-columns:1fr}
 .notice{padding:16px 14px 14px}
 .name{font-size:26px}
 .problem{font-size:14px}
 .info-grid{grid-template-columns:1fr 1fr}
 .amount{font-size:24px}
 .nav{width:100%}
 .nav .btn{flex:1;padding-left:10px;padding-right:10px}
}
@media(max-width:420px){
 .notice{border-radius:16px;padding:14px 12px 12px}
 .name{font-size:23px}
 .problem{font-size:13px;padding-left:10px}
 .info-grid{grid-template-columns:1fr}
 .value{font-size:16px}
 .amount{font-size:22px}
 .history-item{padding:12px}
 .history-name{font-size:17px}
 .history-money{font-size:18px}
 .form-row{grid-template-columns:1fr}
}


/* 月度财务报表 */
.report-toolbar{padding:18px;margin-bottom:18px}
.report-filter{
 display:grid;grid-template-columns:minmax(180px,260px) repeat(3,auto);
 gap:12px;align-items:end
}
.report-filter label{margin-top:0}
.report-sheet{
 background:#fff;color:#1b1f26;border-radius:18px;padding:28px;
 box-shadow:0 18px 55px rgba(0,0,0,.28)
}
.report-print-title{text-align:center;margin-bottom:22px}
.report-print-title h1{margin:0;font-size:28px;letter-spacing:2px}
.report-subtitle{margin-top:10px;color:#5e6672;font-size:13px}
.report-stat-grid{
 display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px
}
.report-stat{
 padding:16px;border:1px solid #dde2e9;border-radius:14px;background:#f7f9fc
}
.report-stat-label{color:#687282;font-size:13px}
.report-stat-value{margin-top:7px;font-size:27px;font-weight:900;color:#172033}
.report-stat-value small{font-size:14px}
.report-stat-money{background:#fff4f3;border-color:#ffd1ce}
.report-stat-money .report-stat-value{color:#d82424}
.report-section{margin-top:24px}
.report-section h2{margin:0 0 12px;font-size:18px}
.report-table-wrap{overflow-x:auto}
.report-table{
 width:100%;border-collapse:collapse;min-width:720px;font-size:13px
}
.report-detail-table{min-width:1180px}
.report-table th,.report-table td{
 border:1px solid #cfd5de;padding:9px 8px;vertical-align:middle
}
.report-table th{
 background:#edf1f6;color:#202631;text-align:center;white-space:nowrap
}
.report-table td{color:#252b34}
.report-center{text-align:center}
.report-number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.report-problem-cell{min-width:270px;line-height:1.55}
.report-total td{font-weight:900;background:#f3f5f8}
.report-empty{text-align:center!important;color:#7b8491!important;padding:28px!important}
.report-signatures{
 display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
 margin-top:38px;padding-top:18px;border-top:1px solid #cfd5de;
 font-size:14px
}

@media(max-width:850px){
 .report-filter{grid-template-columns:1fr 1fr}
 .report-filter>div{grid-column:1/-1}
 .report-sheet{padding:18px 12px;border-radius:16px}
 .report-stat-grid{grid-template-columns:1fr 1fr}
 .report-print-title h1{font-size:22px}
 .report-signatures{grid-template-columns:1fr 1fr;gap:24px 12px}
}
@media(max-width:420px){
 .report-filter{grid-template-columns:1fr}
 .report-filter>div{grid-column:auto}
 .report-stat-grid{grid-template-columns:1fr 1fr}
 .report-stat{padding:12px}
 .report-stat-value{font-size:23px}
 .report-signatures{grid-template-columns:1fr}
}

@media print{
 @page{size:A4 landscape;margin:9mm}
 body{background:#fff!important;color:#000!important}
 .no-print{display:none!important}
 .report-page{width:100%!important;max-width:none!important;padding:0!important}
 .report-sheet{
   padding:0!important;box-shadow:none!important;border-radius:0!important;
   color:#000!important
 }
 .report-print-title h1{font-size:20pt}
 .report-subtitle{color:#000!important;font-size:9pt}
 .report-stat-grid{grid-template-columns:repeat(4,1fr);gap:5mm;margin-bottom:6mm}
 .report-stat{
   padding:3mm;border:1px solid #000!important;background:#fff!important;
   break-inside:avoid
 }
 .report-stat-label,.report-stat-value,.report-stat-money .report-stat-value{
   color:#000!important
 }
 .report-stat-value{font-size:15pt}
 .report-section{margin-top:5mm}
 .report-section h2{font-size:12pt;margin-bottom:2mm}
 .report-table-wrap{overflow:visible!important}
 .report-table,.report-detail-table{
   min-width:0!important;width:100%!important;font-size:8pt
 }
 .report-table th,.report-table td{
   border:1px solid #000!important;padding:1.8mm 1.4mm!important;color:#000!important
 }
 .report-table th,.report-total td{background:#eee!important}
 .report-problem-cell{min-width:0!important}
 .report-signatures{
   color:#000!important;font-size:9pt;margin-top:8mm;border-top:1px solid #000
 }
 tr{break-inside:avoid}
}


/* 公示卡片紧凑优化：缩小单条罚单卡片，提高同屏信息密度 */


/* 管理员手机版修复与多管理员页面 */
.admin-grid > *,
.admin-users-grid > *,
.form-row > *{
 min-width:0
}
input[type="date"],
input[type="month"],
input[type="number"],
input[type="text"],
input[type="password"],
select,
textarea{
 max-width:100%;
 min-width:0;
}
input[type="date"],
input[type="month"]{
 width:100%;
 -webkit-appearance:none;
 appearance:none;
}
.admin-users-grid{
 display:grid;
 grid-template-columns:360px 1fr;
 gap:18px
}
.admin-user-list{
 display:grid;
 gap:12px
}
.admin-user-item{
 padding:14px;
 border:1px solid var(--line);
 border-radius:14px;
 background:rgba(255,255,255,.035)
}
.admin-user-name{
 font-size:17px;
 font-weight:900;
 display:flex;
 align-items:center;
 gap:8px;
 flex-wrap:wrap
}
.admin-user-meta{
 margin-top:6px;
 color:var(--muted);
 font-size:12px
}
.current-admin-tag{
 padding:3px 8px;
 border-radius:999px;
 background:rgba(69,210,160,.14);
 border:1px solid rgba(69,210,160,.3);
 color:#9af0d1;
 font-size:11px
}
.password-panel{
 margin-top:12px;
 border-top:1px solid var(--line);
 padding-top:10px
}
.password-panel summary{
 cursor:pointer;
 color:#dce5ef;
 font-weight:800;
 font-size:13px
}
.password-form{
 margin-top:10px
}
.password-form label{
 margin-top:10px
}

@media(max-width:850px){
 .admin-grid,
 .admin-users-grid{
   grid-template-columns:1fr
 }
 .admin-grid .form-card,
 .admin-users-grid .form-card,
 .admin-grid .table-card,
 .admin-users-grid .table-card{
   width:100%;
   min-width:0
 }
 .form-row{
   grid-template-columns:1fr
 }
 .form-row > div{
   min-width:0
 }
 .form-row input,
 .form-row select{
   width:100%;
   min-width:0;
   max-width:100%
 }
 input[type="date"]{
   display:block;
   width:100%;
   max-width:100%;
   min-width:0;
   box-sizing:border-box
 }
 .admin-grid .form-card{
   padding:16px
 }
 .admin-grid .table-card{
   padding:14px
 }
 .admin-item{
   padding:12px
 }
 .admin-item-top{
   align-items:flex-start
 }
 .actions{
   display:grid;
   grid-template-columns:1fr 1fr;
   width:100%
 }
 .actions .btn,
 .actions form,
 .actions form .btn{
   width:100%
 }
 .admin-mobile-save{
   position:sticky;
   bottom:10px;
   z-index:5;
   box-shadow:0 8px 25px rgba(0,0,0,.35)
 }
 .header .nav{
   display:grid;
   grid-template-columns:1fr 1fr;
   width:100%
 }
 .header .nav .btn{
   width:100%
 }
}

@media(max-width:420px){
 .header .nav{
   grid-template-columns:1fr
 }
 .actions{
   grid-template-columns:1fr
 }
 .form-card,
 .table-card{
   border-radius:16px
 }
}

/* V3 企业版 */
.record-badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.record-badges span{padding:4px 8px;border-radius:999px;background:#26364d;color:#dce5ef;font-size:11px}
.record-badges .paid-badge{background:rgba(69,210,160,.15);color:#9af0d1}
.record-badges .unpaid-badge{background:rgba(255,103,103,.14);color:#ffaaa5}
.payment-meta{margin-top:7px;color:var(--muted);font-size:11px}
.audit-list{display:grid;gap:10px}
.audit-item{padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);line-height:1.55}
.audit-item small{color:var(--muted)}
.paid-stat{background:#effbf6;border-color:#bcebd7}
.paid-stat .report-stat-value{color:#16865f}
.unpaid-stat{background:#fff3f2;border-color:#ffd0cc}
.unpaid-stat .report-stat-value{color:#d62f2f}
@media(max-width:850px){.v3-stats{grid-template-columns:1fr 1fr}}
