/* 0.3.4: independent point, content and action columns. */
:root { --action-width:112px; }
.button,.button.full,.button.primary,.button.secondary,.button.success,.button.ghost,.task-actions .button,.task-actions form:not(.return-form) .button,.points-actions .button,.quick-actions .button,.inline-filters .button {
 width:var(--action-width);min-width:var(--action-width);max-width:100%;height:var(--action-height);flex:0 0 auto;justify-self:start;padding:0 10px;font-size:.84rem;line-height:1.2;
}
.button.button-wide { width:auto;min-width:var(--action-width);padding-inline:16px; }
.task-actions,.points-actions,.task-card .task-actions { width:auto;flex-wrap:wrap !important;gap:8px; }
.task-actions form:not(.return-form),.points-actions form:not(.return-form) { flex:0 0 auto;min-width:0; }
.task-card.point-card { display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px; }
.point-card>.task-point { grid-column:1;grid-row:1;align-self:center; }
.point-card>.task-main { grid-column:2;grid-row:1; }
.point-card>.task-actions,.point-card>form,.point-card>.button,.point-card>.waiting-pill { grid-column:3;grid-row:1; }
.point-card .coin { margin:0; }
.point-card .return-form { display:flex;align-items:center;flex-wrap:nowrap;gap:8px;flex-basis:auto; }
.point-card .return-form input { width:150px;min-width:0; }
.point-card:has(.return-form) { grid-template-columns:auto minmax(0,1fr); }
.point-card:has(.return-form)>.task-actions { grid-column:2;grid-row:2; }
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea { border:1px solid var(--blue);border-radius:999px;background:transparent;min-height:var(--action-height);color:var(--text);padding:11px 16px; }
select,.task-toolbar select { height:var(--action-height);padding-right:42px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23268df2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:16px;background-position:right 15px center; }
select option { color:var(--text);background:var(--surface); }
textarea { border-radius:23px;min-height:92px; }
.child-name { display:inline-flex;align-items:baseline;gap:6px; }
.task-people, .task-people .child-name { color:var(--text-soft);font-size:.82rem;font-weight:400;line-height:1.3; }
.child-dot { display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--child-color);flex:0 0 7px; }
.color-controls { display:flex;align-items:center;gap:12px;margin:10px 0; }
.color-controls input[type="color"] { width:64px;height:46px;padding:7px;cursor:pointer; }
.progress-ring,.completion-card .progress-ring { position:relative;width:112px;height:112px;flex:0 0 112px;display:grid;place-items:center;background:none; }
.progress-ring::after { content:none; }
.progress-ring strong { color:var(--blue); }
.ring-marked { stroke:var(--blue);stroke-linecap:butt; }
.legend-marked { color:var(--blue); }
.legend-confirmed { color:var(--gold); }
.kid-card-top .progress-ring { width:76px;height:76px;flex-basis:76px;margin-left:auto; }
.kid-card-top .progress-ring strong { font-size:1rem; }
.catalog-grid { grid-template-columns:1fr; }
.catalog-row { justify-content:flex-start;gap:16px; }
.catalog-row>.coin { order:-1; }
.task-card.assignment-summary { padding:0;background:transparent;box-shadow:none;min-height:0; }
.assignment-summary h2 { margin:0 0 6px; }
.field:has(> input[type="checkbox"]) { grid-template-columns:22px minmax(0,1fr);align-items:center;align-content:center;column-gap:10px; }
.field:has(> input[type="checkbox"]) > input[type="checkbox"] { grid-column:1;grid-row:1;width:22px;height:22px;min-height:22px;margin:0; }
.field:has(> input[type="checkbox"]) > label { grid-column:2;grid-row:1;margin:0;line-height:1.4; }
.field:has(> input[type="checkbox"]) > :not(input):not(label) { grid-column:1 / -1; }
label:has(input[type="checkbox"]) { display:flex;align-items:center;gap:8px; }
label > input[type="checkbox"] { flex:0 0 22px;margin:0; }
.bottom-nav a { font-size:.6rem; }
@media(min-width:1001px) {
 .point-card:has(.return-form) { grid-template-columns:auto minmax(0,1fr) auto; }
 .point-card:has(.return-form)>.task-actions { grid-column:3;grid-row:1;flex-wrap:nowrap !important; }
 .inline-filters { grid-template-columns:repeat(3,minmax(0,1fr)) auto; }
}
@media(max-width:1000px) {
 .task-card.point-card { grid-template-columns:auto minmax(0,1fr); }
 .point-card>.task-actions,.point-card>form,.point-card>.button,.point-card>.waiting-pill { grid-column:2;grid-row:2; }
}
@media(max-width:600px) {
 .task-card.point-card,.compact-list .task-card.point-card { gap:12px;padding:16px; }
 .point-card>.task-actions,.point-card>form,.point-card>.button,.point-card>.waiting-pill,.point-card:has(.return-form)>.task-actions { grid-column:1 / -1;grid-row:2; }
 .point-card .return-form { flex-wrap:wrap; }
 .point-card .return-form input { width:150px;flex:0 1 150px; }
 .point-card .task-card-head { margin-bottom:5px; }
 .kid-card-top { flex-wrap:wrap; }
 .completion-card { padding:18px;gap:16px; }
 .completion-card .progress-ring { width:92px;height:92px;flex-basis:92px; }
}

/* Stable achievement title axis and reserved description row. */
.coin.coin-wide { width:46px;height:46px;min-width:46px;font-size:var(--coin-font-size,14px); }
.achievement-catalog { display:grid;grid-auto-rows:1fr; }
.task-card.point-card.achievement-card { grid-template-columns:46px minmax(0,1fr) 112px;grid-template-rows:auto minmax(46px,auto) minmax(24px,auto);column-gap:16px;row-gap:6px; }
.achievement-card > .task-main { display:contents; }
.achievement-card .task-card-head { grid-column:2 / -1;grid-row:1;margin:0; }
.achievement-card .task-main h3 { grid-column:2;grid-row:2;align-self:center;margin:0; }
.achievement-card > .task-point { grid-column:1;grid-row:2; }
.achievement-card > .task-actions { grid-column:3;grid-row:2;align-self:center; }
.achievement-card .achievement-description { grid-column:2 / -1;grid-row:3;margin:0; }
@media(max-width:600px) {
 .task-card.point-card.achievement-card { column-gap:10px;padding:16px; }
 .achievement-card .task-main h3 { font-size:.95rem; }
 .achievement-card .waiting-pill { white-space:normal; }
}

.reward-catalog { grid-auto-rows:auto; }
.reward-catalog .achievement-card { min-height:148px; }
.reward-catalog .task-card-head { min-height:17px; }
.reward-catalog .achievement-description { font-size:.88rem;line-height:1.5; }
.reward-catalog .task-actions .button { gap:5px; }
/* Exchange uses the same action row as other rewards. */
.reward-catalog .achievement-card:has(.reward-exchange) { grid-template-columns:46px minmax(0,1fr) 284px; }
.reward-catalog .task-actions .reward-exchange { display:flex;align-items:center;gap:8px; }
.reward-exchange input { width:164px;min-width:0;font-size:.84rem; }
@media(max-width:600px) {
 .reward-catalog .achievement-card:has(.reward-exchange) { grid-template-columns:46px minmax(0,1fr) 112px; }
 .reward-catalog .achievement-card:has(.reward-exchange) > .task-actions { grid-column:1 / -1;grid-row:4;justify-self:end; }
}
