/* 备品备件管理 */
.sp-panel{position:fixed;z-index:35;inset:0;background:#f4f7f5;overflow:auto;padding:0 max(14px,calc((100vw - 1000px)/2)) 90px}
.sp-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:12px 0;background:#f4f7f5}
.sp-title{flex:1;min-width:0;text-align:center}.sp-title strong{display:block;font-size:17px}.sp-title small{color:var(--muted);font-size:11px}
.sp-back,.sp-bell{min-height:44px;border:1px solid #cfe3df;border-radius:12px;background:#fff;color:var(--teal);padding:6px 12px;font-weight:700;white-space:nowrap}
.sp-back small{font-size:10px;opacity:.7}.sp-bell{position:relative}
.sp-count:not(:empty){display:inline-block;min-width:18px;margin-left:5px;padding:1px 6px;border-radius:10px;background:#f9e9d1;color:#986321;font-size:11px;font-weight:800;text-align:center}
.sp-bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.sp-bar select,.sp-form select,.sp-form input,.sp-form textarea,.sp-filters select,.sp-statform select,.sp-statform input{width:100%;min-height:44px;padding:8px 10px;border:1px solid #cddfdb;border-radius:11px;background:#fff;color:var(--ink)}
.sp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.sp-stat{border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px 6px;text-align:center;min-height:64px}
.sp-stat b{display:block;font-size:24px;line-height:1.1}.sp-stat span{display:block;font-size:12px;font-weight:700}.sp-stat small{font-size:10px;color:var(--muted)}
.sp-stat.sp-danger b{color:var(--danger)}.sp-stat.sp-warn b{color:#c47a14}
.sp-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}
.sp-actions button,.sp-menu button,.sp-acts button{min-height:46px;border:1px solid #cfe3df;border-radius:12px;background:#fff;color:var(--teal);padding:8px 10px;font-weight:700;text-align:left}
.sp-actions button small,.sp-menu button small{font-size:11px;font-weight:400;color:var(--muted);line-height:1.35}
.sp-menu{display:grid;gap:9px}
.sp-search{display:flex;gap:8px;margin-bottom:8px}.sp-search input{flex:1;min-height:46px;padding:8px 12px;border:1px solid #cddfdb;border-radius:12px;background:#fff}
.sp-search button{width:50px;border:0;border-radius:12px;background:var(--teal);color:#fff;font-size:18px}
.sp-filters{margin-bottom:6px}.sp-filters summary{padding:8px 2px;color:var(--teal);font-weight:700;cursor:pointer}.sp-filters>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sp-caption{display:flex;justify-content:space-between;align-items:center;margin:6px 2px 8px;font-weight:800}
.sp-list{display:grid;grid-template-columns:1fr;gap:10px}
.sp-card,.sp-req{background:#fff;border:1px solid #e0ebe8;border-radius:16px;padding:13px;box-shadow:0 5px 18px rgba(16,66,65,.05)}.sp-card{cursor:pointer}
.sp-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.sp-card-head b{font-size:16px;overflow-wrap:anywhere}
.sp-card-head small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.4;margin-top:2px}
.sp-card-body{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:9px 0 4px}
.sp-have b{font-size:20px}.sp-have small{display:inline;margin-left:4px;color:var(--muted);font-size:10px}
.sp-wait{color:#986321;font-size:12px;font-weight:700}.sp-note{font-style:normal;font-size:11px;color:#6b5a2a;background:#faf3dc;border-radius:8px;padding:2px 7px}
.sp-use{margin:4px 0 0;color:#526b69;font-size:12px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sp-tag{display:inline-block;padding:2px 8px;border-radius:8px;background:#e8f2ef;color:#2c6b64;font-size:11px;font-weight:700}.sp-tag.sp-foreign{background:#fdeedd;color:#9a5a1d}
.sp-pill{display:inline-flex;flex-direction:column;align-items:center;min-width:54px;padding:3px 9px;border-radius:10px;font-size:12px;font-weight:800;line-height:1.2;white-space:nowrap}.sp-pill small{font-size:9px;font-weight:500;opacity:.8}
.sp-pill.sp-danger{background:#fde8e8;color:#b53c3c}.sp-pill.sp-warn{background:#fcefd2;color:#9b6410}.sp-pill.sp-ok{background:#e1f3e9;color:#1d7049}.sp-pill.sp-muted{background:#eef1f1;color:#6c7e81}.sp-pill.sp-status{background:#e8f2ef;color:#2c6b64}
.sp-card-foot{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.sp-card-foot button{flex:1;min-width:96px;min-height:44px;border:1px solid #cfe3df;border-radius:11px;background:var(--teal);color:#fff;font-weight:700}.sp-card-foot button.sp-ghost{background:#fff;color:var(--teal)}.sp-card-foot small{font-size:10px;opacity:.75}
.sp-empty{padding:22px;text-align:center;color:var(--muted)}.sp-empty button{border:0;background:none;color:var(--teal);font-weight:800;text-decoration:underline;min-height:40px}
.sp-detail h4{margin:16px 0 6px;font-size:14px}.sp-detail h4 small{display:inline;margin-left:6px;color:var(--muted);font-weight:400;font-size:11px}
.sp-figures{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:10px}.sp-figures>div{background:#f2f8f6;border-radius:12px;padding:10px;text-align:center}.sp-figures b{display:block;font-size:22px}.sp-figures span,.sp-figures small{display:block;font-size:12px;color:#526b69}
.sp-facts{margin:8px 0}.sp-facts>div{padding:6px 0;border-bottom:1px solid #eef3f1}.sp-facts dt{font-size:11px;color:var(--muted)}.sp-facts dd{margin:2px 0 0;font-size:13px;overflow-wrap:anywhere}
.sp-acts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}.sp-acts .sp-primary{background:var(--teal);color:#fff;grid-column:1/-1;text-align:center}
.sp-slots,.sp-purchases,.sp-history,.sp-sources,.sp-notices,.sp-issues{list-style:none;margin:0;padding:0}
.sp-slots li,.sp-purchases li,.sp-history li,.sp-notices li{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid #eef3f1;font-size:13px}
.sp-slots li small,.sp-purchases small,.sp-history small,.sp-notices small,.sp-req small,.sp-sources small{display:block;color:#6c7e81;font-size:11px;line-height:1.5}
.sp-slots li.sp-pending{color:#986321}.sp-history li div,.sp-purchases li div{min-width:0;overflow-wrap:anywhere}
.sp-history button,.sp-purchases button,.sp-slots button{min-height:36px;padding:4px 10px;border:1px solid #cfe3df;border-radius:9px;background:#f4faf8;color:var(--teal);white-space:nowrap;margin-left:4px}
.sp-voided{opacity:.6;text-decoration:line-through}.sp-voided small{text-decoration:none}.sp-void{color:#b53c3c!important}
.sp-warn-box{padding:9px 12px;border-radius:10px;background:#fdeedd;color:#8a4d12;font-size:13px}
.sp-req{margin-bottom:10px}.sp-nums{margin:7px 0 4px;font-size:13px}.sp-issues{margin-top:6px;font-size:12px;color:#375;}.sp-issues li{padding:3px 0}
.sp-s-rejected,.sp-s-cancelled{opacity:.75}
.sp-form fieldset.sp-picks{border:1px dashed #bcd5d0;border-radius:12px;padding:10px}.sp-picks label{margin-bottom:8px}
.sp-table{width:100%;border-collapse:collapse;font-size:13px}.sp-table th,.sp-table td{padding:7px 6px;border-bottom:1px solid #eef3f1;text-align:left}.sp-table th{color:var(--muted);font-size:11px}
.sp-statform{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.sp-notices li.sp-unread{font-weight:700;background:#fbfaf0}.sp-notices li{flex-direction:column;gap:2px}
.sp-entry{border-color:#8bc7bc!important;background:#e5f4f0!important;color:var(--teal)!important}
@media(min-width:760px){.sp-list{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-actions{grid-template-columns:repeat(4,1fr)}.sp-figures{grid-template-columns:repeat(4,1fr)}.sp-acts{grid-template-columns:repeat(3,1fr)}.sp-acts .sp-primary{grid-column:auto}}
@media(max-width:380px){.sp-stats{gap:5px}.sp-stat b{font-size:20px}.sp-actions{grid-template-columns:1fr}}

.permission-group{margin:14px 0 4px;font-size:13px;color:var(--teal)}
