/* tokens */
.gpwpf { --card-bg:#fff; --text:#0a0a0a; --muted:#6b7280; --line:#e5e7eb; --brand:#0a5c33; --bg:#f9fafb; }
.gpwpf { font-family: Inter,system-ui,Arial,sans-serif; color:var(--text); line-height:1.45; }
.gpwpf h2 { font-size:22px; margin:0 0 4px; }
.gpwpf h3 { font-size:18px; margin:0 0 10px; }
.gpwpf-sub { color:var(--muted); font-size:13px; }

/* layout */
.gpwpf-grid { display:grid; grid-template-columns:1fr; gap:16px; margin-top:14px; }
@media (min-width:980px){ .gpwpf-grid { grid-template-columns:1fr 1fr; } }
.gpwpf-card { background:var(--card-bg); border:1px solid var(--line); border-radius:14px; padding:14px; box-shadow:0 4px 16px rgb(0 0 0 / 4%); position:relative; z-index:1; }

/* notes */
.gpwpf-note { margin-top:10px; padding:10px 12px; border:1px dashed #d1d5db; border-radius:12px; background:#f9fafb; color:#374151; font-size:14px; }
.gpwpf-empty { margin:8px 0; padding:10px 12px; border:1px dashed var(--line); border-radius:10px; background:#f8fafc; color:#374151; font-size:14px; }

/* controls */
.gpwpf-form, .gpwpf-actions, .gpwpf-row-actions, .gpwpf-lookup-actions, .gpwpf-range { display:flex; gap:14px; flex-wrap:wrap; }
.gpwpf-form input, .gpwpf-form select { border:1px solid var(--line); border-radius:10px; padding:10px 12px; width:100%; max-width:420px; background:#fff; position:relative; z-index:5; pointer-events:auto !important; display:block !important; appearance:auto !important; }
.gpwpf-form button, .gpwpf-actions button, .gpwpf-range button, .gpwpf-row-actions button, .gpwpf-modal-close {
  border:1px solid var(--brand); background:#0a5c33; color:#fff; padding:10px 14px; border-radius:10px; cursor:pointer;
}
.gpwpf-range button { background:#f3f4f6; color:#111827; border-color:#d1d5db; }
.gpwpf-range button.active { background:#0a5c33; color:#fff; border-color:#0a5c33; }
.gpwpf-form button:hover, .gpwpf-actions button:hover, .gpwpf-row-actions button:hover, .gpwpf-range button:hover, .gpwpf-modal-close:hover { opacity:.9; }
.gpwpf-row { display:flex; align-items:center; gap:10px; }
.gpwpf-row-actions { margin-left:auto; }

/* kill 3rd-party select decorators w obrębie widżetu */
.gpwpf .select2, .gpwpf .select2-container, .gpwpf .chosen-container { display:none !important; }

/* tables */
.gpwpf-table-wrap { overflow:auto; -webkit-overflow-scrolling:touch; }
.gpwpf-table { width:100%; border-collapse:collapse; font-size:14px; min-width:640px; }
.gpwpf-table th, .gpwpf-table td { border-bottom:1px solid var(--line); padding:8px 10px; text-align:left; white-space:nowrap; }
.gpwpf-table td:last-child { text-align:right; }

/* mobile simplification */
@media (max-width:560px){
  .gpwpf-table { min-width:0; font-size:13px; }
  .gpwpf-table th, .gpwpf-table td { white-space:normal; }
  #gpwpf-holdings th:nth-child(3), #gpwpf-holdings td:nth-child(3),
  #gpwpf-holdings th:nth-child(5), #gpwpf-holdings td:nth-child(5){ display:none; }
  #gpwpf-session th:nth-child(4), #gpwpf-session td:nth-child(4),
  #gpwpf-session th:nth-child(5), #gpwpf-session td:nth-child(5),
  #gpwpf-session th:nth-child(6), #gpwpf-session td:nth-child(6){ display:none; }
}

/* edit row */
.gpwpf-table td .row-actions { display:flex; gap:12px; justify-content:flex-end; }
.gpwpf-table td button { background:transparent; border:none; cursor:pointer; padding:0; }
.gpwpf-table td button[data-del] { color:#b91c1c; }
.gpwpf-table td button[data-edit] { color:#111827; }
.gpwpf-table td .edit-input, .gpwpf-table td .edit-select { border:1px solid var(--line); border-radius:8px; padding:6px 8px; width:140px; }

/* calendar */
.gpwpf-calendar { display:grid; gap:8px; }
.gpwpf-cal-row { display:grid; grid-template-columns:160px 1fr 1fr; gap:8px; }
@media (max-width:560px){ .gpwpf-cal-row { grid-template-columns:120px 1fr; } .gpwpf-cal-row .cell-change { grid-column: 1 / -1; } }
.gpwpf-cal-row .date { background:#f8fafc; border:1px solid var(--line); border-radius:10px; padding:8px; font-weight:600; }
.gpwpf-tag { border:1px solid var(--line); border-radius:10px; padding:8px; display:flex; align-items:center; justify-content:space-between; }
.gpwpf-badge { font-size:12px; color:#6b7280; }
.gpwpf-change { font-variant-numeric: tabular-nums; }
.gpwpf-cal-row.gain .date, .gpwpf-cal-row.gain .gpwpf-tag { background:#ecfdf5; border-color:#10b98166; }
.gpwpf-cal-row.loss .date, .gpwpf-cal-row.loss .gpwpf-tag { background:#fef2f2; border-color:#ef444466; }

/* chart */
.gpwpf-chart-wrap { position:relative; height:280px; }
@media (max-width:560px){ .gpwpf-chart-wrap { height:220px; } }

/* modal */
.gpwpf-modal { position:fixed; inset:0; display:none; z-index:9999; }
.gpwpf-modal[aria-hidden="false"] { display:block; }
.gpwpf-modal[aria-hidden="true"] { display:none !important; }
.gpwpf-modal-dim { position:absolute; inset:0; background:rgba(0,0,0,.25); }
.gpwpf-modal-content { position:relative; margin:6vh auto; max-width:720px; width:92vw; background:#fff; border:1px solid var(--line); border-radius:16px; padding:14px; }
.gpwpf-modal-head { display:flex; align-items:center; }
.gpwpf-modal-head h3 { margin:0; font-size:18px; }
.gpwpf-modal-close { margin-left:auto; background:#ef4444; border-color:#ef4444; }
.gpwpf-lookup-result { margin-top:8px; border:1px solid var(--line); border-radius:10px; padding:10px; background:#f9fafb; }
