.ff-panel{max-width:1200px;margin:24px auto}
.ff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:18px 0}
.ff-card,.ff-section{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.ff-big{font-size:28px;font-weight:700}
.ff-table-wrap{overflow:auto}
.ff-table{width:100%;border-collapse:collapse}
.ff-table th,.ff-table td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left}
.ff-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.ff-two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.ff-notice{padding:12px 14px;border-radius:10px;margin:12px 0}
.ff-notice-ok{background:#ecfdf5;border:1px solid #a7f3d0}
.ff-notice-error{background:#fef2f2;border:1px solid #fecaca}
.ff-actions{display:flex;gap:8px;flex-wrap:wrap}
.ff-small{font-size:12px;color:#6b7280}
.ff-panel input,.ff-panel select,.ff-panel textarea{width:100%;max-width:100%}
.ff-notice{padding:12px 14px;border-radius:10px;margin:14px 0;background:#f6f7f7}.ff-notice-ok{background:#ecfdf3}.ff-notice-error{background:#fff1f0}.ff-stack button,.ff-actions button,.button{cursor:pointer}.ff-section{background:#fff;padding:16px;border-radius:14px;margin:18px 0;box-shadow:0 1px 4px rgba(0,0,0,.06)}.ff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.ff-card{background:#fff;padding:16px;border-radius:14px;box-shadow:0 1px 4px rgba(0,0,0,.06)}.ff-big{font-size:28px;font-weight:700}.ff-table-wrap{overflow:auto}.ff-table{width:100%;border-collapse:collapse}.ff-table th,.ff-table td{padding:10px;border-bottom:1px solid #eee;text-align:left;vertical-align:top}.ff-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.ff-form-grid input,.ff-form-grid select,.ff-form-grid textarea{width:100%}.ff-two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.ff-panel{padding:10px 0}

.ff-kpi{font-size:30px;font-weight:700;color:#6A1B9A}
.ff-mobile-wrap{display:flex;flex-direction:column;gap:16px}
.ff-mobile-stop{border:1px solid #e5e5e5;border-radius:10px;padding:12px;margin-top:10px;background:#fff}
.ff-mobile-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media (max-width: 768px){
  .ff-mobile-form select,.ff-mobile-form button{width:100%}
}
