@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--primary:#2563eb;--primary-light:#3b82f6;--primary-dark:#1d4ed8;--bg:#f1f5f9;--surface:#fff;--surface-2:#f8fafc;--border:#e2e8f0;--text:#0f172a;--text-muted:#64748b;--text-inv:#fff;--card-bg:#fff;--col-treasures:#475569;--col-ministry:#b45309;--col-living:#881337;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 10px 30px #0000001f;--transition:.2s ease;font-family:Inter,system-ui,sans-serif}[data-theme=light]{--bg:#f1f5f9;--surface:#fff;--surface-2:#f8fafc;--border:#e2e8f0;--text:#0f172a;--text-muted:#64748b;--col-treasures:#475569;--col-ministry:#b45309;--col-living:#881337;--col-public-talk:#166534;--col-watchtower:#1e3a8a;--card-bg:#fff}[data-theme=dark]{--bg:#0f172a;--surface:#1e293b;--surface-2:#162032;--border:#334155;--text:#f1f5f9;--text-muted:#94a3b8;--col-treasures:#64748b;--col-ministry:#d97706;--col-living:#be185d;--card-bg:#1e293b}@media (prefers-color-scheme:dark){[data-theme=system]{--bg:#0f172a;--surface:#1e293b;--surface-2:#162032;--border:#334155;--text:#f1f5f9;--text-muted:#94a3b8;--col-treasures:#64748b;--col-ministry:#d97706;--col-living:#be185d;--card-bg:#1e293b}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);transition:background var(--transition), color var(--transition);line-height:1.5}.app-container{flex-direction:column;gap:1.25rem;max-width:1100px;min-height:100vh;margin:0 auto;padding:1.5rem;display:flex}.navbar{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.navbar-brand{align-items:center;gap:.6rem;display:flex}.navbar-logo{font-size:1.5rem}.navbar-brand h1{font-size:1.1rem;font-weight:700}.nav-links{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.nav-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.875rem;font-weight:500;display:inline-flex}.nav-btn:hover{background:var(--border);color:var(--text)}.nav-btn.active{background:var(--primary);color:#fff}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:1.25rem}.btn{border-radius:var(--radius-sm);cursor:pointer;background:var(--primary);color:#fff;transition:filter var(--transition), background var(--transition);white-space:nowrap;border:none;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.btn:hover{filter:brightness(1.1)}.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.btn-outline{border:1px solid var(--border);color:var(--text);background:0 0}.btn-outline:hover{background:var(--border);filter:none}.btn-danger{background:var(--col-living);color:#fff}.btn-sm{padding:.35rem .7rem;font-size:.8rem}.btn-row{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.icon-btn{border-radius:var(--radius-sm);border:1px solid var(--border);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:all var(--transition);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--border);color:var(--text)}.icon-btn.danger:hover{color:var(--col-living);background:#fee2e2;border-color:#fca5a5}.btn-outline:hover{background:var(--bg);color:var(--primary);border-color:var(--primary)}.btn-danger{color:#dc3545;background:0 0;border:1px solid #dc3545}.btn-danger:hover{color:#fff;background:#dc3545}.input,.select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);transition:border-color var(--transition), box-shadow var(--transition);padding:.45rem .75rem;font-family:inherit;font-size:.875rem}.input:focus,.select:focus{border-color:var(--primary-light);outline:none;box-shadow:0 0 0 3px #3b82f626}.input::placeholder{color:var(--text-muted)}.week-nav{flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.week-select-wrap{flex:1;min-width:150px}.week-select{font-weight:600}.week-nav-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-left:auto;display:flex}.url-loader{padding:.75rem 1rem}.url-loader-inner{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.url-icon{color:var(--text-muted);flex-shrink:0}.url-input{flex:1;min-width:200px}.error-msg{color:var(--col-living);align-items:center;gap:.4rem;margin-top:.5rem;font-size:.875rem;display:flex}.schedule-page{flex-direction:column;gap:1rem;display:flex}.schedule-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.schedule-week-title h2{font-size:1.3rem;font-weight:700}.schedule-actions{flex-wrap:wrap;gap:.5rem;display:flex}.print-title,.print-header{display:none}.schedule-print-wrap{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.schedule-table{width:100%}.section-header{letter-spacing:.06em;text-transform:uppercase;color:#fff;justify-content:space-between;align-items:center;padding:.5rem 1rem;font-size:.8em;font-weight:700;display:flex}.section-hall{opacity:.85;font-size:.75em;font-weight:500}.section-treasures{background:var(--col-treasures)}.section-ministry{background:var(--col-ministry)}.section-living{background:var(--col-living)}.section-public-talk{background:var(--col-public-talk)}.section-watchtower{background:var(--col-watchtower)}.schedule-row{border-bottom:1px solid var(--border);transition:background var(--transition);align-items:stretch;display:flex}.schedule-row:last-child{border-bottom:none}.schedule-row:hover{background:var(--surface-2)}.add-row{padding:.5rem}.add-row:hover{background:0 0}.edit-row{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem;display:flex}.cell-time{width:72px;min-width:72px;color:var(--text-muted);border-right:1px solid var(--border);align-items:center;padding:.75rem .5rem .75rem 1rem;font-size:.85em;display:flex}.cell-title{border-right:1px solid var(--border);flex:1;align-items:center;padding:.75rem 1rem;font-size:.9em;font-weight:500;display:flex}.cell-assignees{flex-direction:column;justify-content:center;gap:.4rem;width:300px;min-width:260px;padding:.5rem .75rem;display:flex}.assignee-row{align-items:center;gap:.5rem;display:flex}.assignee-label{color:var(--text-muted);white-space:nowrap;text-align:right;min-width:72px;font-size:.75em}.time-input{flex-shrink:0;width:72px}.flex-input{flex:1;min-width:120px}.assistant-toggle{color:var(--text-muted);cursor:pointer;white-space:nowrap;align-items:center;gap:.3rem;font-size:.8rem;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:3rem 1rem}.participant-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:1rem;transition:all .2s;display:flex;box-shadow:0 1px 3px #00000005}.participant-card:hover{border-color:var(--primary);box-shadow:0 2px 8px #0000000f}.archived-card{opacity:.6;background:#fdfdfd}.participant-name{color:var(--text);align-items:center;gap:.75rem;font-size:1.05rem;font-weight:600;display:flex}.participant-role{background:var(--bg);color:var(--text-muted);border-radius:12px;padding:.2rem .6rem;font-size:.75rem;font-weight:500}.participant-archived-badge{color:#721c24;background:#f8d7da;border-radius:12px;padding:.2rem .6rem;font-size:.75rem;font-weight:700}.participant-appointment-badge{color:#1565c0;white-space:nowrap;background:#e3f2fd;border-radius:10px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.participant-assignments{color:var(--text-muted);margin-top:.4rem;font-size:.85rem}.form-zone{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:15px}.zone-title{color:var(--primary);border-bottom:1px solid var(--border);margin:0 0 10px;padding-bottom:5px;font-size:.95rem}.participant-actions{flex-shrink:0;gap:.4rem;display:flex}.form-section{background:var(--surface-2);border-radius:var(--radius-md);border:1px solid var(--border);margin-bottom:1.5rem;padding:1.25rem}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.form-label{color:var(--text-muted);margin-bottom:.3rem;font-size:.8rem;font-weight:500;display:block}.checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.6rem;display:grid}.checkbox-label{cursor:pointer;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.checkbox-label input[type=checkbox]{accent-color:var(--primary);width:15px;height:15px}.data-section{border:1px solid var(--border);border-radius:var(--radius-md);padding:1.25rem}.data-section h3{margin-bottom:.35rem;font-size:1rem;font-weight:600}.data-section p{color:var(--text-muted);font-size:.875rem}.danger-zone{border-color:var(--col-living)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media print{.navbar,.week-nav,.url-loader,.schedule-actions,.schedule-header-row .schedule-actions,.add-row,.edit-row,.nav-links{display:none!important}.print-title{margin-bottom:.75rem;font-size:1.2rem;font-weight:700;display:block}.app-container{padding:0}.card{box-shadow:none;border:none;padding:0}body{background:#fff}.cell-assignees select{background:0 0;border:none;font-size:.8rem}}.export-mode{color:#000!important;border:none!important;width:800px!important;max-width:none!important;position:absolute!important;left:-9999px!important}.export-mode .print-header{text-align:center;margin-top:3rem;margin-bottom:2rem;display:block}.export-mode .print-header-title{font-size:1.5rem;font-weight:700}.export-mode .print-header-week{margin-top:.5rem;font-size:1.2rem}.export-mode *{color:#000!important}.export-mode .section-header{border-bottom:2px solid #000;padding-left:.5rem;padding-right:.5rem}.export-mode .section-header span{color:#fff!important}.export-mode .schedule-row{border-bottom:1px solid #ccc}.export-mode .cell-time,.export-mode .cell-title{border-right:none}.export-mode .export-name{border-bottom:1px solid #000;min-width:150px;padding-bottom:2px;display:inline-block}.export-mode .assignee-label{color:#000!important}.theme-toggle{background:var(--border);border-radius:8px;gap:2px;padding:2px;display:flex}.theme-btn{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.theme-btn:hover{color:var(--text);background:var(--surface)}.theme-btn.active{background:var(--primary);color:#fff;box-shadow:0 1px 3px #0003}[data-theme=dark] .form-section,[data-theme=dark] .form-zone{background:var(--surface);border-color:var(--border)}[data-theme=dark] .s89-blank{color:#e0e0e0;background:#1a1a2e}@media (width<=768px){body{padding:10px}.navbar{flex-direction:column;align-items:flex-start;gap:15px;padding:1rem}.nav-links{justify-content:space-between;width:100%;padding-bottom:5px;overflow-x:auto}.nav-btn{flex:1;justify-content:center;padding:.6rem;font-size:.85rem}.week-nav{flex-wrap:wrap;justify-content:space-between}.week-nav-actions{justify-content:space-between;width:100%;margin-top:10px}.url-loader-inner{flex-wrap:wrap}.url-loader-inner input{width:100%}.schedule-header-row{flex-direction:column;align-items:flex-start;gap:10px}.schedule-actions{flex-wrap:wrap;width:100%}.schedule-actions button{flex:1}.schedule-row{border-bottom:2px solid var(--border);flex-direction:column;align-items:stretch;gap:.5rem;padding:1rem;position:relative}.cell-time{width:auto;color:var(--primary);border-right:none;padding:0;font-size:.9rem;font-weight:700}.cell-title{border-right:none;width:auto;padding:0;font-size:1.05rem}.cell-assignees{width:100%;margin-top:5px;padding:0}.assignee-row{flex-direction:column;align-items:flex-start;gap:5px;margin-bottom:10px}.assignee-row select{width:100%;max-width:none}.cell-actions{position:absolute;top:1rem;right:1rem;margin:0!important}.edit-row{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;margin-bottom:10px}.edit-row input,.edit-row select{width:100%!important}.form-grid{grid-template-columns:1fr}.s89-blank{width:100%;padding:15px}}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg);border-radius:12px;width:100%;max-height:90vh;padding:2rem;position:relative;overflow-y:auto;box-shadow:0 10px 25px #0003}.export-modal{background:var(--bg);border-radius:12px;width:100%;max-width:520px;max-height:90vh;position:relative;overflow-y:auto;box-shadow:0 10px 25px #0003}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.modal-header h3{margin:0;font-size:1rem}.modal-body{padding:1rem}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.5rem;padding:.75rem 1rem;display:flex}.s89-blank{color:#000;box-sizing:border-box;background:#fff;border:1px solid #ccc;width:400px;margin:0 auto;padding:30px}.s89-header{text-align:center;text-transform:uppercase;margin-bottom:25px;font-size:1.1em;font-weight:700;line-height:1.3}.s89-field{align-items:flex-end;margin-bottom:15px;font-size:1.05em;display:flex}.s89-label{white-space:nowrap;margin-right:5px;font-weight:700}.s89-value{border-bottom:1px dashed #666;flex:1;min-height:1.2em;padding-left:10px}.s89-hall-section{margin-top:25px;margin-bottom:20px;font-size:1.05em}.s89-checkbox{align-items:center;gap:5px;margin-bottom:5px;font-size:.9em;display:flex}.s89-footer{text-align:justify;font-size:.85em;line-height:1.4}.bulk-drop-zone{border:2px dashed var(--border);text-align:center;color:var(--text-muted);cursor:pointer;background:#00000005;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;transition:all .2s;display:flex}.bulk-drop-zone:hover,.bulk-drop-zone.drag-over{border-color:var(--primary);color:var(--primary);background:#3b82f60d}.edit-row.dragging{opacity:.5;background:var(--surface-hover)}.edit-row.drag-over{border-top:2px solid var(--primary)}.status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.status-dot-green{background-color:#22c55e;box-shadow:0 0 8px #22c55e66}.status-dot-yellow{background-color:#eab308;box-shadow:0 0 8px #eab30866}.status-dot-red{background-color:#ef4444;box-shadow:0 0 8px #ef444466}.row-conflict-warn{background:#f59e0b05!important;border-left:4px solid #f59e0b!important}[data-theme=dark] .row-conflict-warn{background:#f59e0b0a!important}.fs-planner-page{flex-direction:column;gap:1.5rem;display:flex}.fs-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.fs-topbar-left{flex-direction:column;gap:.25rem;display:flex}.fs-stat-badge{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);border-radius:12px;width:fit-content;padding:.2rem .6rem;font-size:.8rem}.fs-topbar-right{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.fs-calendar-wrap{flex-direction:column;gap:1rem;display:flex}.fs-cal-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.fs-cal-header-left{align-items:center;gap:1.25rem;display:flex}.fs-cal-month-title{text-transform:capitalize;font-size:1.25rem;font-weight:700}.fs-cal-nav{align-items:center;gap:.25rem;display:flex}.fs-cal-legend{gap:.75rem;font-size:.8rem;display:flex}.fs-legend-item{align-items:center;gap:.35rem;font-weight:500;display:flex}.fs-legend-item:before{content:"";border-radius:50%;width:8px;height:8px;display:inline-block}.fs-legend-morning:before{background:#3b82f6}.fs-legend-day:before{background:#10b981}.fs-legend-evening:before{background:#8b5cf6}.fs-cal-grid{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(120px,auto);gap:1px;display:grid;overflow:hidden}.fs-cal-days-header{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;text-align:center;border-bottom:none;grid-template-columns:repeat(7,1fr);font-weight:600;display:grid;overflow:hidden}.fs-cal-day-name{color:var(--text-muted);padding:.75rem .5rem;font-size:.875rem}.fs-cal-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);flex-direction:column;gap:.5rem;min-height:120px;padding:.5rem;transition:background .15s;display:flex;position:relative}.fs-cal-cell:nth-child(7n){border-right:none}.fs-cal-cell--other{background:var(--surface-2);opacity:.5}.fs-cal-cell--today{background:#2563eb08}.fs-cal-cell-header{justify-content:space-between;align-items:center;display:flex}.fs-cal-date-num{width:24px;height:24px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;font-size:.875rem;display:flex}.fs-cal-date-today{background:var(--primary);font-weight:600;color:#fff!important}.fs-cal-add-btn{opacity:0;transition:opacity .15s;border-radius:4px!important;width:20px!important;height:20px!important;padding:2px!important}.fs-cal-cell:hover .fs-cal-add-btn{opacity:1}.fs-cal-shifts{flex-direction:column;flex-grow:1;gap:4px;max-height:120px;display:flex;overflow-y:auto}.fs-shift-badge{border-radius:var(--radius-sm);border-left:3px solid var(--primary);justify-content:space-between;align-items:center;gap:.25rem;padding:.25rem .4rem;font-size:.75rem;font-weight:500;transition:transform .1s,box-shadow .1s;display:flex}.fs-shift-badge:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.fs-shift-badge-main{text-align:left;cursor:pointer;color:inherit;font-size:inherit;font-weight:inherit;background:0 0;border:none;flex-direction:column;flex-grow:1;padding:0;display:flex;overflow:hidden}.fs-shift-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fs-shift-time{opacity:.8;font-size:.65rem}.fs-shift-wa-btn{color:#25d366;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;transition:background .15s;display:flex}.fs-shift-wa-btn:hover{background:#25d3661a}.shift-morning{color:#1d4ed8;background:#3b82f614;border-left-color:#3b82f6!important}[data-theme=dark] .shift-morning{color:#93c5fd;background:#3b82f626}.shift-day{color:#047857;background:#10b98114;border-left-color:#10b981!important}[data-theme=dark] .shift-day{color:#6ee7b7;background:#10b98126}.shift-evening{color:#6d28d9;background:#8b5cf614;border-left-color:#8b5cf6!important}[data-theme=dark] .shift-evening{color:#c084fc;background:#8b5cf626}.fs-trash-zone{color:#ef4444;border-radius:var(--radius-md);background:#ef44440d;border:2px dashed #ef4444;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.5rem;font-weight:500;transition:all .2s;display:flex}.fs-cal-hint{color:var(--text-muted);justify-content:center;align-items:center;gap:.35rem;font-size:.8rem;display:flex}.days-checkboxes-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-top:.5rem;display:grid}.day-checkbox-label{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:.5rem;padding:.5rem;transition:background .15s,border-color .15s;display:flex}.day-checkbox-label:hover{background:var(--surface-2)}.day-checkbox-label.checked{border-color:var(--primary);background:#2563eb0d}.service-days-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);margin-top:1rem;padding:1rem}.service-days-title{color:var(--text);margin-bottom:.5rem;font-size:.95rem;font-weight:600}.service-days-subtitle{color:var(--text-muted);margin-bottom:.75rem;font-size:.8rem}.schedule-page-container{align-items:flex-start;gap:1.5rem;width:100%;transition:all .3s ease-in-out;display:flex}.schedule-page-container.with-sidebar .schedule-page{flex:1;min-width:0}.schedule-analytics-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:1rem;width:380px;min-width:380px;max-height:calc(100vh - 120px);padding:1.25rem;animation:.25s ease-out slideIn;display:flex;position:sticky;top:10px;overflow-y:auto;box-shadow:0 4px 12px #0000000d}@keyframes slideIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@media (width<=1024px){.schedule-page-container{flex-direction:column;gap:1rem}.schedule-analytics-sidebar{width:100%;min-width:100%;max-height:none;position:static}}
