/* Frontend styles */
.iprtp-hub { border:1px solid #e5e7eb; padding:16px; border-radius:12px; background:#fff; }
.iprtp-header h2 { margin:0 0 4px; }
.iprtp-grid { display:grid; grid-template-columns: 1fr; gap:12px; }
@media(min-width:980px){ .iprtp-grid{ grid-template-columns: 1fr 1fr; } }
.iprtp-card { border:1px solid #e5e7eb; padding:12px; border-radius:10px; background:#fff; }
.iprtp-actions { display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
.iprtp-btn { display:inline-block; border:1px solid #d1d5db; padding:6px 10px; border-radius:8px; text-decoration:none; cursor:pointer; background:#f9fafb; }
.iprtp-badge { font-size:12px; padding:2px 6px; border-radius:6px; background:#f3f4f6; border:1px solid #e5e7eb; }
.iprtp-editor { margin-top:10px; }
.iprtp-editor textarea, .iprtp-editor input[type="text"], .iprtp-editor input[type="number"] { width:100%; }
.iprtp-notice { padding:12px; border-left:4px solid #f59e0b; background:#fff7ed; }

/* Kanban */
.iprtp-kanban { display:grid; grid-template-columns: repeat(4, 1fr); gap:12px; }
@media(max-width:980px){ .iprtp-kanban { grid-template-columns: repeat(2, 1fr); } }
.iprtp-col { background:#f8fafc; border:1px solid #e5e7eb; border-radius:10px; padding:10px; min-height:160px; }
.iprtp-col h4 { margin:0 0 8px; }
.iprtp-task { background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:8px; margin-bottom:8px; cursor:move; }
.iprtp-task small { display:block; opacity:.7; }
