:root{--primary:#2e7d5c;--primary-dark:#215e45;--ink:#24313b;--muted:#7d8993;--line:#e8edf0;--bg:#f5f7f9;--panel:#fff;--danger:#c84c4c;--warning:#b6741f;--info:#3b78a7;--purple:#7259a8}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 "Segoe UI","Microsoft YaHei",sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}.hidden{display:none!important}
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#edf6f2,#eaf0f7)}.login-panel{width:min(410px,calc(100% - 32px));background:#fff;border:1px solid #e3eaee;border-radius:10px;padding:42px 44px;box-shadow:0 18px 50px rgba(32,61,75,.1)}.brand-mark{width:54px;height:54px;border-radius:14px;background:var(--primary);display:grid;place-items:center;color:#fff;font-size:28px;margin:0 auto 18px}.login-panel h1{text-align:center;margin:0;font-size:25px}.login-subtitle{text-align:center;color:var(--muted);margin:7px 0 30px}.login-form label{display:block;font-weight:600;margin:16px 0;color:#4a5963}.login-form input{display:block;width:100%;margin-top:7px;border:1px solid #d7e0e5;border-radius:7px;padding:12px 13px;outline:none}.login-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(46,125,92,.12)}.primary-button,.secondary-button{border:0;border-radius:6px;padding:10px 17px}.primary-button{width:100%;margin-top:11px;color:#fff;background:var(--primary)}.primary-button:hover{background:var(--primary-dark)}.secondary-button{background:#fff;border:1px solid #d5dfe4;color:#44545d}.secondary-button:hover{border-color:var(--primary);color:var(--primary)}.login-hint{text-align:center;color:#9ba6ad;font-size:12px;margin:17px 0 0}.form-error{color:var(--danger);background:#fff3f3;padding:9px 11px;border-radius:5px;font-size:13px}
.shell{min-height:100vh;display:flex}.sidebar{width:236px;flex:none;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{height:68px;display:flex;align-items:center;gap:10px;padding:0 24px;border-bottom:1px solid var(--line);font-weight:700;color:#1f3d31}.brand-icon{width:32px;height:32px;border-radius:9px;background:var(--primary);display:grid;place-items:center;color:#fff;font-size:18px}.nav{padding:18px 12px;flex:1}.nav-title{color:#a0aab0;font-size:11px;letter-spacing:.08em;margin:15px 12px 7px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:#596872;text-align:left;padding:10px 12px;border-radius:6px;margin:3px 0}.nav-item span{width:22px;text-align:center}.nav-item b{margin-left:auto;background:#fff0df;color:var(--warning);font-size:11px;font-weight:500;padding:2px 6px;border-radius:10px}.nav-item:hover{background:#f1f6f3;color:var(--primary)}.nav-item.active{background:#eaf4ee;color:var(--primary);font-weight:600}.sidebar-user{display:flex;align-items:center;gap:10px;padding:16px 20px;border-top:1px solid var(--line)}.avatar{width:34px;height:34px;border-radius:50%;background:#dceddf;color:var(--primary);display:grid;place-items:center;font-weight:700}.avatar.small{width:28px;height:28px;font-size:12px}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user small{color:var(--muted);font-size:11px;margin-top:2px}
.main{flex:1;min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px}.breadcrumb{display:flex;align-items:center;gap:10px;color:var(--muted)}.breadcrumb strong{color:var(--ink);font-weight:600}.breadcrumb i{font-style:normal;color:#c1cbd0}.top-actions{display:flex;align-items:center;gap:12px}.global-search{display:flex;align-items:center;gap:7px;background:#f7f9fa;border:1px solid #edf0f2;border-radius:6px;padding:7px 11px;color:#a4afb4}.global-search input{width:220px;border:0;background:transparent;outline:0;color:var(--ink)}.topbar-button{display:flex;align-items:center;gap:6px;border:1px solid #d5dfe4;border-radius:6px;padding:7px 10px;background:#fff;color:#44545d}.topbar-button:hover{border-color:var(--primary);color:var(--primary)}.icon-button{width:34px;height:34px;border:0;background:transparent;color:#6c7a82;border-radius:6px}.icon-button:hover{background:#f1f5f3}.content{padding:29px 32px 48px;max-width:1480px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.page-header h2{font-size:23px;margin:0}.page-header p{color:var(--muted);margin:5px 0 0}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-top:18px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #f0f3f4}.panel-head h3{font-size:15px;margin:0}.panel-head span{color:var(--muted);font-size:12px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stats-grid.compact{margin:0 0 18px}.stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:19px;display:flex;align-items:center;gap:13px}.stat-icon{width:43px;height:43px;border-radius:11px;display:grid;place-items:center;font-size:22px}.stat-icon.green{background:#e9f5ee;color:var(--primary)}.stat-icon.blue{background:#e9f1fb;color:#3d73a7}.stat-icon.orange{background:#fff3e5;color:#b97421}.stat-icon.purple{background:#f1ecfb;color:var(--purple)}.stat strong,.stat small,.stat em{display:block}.stat strong{font-size:25px;line-height:1.1}.stat small{font-size:13px;margin-top:3px}.stat em{font-size:11px;color:var(--muted);font-style:normal;margin-top:4px}.dashboard-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:18px;margin-top:18px}.trend-chart{height:205px;display:flex;align-items:flex-end;gap:14px;padding:18px 24px 16px;border-bottom:1px solid #f1f3f4}.trend-column{height:100%;flex:1;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;gap:7px}.trend-value{font-size:11px;color:var(--muted)}.trend-bar{width:min(35px,70%);min-height:7px;background:linear-gradient(180deg,#65ad88,#2e7d5c);border-radius:5px 5px 2px 2px}.trend-column small{color:var(--muted);font-size:11px}.todo button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:15px 20px;border:0;border-bottom:1px solid #f0f3f4;background:#fff;text-align:left;color:var(--ink)}.todo button:last-child{border-bottom:0}.todo button:hover{background:#fafcfc}.todo button span small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.text-button{border:0;background:transparent;color:var(--primary);padding:2px 5px}.text-button:hover{text-decoration:underline}.danger-text{color:var(--danger)}.tag{display:inline-block;padding:3px 8px;border-radius:12px;font-size:11px;white-space:nowrap;background:#f0f2f3;color:#738089}.tag.success{color:#287a50;background:#e8f5ed}.tag.warning{color:#a66617;background:#fff1dd}.tag.info{color:#3d6f9d;background:#e8f1fb}.tag.danger{color:#b84040;background:#ffebeb}.tag.muted{color:#77838a;background:#f0f2f3}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:13px 18px;text-align:left;border-bottom:1px solid #f0f3f4;white-space:nowrap}th{font-size:12px;color:#8a969d;font-weight:600;background:#fbfcfc}td{font-size:13px}tbody tr:hover{background:#fcfdfd}td small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.row-actions{display:flex;gap:8px}.plate-number{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:700;letter-spacing:.04em}.score{font-weight:700;color:var(--danger)}.filter-strip{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px;color:var(--muted)}.filter-strip label{display:flex;align-items:center;gap:8px}.filter-strip select{border:1px solid #dce4e8;border-radius:5px;background:#fff;padding:7px 30px 7px 9px;color:var(--ink)}.empty{text-align:center;color:#9aa5ab;padding:40px 16px}.rules{padding:4px 20px 20px}.rules>div{display:flex;gap:30px;padding:15px 0;border-bottom:1px solid #f0f3f4}.rules strong{width:90px}.rules span{color:var(--muted)}.rules p{margin:16px 0 0;color:var(--warning);background:#fff7e9;padding:10px 12px;border-radius:5px;font-size:12px}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-top:10px}.tab{border:0;background:transparent;color:var(--muted);padding:10px 2px;border-bottom:2px solid transparent}.tab.active{color:var(--primary);border-color:var(--primary);font-weight:600}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}.settings-grid>div{background:#fff;padding:24px}.settings-grid strong{font-size:15px}.settings-grid p{color:var(--muted);font-size:13px}.user-cell{display:flex;align-items:center;gap:8px}.toast{position:fixed;right:26px;bottom:26px;padding:11px 16px;border-radius:6px;color:#fff;background:var(--primary);box-shadow:0 8px 24px rgba(0,0,0,.16);z-index:5}.toast.danger{background:var(--danger)}.toast.info{background:#4b7190}
@media(max-width:980px){.sidebar{width:205px}.topbar{padding:0 20px}.content{padding:22px 20px}.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.global-search input{width:150px}}
@media(max-width:680px){.shell{display:block}.sidebar{width:100%;height:auto}.brand{height:58px}.nav{display:flex;overflow:auto;padding:8px}.nav-title{display:none}.nav-item{width:auto;white-space:nowrap;margin:0 2px}.nav-item b{display:none}.sidebar-user{display:none}.topbar{height:auto;padding:12px 16px;gap:10px;align-items:flex-start}.top-actions{flex:1;justify-content:flex-end}.global-search{display:none}.content{padding:18px 14px 35px}.page-header{display:block}.page-actions{margin-top:13px}.stats-grid{gap:10px}.stat{padding:13px 10px}.stat-icon{width:36px;height:36px;font-size:18px}.stat strong{font-size:20px}.stat em{display:none}.settings-grid{grid-template-columns:1fr}.panel{margin-top:13px}.form-grid,.permission-grid{grid-template-columns:1fr}.modal-card{max-height:calc(100vh - 20px)}.modal-head,.role-form{padding-left:18px;padding-right:18px}}
.page-actions .primary-button{width:auto;margin-top:0}
.modal-backdrop{position:fixed;inset:0;background:rgba(25,42,51,.42);display:grid;place-items:center;padding:20px;z-index:10}.modal-card{width:min(680px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:12px;box-shadow:0 20px 70px rgba(22,41,49,.25)}.modal-head{display:flex;justify-content:space-between;gap:18px;padding:24px 26px 14px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:19px}.modal-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.role-form{padding:20px 26px 24px}.role-form>label,.role-form fieldset{display:block;margin:0 0 16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.role-form label{font-size:13px;font-weight:600;color:#4a5963}.role-form input,.role-form select,.role-form textarea{display:block;width:100%;margin-top:7px;border:1px solid #dce4e8;border-radius:6px;padding:9px 10px;background:#fff;color:var(--ink);outline:none}.role-form textarea{min-height:72px;resize:vertical}.role-form input:focus,.role-form select:focus,.role-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(46,125,92,.1)}.role-form input[readonly]{background:#f5f7f8;color:var(--muted)}.role-form fieldset{border:1px solid var(--line);border-radius:7px;padding:12px 14px}.role-form legend{padding:0 5px;color:#4a5963;font-weight:600;font-size:13px}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.permission-option{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid #edf1f2;border-radius:6px;cursor:pointer;font-weight:400!important}.permission-option:hover{background:#f8fbf9;border-color:#cfe4d8}.permission-option input{width:auto;margin:3px 0 0;accent-color:var(--primary)}.permission-option span{display:block}.permission-option strong,.permission-option small{display:block}.permission-option small{margin-top:2px;color:var(--muted);font-size:11px;font-weight:400}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.assignment-user{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:0 0 18px;background:#f7faf8;border:1px solid #e5efe8;border-radius:7px}.assignment-user strong,.assignment-user small{display:block}.assignment-user small{margin-top:3px;color:var(--muted);font-size:12px}.field-help{margin:-4px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.school-admin-modal{width:min(520px,100%)}
.carousel-modal{width:min(760px,100%)}
.wechat-binding-field{display:block;margin:0 0 16px}.wechat-binding-label{display:block;font-size:13px;font-weight:600;color:#4a5963}.wechat-binding-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:8px;margin-top:7px}.wechat-binding-controls input,.wechat-binding-controls select{display:block;width:100%;margin:0;border:1px solid #dce4e8;border-radius:6px;padding:9px 10px;background:#fff;color:var(--ink);outline:none}.wechat-binding-controls input:focus,.wechat-binding-controls select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(46,125,92,.1)}
@media(max-width:680px){.wechat-binding-controls{grid-template-columns:1fr}}
.carousel-thumb{display:block;width:108px;height:52px;object-fit:cover;border-radius:6px;border:1px solid #e1e8eb;background:#f5f7f8}.carousel-thumb.placeholder{display:grid;place-items:center;color:var(--muted);font-size:11px}.table-preview{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.carousel-image-field{margin:0 0 16px}.field-label{display:block;color:#4a5963;font-size:13px;font-weight:600;margin-bottom:7px}.carousel-image-picker{display:flex;align-items:center;gap:14px}.carousel-preview{width:240px;height:116px;object-fit:cover;border-radius:7px;border:1px solid #dce4e8;background:#f5f7f8}.carousel-preview[src=""]{visibility:hidden}.file-button{display:inline-flex!important;align-items:center;justify-content:center;padding:9px 14px;border:1px solid #d5dfe4;border-radius:6px;background:#fff;color:#44545d;cursor:pointer;font-weight:500!important}.file-button:hover{border-color:var(--primary);color:var(--primary)}.file-button input{display:none!important}.rich-toolbar{display:flex;flex-wrap:wrap;gap:5px;padding:7px;border:1px solid #dce4e8;border-bottom:0;border-radius:6px 6px 0 0;background:#f7f9fa}.rich-toolbar button{min-width:30px;height:30px;padding:0 7px;border:1px solid transparent;border-radius:4px;background:transparent;color:#52626b}.rich-toolbar button:hover{background:#fff;border-color:#d5dfe4;color:var(--primary)}.rich-editor{min-height:190px;max-height:340px;overflow:auto;padding:12px 13px;border:1px solid #dce4e8;border-radius:0 0 6px 6px;outline:none;line-height:1.7;color:var(--ink);background:#fff}.rich-editor:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(46,125,92,.1)}.rich-editor:empty:before{content:'请输入轮播图详情内容';color:#a4afb4}.carousel-modal .field-help{margin-top:7px}

.audit-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px;color:var(--muted)}.audit-search{display:flex;align-items:center;gap:8px;flex:1;min-width:280px;max-width:520px;background:#f7f9fa;border:1px solid #dce4e8;border-radius:6px;padding:7px 10px;color:#8c989e}.audit-search input{flex:1;min-width:0;border:0;background:transparent;outline:0;color:var(--ink)}.audit-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(46,125,92,.1)}.audit-status-filter{display:flex;align-items:center;gap:8px;white-space:nowrap}.audit-status-filter select{border:1px solid #dce4e8;border-radius:5px;background:#fff;padding:7px 30px 7px 9px;color:var(--ink)}.audit-count{margin-left:auto;white-space:nowrap;font-size:12px}.audit-detail-modal{width:min(900px,100%)}.audit-action-modal{width:min(560px,100%)}.audit-detail-body{padding:22px 26px 6px}.audit-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden}.audit-detail-field{min-width:0;display:flex;flex-direction:column;gap:4px;padding:13px 14px;background:#fff}.audit-detail-field span{font-size:12px;color:var(--muted)}.audit-detail-field strong{font-size:14px;font-weight:600;overflow-wrap:anywhere}.audit-note{margin-top:18px;padding:12px 14px;border-radius:7px}.audit-note span{display:block;font-size:12px;font-weight:600}.audit-note p{margin:5px 0 0;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.replacement-note{background:#fff7e9;color:#8a5b16}.rejection-note{background:#fff3f3;color:var(--danger)}.audit-attachments{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin-top:22px}.audit-attachments h3{font-size:14px;margin:0 0 9px}.attachment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.attachment-card,.attachment-empty,.attachment-file{min-width:0;margin:0;border:1px solid var(--line);border-radius:7px;background:#f8fafb;overflow:hidden}.attachment-card img{display:block;width:100%;height:170px;object-fit:contain;background:#edf1f3}.attachment-card figcaption{padding:7px 9px;font-size:12px;color:var(--muted)}.attachment-empty,.attachment-file{min-height:106px;padding:13px;display:flex;flex-direction:column;justify-content:center;gap:4px;color:var(--muted)}.attachment-empty small,.attachment-file small{color:var(--muted)}.attachment-file strong{color:var(--ink);font-size:13px}.attachment-file span{overflow-wrap:anywhere;font-size:11px;color:#60727d}.attachment-file em{font-size:11px;color:var(--warning);font-style:normal}.danger-outline{color:var(--danger)!important;border-color:#e3b0b0!important;background:#fff!important}.danger-button{color:#fff!important;background:var(--danger)!important}.application-kind{color:var(--warning)!important}
@media(max-width:780px){.audit-toolbar{align-items:stretch}.audit-search{min-width:100%;max-width:none}.audit-status-filter{justify-content:space-between}.audit-count{margin-left:0}.audit-detail-body{padding-left:18px;padding-right:18px}.audit-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-attachments{grid-template-columns:1fr}.attachment-card img{height:145px}}
@media(max-width:480px){.audit-detail-grid{grid-template-columns:1fr}.attachment-grid{grid-template-columns:1fr}}
.modal-actions button{white-space:nowrap}.modal-actions .primary-button{width:auto;margin-top:0}
.audit-detail-grid{background:#fff}.issue-note{background:#eef6fb;color:#3d6f9d}.plate-toolbar{margin-top:0}.plate-list-filters{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fbfcfc}.plate-filter{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;color:var(--muted)}.plate-filter select{max-width:170px;border:1px solid #dce4e8;border-radius:5px;background:#fff;padding:7px 28px 7px 9px;color:var(--ink)}.plate-filter-reset{white-space:nowrap}.plate-filter-reset:disabled{opacity:.45;cursor:default}.plate-issue-panel .panel-head{background:#fbfcfc}
.plate-stats{grid-template-columns:repeat(5,1fr)}.plate-pool-modal{width:min(640px,100%)}.plate-import-file{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 16px}.plate-import-file .field-label{margin:0}.plate-import-file .file-button{margin:0}.plate-import-file .file-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.plate-rule-hint{display:flex;flex-direction:column;gap:6px;margin-top:4px;padding:12px 14px;border:1px solid #e5efe8;border-radius:7px;background:#f7faf8;color:var(--muted);font-size:12px;line-height:1.6}.plate-rule-hint strong{color:#426252;font-size:13px}.plate-school-summary{margin-bottom:16px}
.plate-rules-modal{width:min(900px,100%);max-height:min(90vh,900px);overflow:auto}.plate-rules-editor{display:grid;gap:12px}.plate-rule-editor{padding:14px;border:1px solid #dfe8e2;border-radius:7px;background:#fafcfb}.plate-rule-editor-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.plate-rule-editor-head span{color:var(--muted);font-size:12px}.plate-rule-editor-head b{color:#236344;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.plate-rule-fields{display:grid;grid-template-columns:1.25fr .8fr .9fr 1fr 1.25fr;gap:10px}.plate-rule-fields label{margin:0}.plate-count-grid{grid-template-columns:repeat(3,1fr)}.empty-inline{padding:24px;text-align:center;color:var(--muted)}
@media(max-width:760px){.plate-rule-fields{grid-template-columns:1fr 1fr}.plate-rule-fields label:last-child{grid-column:1/-1}.plate-count-grid{grid-template-columns:1fr}}
@media(max-width:1160px){.plate-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.plate-stats{grid-template-columns:repeat(2,1fr)}}
.school-role-settings-modal,.school-role-member-modal{width:min(640px,100%)}
.wechat-contact-panel{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 26px}.wechat-contact-panel h3{margin:0 0 7px;font-size:16px}.wechat-contact-panel p{max-width:560px;margin:0 0 8px;color:var(--muted);line-height:1.6}.wechat-contact-preview-wrap{display:flex;flex:none;flex-direction:column;align-items:center;gap:8px}.wechat-contact-preview{display:block;width:220px;height:220px;object-fit:contain;border:1px solid #dce4e8;border-radius:8px;background:#f7f9fa}.wechat-contact-preview.placeholder{display:grid;place-items:center;color:var(--muted);font-size:13px}.wechat-contact-preview-wrap small{color:var(--muted);font-size:11px}.wechat-contact-modal{width:min(560px,100%)}.wechat-contact-upload{display:flex;align-items:center;gap:18px}.wechat-contact-upload .wechat-contact-preview{width:180px;height:180px}.wechat-contact-upload .wechat-contact-preview[src=""]{visibility:hidden}
.role-member-choices{display:grid;gap:7px;max-height:360px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:7px;background:#fbfdfc}.role-member-choice{display:flex;align-items:center;gap:10px;margin:0!important;padding:9px 10px;border:1px solid transparent;border-radius:6px;background:#fff;cursor:pointer;font-weight:400!important}.role-member-choice:hover{border-color:#cfe4d8;background:#f8fbf9}.role-member-choice:has(input:checked){border-color:#9bc9ad;background:#eef8f1}.role-member-choice input{width:auto!important;margin:0!important;accent-color:var(--primary)}.role-member-choice .user-cell{min-width:0;flex:1}.role-member-choice .user-cell>span:last-child{min-width:0}.role-member-choice strong,.role-member-choice small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-member-choice strong{font-size:13px}.role-member-choice small{margin-top:2px;color:var(--muted);font-size:11px}
.super-wechat-row{display:flex;align-items:center;gap:12px;padding:15px 20px}.super-wechat-person{min-width:0}.super-wechat-person strong,.super-wechat-person small{display:block}.super-wechat-person small{margin-top:3px;color:var(--muted);font-size:12px}.super-wechat-action{margin-left:auto;flex:0 0 auto}
.role-members{margin-top:6px;min-width:220px}.role-members summary{color:var(--primary);font-size:12px;cursor:pointer;outline:none}.role-member-list{margin-top:8px;padding:7px 9px;border:1px solid #e8eef0;border-radius:6px;background:#fbfdfc}.role-member-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #eef2f3}.role-member-row:last-child{border-bottom:0}.role-member-row .user-cell{min-width:0}.role-member-row .user-cell>div{min-width:0}.role-member-row strong,.role-member-row small{display:block;overflow:hidden;text-overflow:ellipsis}.role-member-row strong{font-size:12px}.role-member-row small{max-width:180px;color:var(--muted);font-size:11px;margin-top:2px}.role-member-row .text-button{flex:none}.role-members-empty{padding:8px 0;color:var(--muted);font-size:12px}
.violation-type-panel{margin-top:18px}.violation-type-head{align-items:flex-start;gap:18px}.violation-type-head>div:first-child{min-width:0}.violation-type-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.violation-type-school-filter{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap}.violation-type-school-filter select{min-width:150px;border:1px solid #dce4e8;border-radius:5px;background:#fff;padding:8px 28px 8px 9px;color:var(--ink);outline:none}.violation-type-school-filter select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(46,125,92,.1)}.violation-type-school-fixed{color:var(--muted);font-size:12px;white-space:nowrap}.violation-type-modal{width:min(620px,100%)}
@media(max-width:680px){.violation-type-head{display:block}.violation-type-actions{justify-content:flex-start;margin-top:12px}.violation-type-school-filter{width:100%}.violation-type-school-filter select{flex:1;min-width:0}.violation-type-school-fixed{display:block;margin-bottom:2px}.violation-type-actions .primary-button{width:auto;margin-top:0}}
@media(max-width:680px){.wechat-contact-panel{display:block;padding:20px}.wechat-contact-preview-wrap{margin-top:18px}.wechat-contact-upload{align-items:flex-start;flex-direction:column}.wechat-contact-upload .wechat-contact-preview{width:200px;height:200px}}
.plate-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.plate-page-controls,.plate-page-jump,.plate-page-jump label{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.plate-page-controls button{padding:7px 12px;white-space:nowrap}
.plate-page-controls button:disabled{opacity:.45;cursor:default}
.plate-page-jump input{width:62px;padding:7px;border:1px solid #dce4e8;border-radius:5px;color:var(--ink);background:#fff}
