.project-page{display:grid;gap:14px}.project-overview{align-items:end;background:radial-gradient(circle at 90% -20%,rgba(107,63,85,.14),transparent 42%),linear-gradient(120deg,#fffdf8f5,#f5eee2f0);display:grid;gap:28px;grid-template-columns:minmax(0,1fr) minmax(230px,320px);padding:18px 20px}.project-kicker{color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.11em;margin:0 0 2px;text-transform:uppercase}.project-overview h1{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1;margin:0}.project-intention{color:var(--muted);line-height:1.45;margin:8px 0 0;max-width:58rem}.project-meta{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.project-progress-summary{min-width:0}.project-progress-numbers{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:4px}.project-progress-numbers strong{color:var(--accent);font-family:Cormorant Garamond,Georgia,serif;font-size:1.55rem;line-height:1}.project-progress-numbers span{color:var(--muted);font-size:.78rem;font-weight:600}.project-progress-summary .progress{height:7px;margin:0}.project-workspace{display:grid;gap:14px;grid-template-columns:270px minmax(0,1fr);min-height:670px}.people-panel,.rosary-panel{min-width:0;padding:0;position:relative}.people-panel{align-self:start;max-height:740px;overflow:hidden}.panel-heading{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;min-height:55px;padding:10px 12px 9px}.panel-heading h2{font-size:1.3rem;line-height:1;margin:0}.panel-heading p{color:var(--muted);font-size:.76rem;line-height:1.25;margin:4px 0 0}.people-count{background:var(--bg-deep);border-radius:999px;color:var(--accent);flex:none;font-size:.72rem;font-weight:700;padding:3px 8px}.people-table-frame{max-height:627px;overflow:auto}.people-table{border-collapse:collapse;table-layout:fixed;width:100%}.people-table th{background:#f4eee4;border-bottom:1px solid var(--line);color:#70685e;font-size:.65rem;font-weight:700;height:24px;letter-spacing:.08em;padding:0 9px;position:sticky;text-align:left;text-transform:uppercase;top:0;z-index:2}.people-table th:first-child{width:53%}.people-table td{border-bottom:1px solid #e5ddd1;height:49px;padding:4px 8px;vertical-align:middle}.people-table tbody tr:last-child td{border-bottom:0}.people-table tbody tr:hover td,.people-table tbody tr.is-selected td{background:#f8f0e7}.people-table tbody tr.is-selected td:first-child{box-shadow:inset 3px 0 0 var(--person-row-border)}.person-select{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:inherit;cursor:pointer;display:grid;font:inherit;gap:0 7px;grid-template-columns:8px minmax(0,1fr);padding:0;text-align:left;width:100%}.person-select:focus-visible{border-radius:4px;outline:2px solid var(--accent);outline-offset:2px}.person-color-dot{background:var(--person-row-bg);border:1px solid var(--person-row-border);border-radius:50%;grid-row:1 / 3;height:8px;width:8px}.person-name,.person-prayer-count{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-name{font-size:.81rem;font-weight:650;line-height:1.15}.person-prayer-count{color:var(--muted);font-size:.69rem;line-height:1.2;margin-top:2px}.person-contact{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#554e47;display:-webkit-box;font-size:.7rem;line-height:1.18;overflow:hidden;overflow-wrap:anywhere}.people-empty{color:var(--muted);font-size:.78rem;line-height:1.4;padding:16px 12px}.people-panel-footer{align-items:center;background:#faf6ef;border-top:1px solid var(--line);color:var(--muted);display:flex;font-size:.68rem;justify-content:space-between;min-height:35px;padding:7px 10px}.people-panel-footer button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--accent);cursor:pointer;font:inherit;font-weight:700;padding:2px}.rosary-panel{display:flex;flex-direction:column;min-height:670px;overflow:hidden}.rosary-panel .panel-heading{padding-left:15px}.rosary-canvas-shell{background:radial-gradient(ellipse at 50% 40%,#fffef9cc,#e8dfd175),repeating-linear-gradient(83deg,rgba(99,78,53,.025) 0 1px,transparent 1px 7px),#f0e9dd;flex:1;min-height:610px;overflow:hidden;position:relative}.rosary-canvas-shell:after{border:1px solid rgba(84,64,45,.08);border-radius:13px;content:"";top:8px;right:8px;bottom:8px;left:8px;pointer-events:none;position:absolute}.rosary-controls{align-items:center;background:#fffdf8f0;border:1px solid #cfc4b5;border-radius:9px;box-shadow:0 4px 14px #362a1e1a;display:flex;gap:2px;padding:3px;position:absolute;right:14px;top:13px;z-index:4}.rosary-controls button{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:6px;color:#514538;cursor:pointer;display:inline-flex;height:28px;justify-content:center;padding:0;width:28px}.rosary-controls button:hover{background:#eee5d9}.rosary-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rosary-controls svg{fill:none;height:17px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6;width:17px}.zoom-value{color:#625649;font-size:.68rem;font-variant-numeric:tabular-nums;min-width:35px;text-align:center}.rosary-gesture-hint{background:#fffdf8cc;border-radius:999px;bottom:12px;color:#6e6255;font-size:.66rem;left:50%;padding:4px 9px;pointer-events:none;position:absolute;transform:translate(-50%);z-index:3}.rosary-canvas{cursor:grab;display:block;height:100%;min-height:610px;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.rosary-canvas:active{cursor:grabbing}.rosary-table-shadow{fill:none;filter:url(#rosary-shadow);opacity:.3;stroke:#392a1f;stroke-linecap:round;stroke-width:5;transform:translateY(2px)}.rosary-cord,.inner-cords line{fill:none;stroke:url(#cord-warm);stroke-linecap:round}.rosary-cord{stroke-width:2.4}.inner-cords line{opacity:.66;stroke-width:1.3}.center-medal ellipse{fill:#76543e;filter:url(#rosary-shadow);stroke:#493426;stroke-width:2}.center-medal path{fill:none;opacity:.72;stroke:#d8b994;stroke-linecap:round;stroke-width:1.2}.assignment-node{cursor:pointer;opacity:1;outline:none;transition:opacity .14s ease}.assignment-node.is-dimmed{opacity:.14}.assignment-node:focus-visible .bead-selection{display:block}.assignment-leader{opacity:.45;stroke:var(--person-pill-border);stroke-dasharray:2 2;stroke-width:.9}.bead-shadow{fill:#2b1f1733;transform:translateY(1.4px)}.bead-body,.rosary-cross path{fill:url(#bead-walnut);stroke:#3e2c21;stroke-width:1}.bead-glint{fill:#ffefd594}.bead-check{fill:none;stroke:#fff8e9;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.assignment-node.is-done .bead-body,.assignment-node.is-done .rosary-cross path{fill:#35634f;stroke:#244737}.bead-selection{fill:#ffffff8f;stroke:var(--person-pill-border);stroke-width:2.4}.assignment-node:focus-visible .bead-selection{fill:#ffffffb8}.assignee-pill{fill:var(--person-pill-bg);stroke:var(--person-pill-border);stroke-width:1}.assignee-pill-text{fill:var(--person-pill-text);font-family:"Source Sans 3",system-ui,sans-serif;font-size:10px;font-weight:650;letter-spacing:.01em;pointer-events:none}.assignment-node.is-unassigned .assignee-pill{stroke-dasharray:3 2}.assignment-node.is-selected .assignee-pill{filter:drop-shadow(0 2px 3px rgba(42,32,23,.22));stroke-width:2}.assignment-inspector{align-items:end;background:#fffcf6;border-top:1px solid var(--line);display:grid;gap:8px;grid-template-columns:minmax(150px,1.1fr) minmax(130px,.8fr) minmax(180px,1fr) auto;padding:10px 43px 10px 12px;position:relative}.assignment-inspector-copy{align-self:center;min-width:0}.assignment-inspector-copy strong,.assignment-inspector-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-inspector-copy strong{font-family:Cormorant Garamond,Georgia,serif;font-size:1.02rem}.assignment-inspector-copy span{color:var(--muted);font-size:.68rem;margin-top:1px}.assignment-inspector label{color:#6a6157;font-size:.64rem;font-weight:700;letter-spacing:.06em;margin:0 0 2px;text-transform:uppercase}.assignment-inspector input{border-radius:7px;font-size:.77rem;height:31px;margin:0;padding:4px 7px}.assignment-actions{align-items:center;display:flex;gap:5px}.assignment-actions .btn{font-size:.72rem;padding:.4rem .72rem;white-space:nowrap}.assignment-close{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:50%;color:var(--muted);cursor:pointer;display:flex;font-size:1rem;height:26px;justify-content:center;padding:0;position:absolute;right:9px;top:50%;transform:translateY(-50%);width:26px}.assignment-close:hover{background:var(--bg-deep)}@media(max-width:980px){.project-workspace{grid-template-columns:225px minmax(0,1fr)}.assignment-inspector{grid-template-columns:minmax(130px,1fr) minmax(120px,.8fr) minmax(150px,1fr)}.assignment-actions{grid-column:1 / -1;justify-content:flex-end}}@media(max-width:760px){.project-overview{align-items:start;gap:16px;grid-template-columns:1fr}.project-workspace{grid-template-columns:1fr}.people-panel{max-height:365px}.people-table-frame{max-height:257px}.rosary-panel{min-height:0}.rosary-canvas-shell,.rosary-canvas{min-height:360px}}@media(max-width:560px){.project-overview{padding:16px}.assignment-inspector{align-items:stretch;grid-template-columns:1fr 1fr}.assignment-inspector-copy{grid-column:1 / -1}.assignment-inspector-field{min-width:0}.assignment-actions{grid-column:1 / -1}.rosary-gesture-hint{display:none}}@media(prefers-reduced-motion:reduce){.assignment-node{transition:none}}:root{--bg: #f7f3ec;--bg-deep: #ebe3d4;--ink: #1f2430;--muted: #5c6578;--card: #fffdf8;--line: #d9cfc0;--accent: #6b3f55;--accent-2: #2f5d50;--ok: #2f6b4f;--pending: #8a6a2f;--shadow: 0 10px 30px rgba(31, 36, 48, .08);font-family:"Source Sans 3",system-ui,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,#fff9ef,var(--bg) 45%,var(--bg-deep))}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,.brand{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;letter-spacing:.01em}.shell{max-width:980px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.shell.shell-wide{max-width:1480px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.brand{font-size:1.75rem;color:var(--ink);text-decoration:none}.nav{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:1.25rem}.grid{display:grid;gap:1rem}.grid.two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.muted{color:var(--muted)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:999px;padding:.55rem 1rem;font:inherit;font-weight:600;cursor:pointer;background:var(--accent);color:#fff}.btn.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.btn.ghost{background:transparent;color:var(--accent);border-color:transparent}.btn:disabled{opacity:.55;cursor:not-allowed}label{display:block;font-weight:600;margin-bottom:.35rem}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.65rem .75rem;font:inherit;background:#fff;margin-bottom:.9rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media(max-width:640px){.shell{padding:.85rem .85rem 2rem}.topbar{gap:.5rem}.nav{flex-wrap:nowrap;gap:.25rem}.nav>.muted{display:none}.nav .btn,.nav button{padding-left:.7rem;padding-right:.7rem}.field-row{grid-template-columns:1fr}}.progress{height:10px;background:var(--bg-deep);border-radius:999px;overflow:hidden;margin:.5rem 0}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent))}.chip{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.2rem .65rem;font-size:.85rem;font-weight:600;background:var(--bg-deep)}.chip.ok{background:#e4f3ea;color:var(--ok)}.chip.pending{background:#f7efd9;color:var(--pending)}.slot{display:grid;grid-template-columns:2rem 1fr auto;gap:.75rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line)}.slot:last-child{border-bottom:0}.group-title{margin:1.25rem 0 .35rem;color:var(--accent)}.error{background:#fdecee;color:#8a2430;border:1px solid #f0c4ca;border-radius:10px;padding:.75rem 1rem;margin-bottom:1rem}.hero{padding:1.5rem;margin-bottom:1.25rem;background:linear-gradient(135deg,#6b3f5514,#2f5d5014),var(--card)}.hero p{max-width:42rem;line-height:1.55}
