/* Public styles */
.fw2321-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); gap:16px; }
.fw2321-card { border:1px solid #e5e5e5; padding:16px; border-radius:8px; box-shadow:0 2px 6px rgba(0,0,0,.04); }
.fw2321-btn { display:inline-block; padding:10px 14px; border:1px solid #ccc; border-radius:6px; text-decoration:none; }
.fw2321-project .fw2321-actions { display:flex; gap:8px; }
.fw2321-planner { margin: 12px 0 20px; }
.fw2321-planner__header { display:flex; justify-content:space-between; align-items:center; padding:10px; background:#f6f6f6; color:#1a1a1a; border-radius:6px 6px 0 0; }
.fw2321-planner__controls label { margin-right:14px; }
#fw2321-quick { margin-left:auto; }
.fw2321-grid-planner { border:1px solid #e0e0e0; border-top:none; padding:10px; border-radius:0 0 6px 6px; }
.fw2321-day { display:grid; grid-template-columns: 40px repeat(96, 1fr); align-items:center; margin-bottom:6px; }
.fw2321-day__label { text-align:right; padding-right:6px; font-weight:bold; }
.fw2321-slot { width:10px; height:18px; border:1px solid #ddd; margin-left:-1px; cursor:pointer; }
.fw2321-slot.on { background:#2ecc71; }
.fw2321-status { margin-top:10px; min-height:20px; }
.fw2321-app { margin: 8px 0 18px; }
.fw2321-tabs { display:flex; flex-wrap:wrap; gap:8px; border-bottom:1px solid #e6e6e6; margin-bottom:12px; }
.fw2321-tab { appearance:none; border:1px solid #e6e6e6; background:#fafafa; padding:8px 14px; border-radius:10px 10px 0 0; cursor:pointer; font-weight:600; }
.fw2321-tab.is-active { background:#fff; border-bottom-color:#fff; box-shadow:0 -2px 8px rgba(0,0,0,.04); }
.fw2321-panels { }
.fw2321-panel { display:none; }
.fw2321-panel.is-active { display:block; }
/* Fallback */
.fw2321-panels .fw2321-panel:first-child { display:block; }
