.ip-wrap { max-width: 980px; margin: 20px auto; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
.ip-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.ip-brand { font-weight:700; font-size:20px; }
.ip-btn { background:#1e88e5; color:#fff; border:none; padding:10px 14px; border-radius:8px; cursor:pointer; }
.ip-btn:hover { opacity:.9; }
.ip-btn-light { background:#eee; color:#333; }
.ip-tabs { display:flex; gap:8px; margin:10px 0; }
.ip-tab { padding:8px 12px; border:1px solid #ddd; border-radius:8px; background:#fafafa; cursor:pointer; }
.ip-tab.active { background:#1e88e5; color:#fff; border-color:#1e88e5; }
.ip-panels .ip-panel { padding:12px; border:1px solid #eee; border-radius:10px; background:#fff; }
.hidden { display:none; }
.ip-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap:12px; margin:12px 0; }
.ip-card { border:1px solid #eee; padding:12px; border-radius:10px; background:#fff; }
.ip-form label { display:block; margin-bottom:8px; }
.ip-form input, .ip-form select { width:100%; padding:8px; border:1px solid #ddd; border-radius:8px; }
.ip-table { width:100%; border-collapse: collapse; margin-top:8px; }
.ip-table th, .ip-table td { border:1px solid #eee; padding:8px; text-align:left; }
.ip-note { font-size:12px; color:#666; }
