@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-base:#0d0f14;--bg-surface:#151821;--bg-card:#1c2030;--bg-card-hover:#212640;--bg-input:#111420;--border:#ffffff12;--border-focus:#8b5cf699;--accent:#8b5cf6;--accent-light:#a78bfa;--accent-glow:#8b5cf640;--accent-2:#06b6d4;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#475569;--success:#22c55e;--warning:#f59e0b;--error:#ef4444;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:22px;--shadow-card:0 4px 24px #0006;--shadow-glow:0 0 30px #8b5cf626;--transition:.2s ease}html{scroll-behavior:smooth}body{background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100dvh;font-family:Inter,system-ui,sans-serif;line-height:1.6}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 50% at 20% -10%,#8b5cf61f 0%,#0000 60%),radial-gradient(60% 40% at 80% 110%,#06b6d414 0%,#0000 60%);position:fixed;inset:0}#root{z-index:1;position:relative}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:#8b5cf666;border-radius:99px}:root{--bg-base:#0a0a0a;--bg-card:#141414;--bg-elevated:#1c1c1c;--bg-input:#111;--bg-hover:#1f1f1f;--border:#242424;--border-subtle:#1a1a1a;--border-active:#ff9f0a;--accent:#ff9f0a;--accent-dim:#ff9f0a1f;--accent-glow:#ff9f0a40;--text-primary:#f0f0f0;--text-secondary:#8a8a8a;--text-muted:#484848;--text-accent:#ff9f0a;--color-success:#34c759;--color-error:#ff453a;--color-success-bg:#34c75914;--color-error-bg:#ff453a14;--font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Arial, sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--ease:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font);min-height:100vh;font-size:15px;line-height:1.6}.app{max-width:760px;margin:0 auto;padding:0 24px 80px}.header{text-align:center;padding:72px 0 56px}.header-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--text-accent);margin-bottom:20px;font-size:11px;font-weight:600}.header-title{letter-spacing:-.03em;color:var(--text-primary);margin-bottom:20px;font-size:clamp(32px,6vw,52px);font-weight:700;line-height:1.1}.header-sub{color:var(--text-secondary);max-width:400px;margin:0 auto;font-size:15px;line-height:1.65}.main{flex-direction:column;gap:16px;display:flex}.banner{border-radius:var(--radius-md);animation:slideDown .25s var(--ease);border:1px solid #0000;align-items:center;gap:10px;padding:14px 18px;font-size:13.5px;font-weight:500;display:flex}.banner--success{background:var(--color-success-bg);color:var(--color-success);border-color:#34c75933}.banner--error{background:var(--color-error-bg);color:var(--color-error);border-color:#ff453a33}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.card-header{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);align-items:center;gap:10px;padding:18px 22px;display:flex}.card-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);flex:1;font-size:11px;font-weight:600}.selection-badge{color:var(--text-accent);background:var(--accent-dim);letter-spacing:.04em;border:1px solid #ff9f0a33;border-radius:20px;padding:2px 10px;font-size:11px;font-weight:600}.date-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.date-label{color:var(--text-secondary);font-size:14px}.date-input{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;transition:border-color .2s var(--ease), box-shadow .2s var(--ease);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;outline:none;padding:9px 14px;font-size:14px}.date-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.sections-list{flex-direction:column;display:flex}.section-row{border-bottom:1px solid var(--border-subtle);transition:background .15s var(--ease);align-items:flex-start;gap:16px;padding:16px 22px;display:flex}.section-row:last-child{border-bottom:none}.section-row--active{background:#ffffff04}.section-meta{flex-shrink:0;align-items:center;gap:12px;min-width:170px;padding-top:9px;display:flex}.section-index{letter-spacing:.1em;color:var(--text-muted);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";min-width:20px;font-size:10px;font-weight:700}.section-name{color:var(--text-primary);letter-spacing:-.01em;font-size:14px;font-weight:500}.section-right{flex-direction:column;flex:1;gap:10px;display:flex}.verse-count-select{appearance:none;background:var(--bg-elevated);color:var(--text-secondary);font-family:var(--font);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border:1.5px solid #333;border-radius:8px;align-self:flex-start;padding:5px 28px 5px 10px;font-size:12px;font-weight:500;transition:border-color .2s,color .2s}.verse-count-select:hover,.verse-count-select:focus{color:var(--text-primary);border-color:#ff9f0a;outline:none}.select-wrapper{align-items:center;display:flex;position:relative}.styled-select{appearance:none;background:var(--bg-input);width:100%;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;transition:border-color .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);outline:none;padding:9px 38px 9px 13px;font-size:14px}.styled-select:focus,.combobox-trigger-btn--open.styled-select{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);background:var(--bg-elevated)}.styled-select:hover:not(:focus):not(.combobox-trigger-btn--open){background:var(--bg-elevated);border-color:#3a3a3a}.combobox-placeholder{color:var(--text-muted)}.select-chevron{color:var(--text-muted);pointer-events:none;align-items:center;transition:color .2s;display:flex;position:absolute;right:12px}.select-wrapper:focus-within .select-chevron,.combobox-trigger-btn--open~.select-chevron{color:var(--accent)}.combobox-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);animation:comboboxIn .15s var(--ease);overflow:hidden;box-shadow:0 8px 32px #000000b3,0 0 0 1px #ff9f0a0f}@keyframes comboboxIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.combobox-search-row{border-bottom:1px solid var(--border-subtle);align-items:center;gap:8px;padding:10px 12px;display:flex}.combobox-search-icon{color:var(--text-muted);flex-shrink:0;align-items:center;display:flex}.combobox-search-input{color:var(--text-primary);font-family:var(--font);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:13px}.combobox-search-input::placeholder{color:var(--text-muted)}.combobox-list{overscroll-behavior:contain;max-height:220px;overflow-y:auto}.combobox-list::-webkit-scrollbar{width:4px}.combobox-list::-webkit-scrollbar-track{background:0 0}.combobox-list::-webkit-scrollbar-thumb{background:#8b5cf659;border-radius:99px}.combobox-option{color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s var(--ease), color .12s var(--ease);padding:9px 14px;font-size:14px}.combobox-option:hover{background:var(--accent-dim);color:var(--text-primary)}.combobox-option--active{background:var(--accent-dim);color:var(--text-accent)}.combobox-option--clear{color:var(--text-muted);border-bottom:1px solid var(--border-subtle);padding:8px 14px;font-size:12px}.combobox-empty{text-align:center;color:var(--text-muted);padding:14px;font-size:13px}.verse-count-row{animation:fadeIn .2s var(--ease);align-items:center;gap:10px;display:flex}.verse-count-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);flex-shrink:0;font-size:11px;font-weight:600}.verse-count-picker{position:relative}.verse-count-trigger{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);color:var(--text-accent);cursor:pointer;transition:border-color .18s var(--ease), box-shadow .18s var(--ease);outline:none;justify-content:center;align-items:center;gap:5px;min-width:52px;padding:4px 10px;font-size:13px;font-weight:600;display:flex}.verse-count-trigger:hover,.verse-count-trigger--open{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.verse-count-panel{z-index:201;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:56px;animation:comboboxIn .12s var(--ease);position:absolute;top:calc(100% + 4px);left:0;overflow:hidden;box-shadow:0 6px 20px #00000080}.verse-count-option{color:var(--text-secondary);cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;transition:background .1s var(--ease), color .1s var(--ease);padding:7px 14px;font-size:13px}.verse-count-option:hover{background:var(--accent-dim);color:var(--text-primary)}.verse-count-option--active{background:var(--accent-dim);color:var(--text-accent);font-weight:600}.chorus-pill{letter-spacing:.05em;color:var(--text-muted);border:1px solid var(--border-subtle);text-transform:lowercase;background:0 0;border-radius:20px;padding:4px 11px;font-size:11px;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.skeleton-row{border-bottom:1px solid var(--border-subtle);align-items:center;gap:16px;padding:18px 22px;display:flex}.skeleton-row:last-child{border-bottom:none}.skeleton{background:linear-gradient(90deg, var(--bg-card) 25%, var(--bg-elevated) 50%, var(--bg-card) 75%);border-radius:var(--radius-sm);background-size:200% 100%;height:36px;animation:1.6s infinite shimmer}.skeleton--index{flex-shrink:0;width:28px}.skeleton--select{flex:1}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.action-area{flex-direction:column;align-items:center;gap:14px;padding:8px 0 4px;display:flex}.generate-btn{border-radius:var(--radius-md);border:1.5px solid var(--accent);width:100%;max-width:360px;color:var(--accent);font-family:var(--font);letter-spacing:.01em;cursor:pointer;transition:all .3s var(--ease);background:0 0;justify-content:center;align-items:center;gap:10px;padding:16px 36px;font-size:15px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.generate-btn:before{content:"";background:var(--accent);opacity:0;transition:opacity .3s var(--ease);position:absolute;inset:0}.generate-btn>*{z-index:1;position:relative}.generate-btn:hover:not(:disabled){color:#0a0a0a;box-shadow:0 0 32px var(--accent-glow), 0 4px 20px #ff9f0a33}.generate-btn:hover:not(:disabled):before{opacity:1}.generate-btn:active:not(:disabled){transform:scale(.98)}.generate-btn:disabled{border-color:var(--border);color:var(--text-muted);cursor:not-allowed;opacity:.5}.btn-spinner{border:2px solid #ff9f0a40;border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.action-hint{color:var(--text-muted);letter-spacing:.01em;font-size:12px}.footer{border-top:1px solid var(--border-subtle);text-align:center;color:var(--text-muted);letter-spacing:.03em;margin-top:64px;padding-top:24px;font-size:12px}@media (width<=540px){.app{padding:0 16px 60px}.header{padding:48px 0 40px}.header-title{letter-spacing:-.025em}.section-row{flex-direction:column;gap:10px;padding:16px}.section-meta{min-width:unset;padding-top:0}.section-right{width:100%}.date-row{flex-direction:column;align-items:flex-start}.date-input{width:100%}.card-header,.date-row{padding:16px}.section-row{padding:14px 16px}}.add-hymn-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:12px;font-family:var(--font);letter-spacing:.03em;cursor:pointer;transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);background:0 0;align-items:center;gap:6px;margin-left:auto;padding:5px 12px;font-weight:500;display:flex}.add-hymn-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.modal-backdrop{z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;justify-content:center;align-items:flex-start;padding:24px 16px 40px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:540px;animation:modalIn .2s var(--ease);flex-direction:column;display:flex;box-shadow:0 24px 80px #000000b3}@keyframes modalIn{0%{opacity:0;transform:translateY(-12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-title{letter-spacing:.04em;color:var(--text-primary);text-transform:uppercase;font-size:15px;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;transition:color .2s var(--ease), background .2s var(--ease);background:0 0;border:none;border-radius:6px;align-items:center;padding:4px;display:flex}.modal-close:hover{color:var(--text-primary);background:var(--bg-elevated)}.modal-body{flex-direction:column;gap:22px;max-height:65vh;padding:24px;display:flex;overflow-y:auto}.modal-field{flex-direction:column;gap:8px;display:flex}.modal-label{letter-spacing:.08em;color:var(--text-secondary);font-size:11px;font-weight:600}.modal-label-optional{color:var(--text-muted);text-transform:lowercase;letter-spacing:0;font-weight:400}.modal-helper{color:var(--text-muted);margin-top:-4px;font-size:12px;line-height:1.5}.modal-input{background:var(--bg-input);width:100%;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);transition:border-color .2s var(--ease), box-shadow .2s var(--ease);outline:none;padding:9px 13px;font-size:14px}.modal-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.modal-textarea{background:var(--bg-input);width:100%;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);resize:vertical;transition:border-color .2s var(--ease), box-shadow .2s var(--ease);outline:none;padding:9px 13px;font-size:13.5px;line-height:1.65}.modal-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.modal-verse-row{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.modal-verse-header{justify-content:space-between;align-items:center;display:flex}.modal-verse-num{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:600}.modal-verse-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:13px;transition:color .15s,background .15s}.modal-verse-remove:hover{color:var(--color-error);background:var(--color-error-bg)}.modal-add-verse{border:1px dashed var(--border);color:var(--text-muted);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font);cursor:pointer;background:0 0;align-items:center;gap:6px;width:100%;padding:8px 14px;transition:border-color .2s,color .2s;display:flex}.modal-add-verse:hover{border-color:var(--accent);color:var(--accent)}.modal-toggle-row{border:1px solid var(--border);border-radius:var(--radius-sm);gap:0;width:fit-content;display:flex;overflow:hidden}.modal-toggle-btn{font-size:13px;font-weight:600;font-family:var(--font);letter-spacing:.05em;cursor:pointer;background:var(--bg-input);color:var(--text-muted);transition:background .18s var(--ease), color .18s var(--ease);border:none;padding:8px 28px}.modal-toggle-btn+.modal-toggle-btn{border-left:1px solid var(--border)}.modal-toggle-btn--active{background:var(--accent);color:#000}.modal-banner{border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.modal-banner--error{background:var(--color-error-bg);color:var(--color-error)}.modal-banner--success{background:var(--color-success-bg);color:var(--color-success)}.modal-footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:12px;padding:18px 24px;display:flex}.modal-cancel{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:14px;font-family:var(--font);cursor:pointer;background:0 0;padding:10px 22px;transition:border-color .2s,color .2s}.modal-cancel:hover:not(:disabled){border-color:var(--text-secondary);color:var(--text-primary)}.modal-cancel:disabled{opacity:.4;cursor:not-allowed}.modal-save{background:var(--accent);color:#000;border-radius:var(--radius-sm);font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;border:none;align-items:center;gap:8px;padding:10px 26px;transition:opacity .2s,transform .15s;display:flex}.modal-save:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.modal-save:disabled{opacity:.5;cursor:not-allowed}.template-card{padding-bottom:20px}.template-grid{flex-wrap:wrap;gap:12px;padding:0 20px 4px;display:flex}.template-tile{background:var(--bg-elevated);border-radius:var(--radius-md);min-width:120px;color:var(--text-secondary);font-family:var(--font);letter-spacing:.02em;cursor:pointer;opacity:.65;text-align:left;transition:border-color .22s var(--ease), color .22s var(--ease), opacity .22s var(--ease), box-shadow .22s var(--ease), transform .15s var(--ease);border:1.5px solid #2a2a2a;flex:140px;padding:14px 18px;font-size:13px;font-weight:500;position:relative}.template-tile:hover:not(.template-tile--active){color:var(--text-primary);opacity:.85;border-color:#555;transform:translateY(-1px)}.template-tile--active{color:#ff9f0a;opacity:1;border-color:#ff9f0a;box-shadow:0 0 0 3px #ff9f0a2e,0 4px 20px #ff9f0a1f}.template-tile--active:after{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(at 50% 0,#ff9f0a12 0%,#0000 70%);position:absolute;inset:0}.church-card{padding-bottom:20px}.church-grid{flex-wrap:wrap;gap:12px;padding:0 20px 4px;display:flex}.church-tile{background:var(--bg-elevated);border-radius:var(--radius-md);min-width:140px;color:var(--text-secondary);font-family:var(--font);letter-spacing:.02em;cursor:pointer;opacity:.65;text-align:left;transition:border-color .22s var(--ease), color .22s var(--ease), opacity .22s var(--ease), box-shadow .22s var(--ease), transform .15s var(--ease);border:1.5px solid #2a2a2a;flex:160px;padding:14px 18px;font-size:13px;font-weight:500;position:relative}.church-tile:hover:not(.church-tile--active){color:var(--text-primary);opacity:.85;border-color:#555;transform:translateY(-1px)}.church-tile--active{color:#4fc3f7;opacity:1;border-color:#4fc3f7;box-shadow:0 0 0 3px #4fc3f72e,0 4px 20px #4fc3f71f}.church-tile--active:after{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(at 50% 0,#4fc3f712 0%,#0000 70%);position:absolute;inset:0}.neon-white{color:#fff;text-shadow:0 0 6px #fffffff2,0 0 16px #ffffffbf,0 0 34px #c8c8ff73,0 0 70px #b4a0ff40}.neon-violet{color:#c084fc;letter-spacing:.05em;text-shadow:0 0 5px #c084fcf2,0 0 14px #a855f7bf,0 0 30px #8b5cf680,0 0 60px #6d28d94d;font-weight:600}
