.show-list-message{text-align:center;color:#666;padding:1.5rem}.show-list-error{color:#c00}.show-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.show-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column}.show-card--clickable{cursor:pointer}.show-card--clickable:hover{box-shadow:0 2px 8px #00000026}.show-card-image-wrap{position:relative;width:100%}.show-card-image{width:100%;aspect-ratio:2/3;object-fit:cover;display:block}.show-card-placeholder{width:100%;aspect-ratio:2/3;background:#e0e0e0}.show-card-type-badge{position:absolute;bottom:.35rem;right:.35rem;display:flex;align-items:center;justify-content:center}.show-card-body{padding:.75rem 1rem;flex:1;display:flex;flex-direction:column}.show-card-name{margin:0 0 .25rem;font-size:1rem;font-weight:600}.show-card-channel{margin:0 0 .5rem;font-size:.875rem;color:#666;display:flex;align-items:center;min-height:1.5rem}.show-card-channel-logo{height:1.5rem;width:auto;max-width:6rem;object-fit:contain;object-position:left;display:block}.show-card-channel-placeholder{display:inline-flex;align-items:center;justify-content:center;height:1.5rem;width:1.5rem;color:#bbb}.show-card-channel-placeholder svg{width:100%;height:100%}.show-card-date-started{margin:0 0 .5rem;font-size:.8rem;color:#888}.show-card-finished-label{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;margin-top:auto;align-self:flex-end;-webkit-user-select:none;user-select:none}.show-card-finished-checkbox{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.show-card-finished-box{display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;border:2px solid #888;border-radius:3px;background:#fff;flex-shrink:0}.show-card-finished-label:hover .show-card-finished-box{border-color:#666}.show-card-finished-checkbox:focus-visible+.show-card-finished-box{outline:2px solid #666;outline-offset:2px}.media-type-badge{width:1.25rem;height:1.25rem;flex-shrink:0;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.channel-combobox{position:relative;width:100%}.channel-combobox-input{display:block;width:100%;margin-top:.25rem;padding:.5rem 2rem .5rem .75rem;font-size:1rem;border:1px solid #ccc;border-radius:4px;background:#fff}.channel-combobox-input:focus{outline:none;border-color:#333}.channel-combobox-input:disabled{opacity:.7;cursor:not-allowed}.channel-combobox-list{position:absolute;top:100%;left:0;right:0;margin:2px 0 0;padding:0;list-style:none;max-height:12rem;overflow-y:auto;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:10}.channel-combobox-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:1rem;cursor:pointer}.channel-combobox-item-logo{width:1.25rem;height:1.25rem;flex-shrink:0;object-fit:contain}.channel-combobox-item-placeholder{width:1.25rem;height:1.25rem;flex-shrink:0;display:inline-block;background:#e8e8e8;border-radius:2px}.channel-combobox-item-name{flex:1;min-width:0}.channel-combobox-item:hover,.channel-combobox-item--highlight{background:#f0f0f0}.channel-combobox-item--empty{color:#666;cursor:default}.channel-combobox-item--empty:hover{background:transparent}.add-show-form{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0000001a;max-width:360px}.add-show-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.add-show-fieldset{margin:0 0 1rem;padding:0;border:none}.add-show-legend{margin-bottom:.5rem;font-size:.875rem;font-weight:500}.add-show-radio-label{display:inline-flex;align-items:center;gap:.5rem;margin-right:1rem;font-size:.95rem;cursor:pointer}.add-show-radio{width:1rem;height:1rem;cursor:pointer}.add-show-radio:disabled{cursor:not-allowed}.add-show-label{display:block;margin-bottom:.75rem;font-size:.875rem;font-weight:500}.add-show-input{display:block;width:100%;margin-top:.25rem;padding:.5rem .75rem;font-size:1rem;border:1px solid #ccc;border-radius:4px}.add-show-input:focus{outline:none;border-color:#333}.add-show-input:disabled{opacity:.7;cursor:not-allowed}.add-show-date{min-height:2.25rem;cursor:pointer}.add-show-error{margin:0 0 .75rem;font-size:.875rem;color:#c00}.add-show-submit{padding:.5rem 1rem;font-size:1rem;font-weight:500;background:#333;color:#fff;border:none;border-radius:4px;cursor:pointer}.add-show-submit:hover:not(:disabled){background:#555}.add-show-submit:disabled{opacity:.7;cursor:not-allowed}.add-show-pick{max-width:420px}.add-show-pick-intro{margin:0 0 1rem;font-size:.95rem;color:#666}.add-show-pick-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.5rem;max-height:280px;overflow-y:auto}.add-show-pick-list li{margin:0}.add-show-pick-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem .75rem;text-align:left;font-size:.95rem;background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer}.add-show-pick-item:hover{background:#f5f5f5;border-color:#ccc}.add-show-pick-image{width:48px;height:72px;object-fit:cover;border-radius:4px;flex-shrink:0}.add-show-pick-placeholder{width:48px;height:72px;background:#e0e0e0;border-radius:4px;flex-shrink:0}.add-show-pick-name{flex:1;min-width:0;font-weight:500}.add-show-pick-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.add-show-none-btn{padding:.5rem .75rem;font-size:.9rem;font-weight:500;background:transparent;color:#333;border:1px solid #ccc;border-radius:4px;cursor:pointer}.add-show-none-btn:hover{background:#f0f0f0}.add-show-confirm{max-width:400px}.add-show-confirm-intro{margin:0 0 1rem;font-size:.95rem;color:#666}.add-show-confirm-preview{display:flex;gap:1rem;margin-bottom:1.25rem;padding:.75rem;background:#f8f8f8;border-radius:8px}.add-show-confirm-image{width:80px;height:120px;object-fit:cover;border-radius:4px;flex-shrink:0}.add-show-confirm-placeholder{width:80px;height:120px;background:#e0e0e0;border-radius:4px;flex-shrink:0}.add-show-confirm-details{flex:1;min-width:0}.add-show-confirm-name{margin:0 0 .35rem;font-size:1.1rem;font-weight:600}.add-show-confirm-meta{margin:0 0 .25rem;font-size:.9rem;color:#666}.add-show-confirm-date{margin:0;font-size:.875rem;color:#888}.add-show-confirm-actions{display:flex;gap:.75rem}.add-show-cancel-btn{padding:.5rem 1rem;font-size:1rem;font-weight:500;background:#e8e8e8;color:#333;border:none;border-radius:4px;cursor:pointer}.add-show-cancel-btn:hover:not(:disabled){background:#ddd}.add-show-cancel-btn:disabled{opacity:.7;cursor:not-allowed}.add-show-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.add-show-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0003;max-width:400px;width:100%;max-height:90vh;overflow-y:auto}.add-show-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem 0;gap:1rem}.add-show-modal-title{margin:0;font-size:1.25rem;font-weight:600}.add-show-modal-close{width:2rem;height:2rem;padding:0;font-size:1.5rem;line-height:1;color:#666;background:none;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center}.add-show-modal-close:hover{color:#333;background:#eee}.add-show-modal .add-show-form{box-shadow:none;border-radius:0;padding-top:.5rem}.add-show-modal .add-show-title{display:none}.history-message{text-align:center;color:#666;padding:1.5rem}.history-error{color:#c00}.history-table-wrap{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.history-table{width:100%;border-collapse:collapse}.history-th{text-align:left;padding:.75rem 1rem;font-size:.8rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid #e8e8e8}.history-th--sortable{padding:0}.history-sort-btn{display:inline-flex;align-items:center;gap:.25rem;width:100%;padding:.75rem 1rem;text-align:left;font-size:.8rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.02em;background:none;border:none;cursor:pointer}.history-sort-btn:hover{color:#333}.history-sort-icon{font-size:.9rem;color:#333}.history-th--done{width:2.5rem;padding-left:1rem;text-align:center}.history-th-done-label{font-size:.7rem}.history-th--icon{width:3rem;padding-left:1rem}.history-cell--done{width:2.5rem;padding-left:1rem;text-align:center;vertical-align:middle}.history-checkbox{display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;border:2px solid #22c55e;border-radius:3px;background:#22c55e;color:#fff}.history-checkbox svg{width:.75rem;height:.75rem}.history-th--name{min-width:10rem}.history-th--app{min-width:6rem}.history-th--date{min-width:6rem;white-space:nowrap}.history-row{cursor:pointer;border-bottom:1px solid #eee}.history-row:hover{background:#f8f8f8}.history-row:last-child{border-bottom:none}.history-cell{padding:.6rem 1rem;font-size:.95rem;vertical-align:middle}.history-cell--icon{width:3rem;padding-left:1rem}.history-icon-wrap{position:relative;display:inline-block}.history-icon{width:2.5rem;height:2.5rem;object-fit:cover;border-radius:4px;display:block}.history-icon-placeholder{width:2.5rem;height:2.5rem;background:#e0e0e0;border-radius:4px}.history-type-badge{position:absolute;bottom:0;right:0;display:flex;align-items:center;justify-content:center}.history-type-badge .media-type-badge{width:1rem;height:1rem}.history-cell--name{font-weight:600}.history-cell--app{color:#555}.history-app-logo{height:1.25rem;width:auto;max-width:5rem;object-fit:contain;object-position:left;display:block}.history-app-placeholder{display:inline-flex;align-items:center;justify-content:center;height:1.25rem;width:1.25rem;color:#bbb}.history-app-placeholder svg{width:100%;height:100%}.history-cell--date{color:#666;font-size:.9rem;white-space:nowrap}.history-th--user{min-width:5rem}.history-cell--user{white-space:nowrap}.history-user-tag{display:inline-block;padding:.2rem .5rem;font-size:.75rem;font-weight:500;border-radius:4px;background:#e8e8e8;color:#666}.history-user-tag--own{background:#dbeafe;color:#1d4ed8}.history-row--own{background:#fafbff}.history-row--own:hover{background:#f0f4ff}@media (prefers-color-scheme: dark){.history-table-wrap{background:#1a1a2e}.history-th{color:#aaa;border-bottom-color:#333}.history-sort-btn{color:#aaa}.history-sort-btn:hover,.history-sort-icon{color:#fff}.history-row{border-bottom-color:#2a2a3e}.history-row:hover{background:#2a2a3e}.history-row--own{background:#1e1e3a}.history-row--own:hover{background:#2a2a4e}.history-cell--name{color:#fff}.history-cell--app{color:#aaa}.history-cell--date{color:#888}.history-icon-placeholder{background:#2a2a3e}.history-user-tag{background:#2a2a3e;color:#aaa}.history-user-tag--own{background:#1e3a5f;color:#7dd3fc}}.actors-message{text-align:center;color:#666;padding:1.5rem}.actors-error{color:#c00}.actors-table-wrap{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.actors-table{width:100%;border-collapse:collapse}.actors-th{text-align:left;padding:.75rem 1rem;font-size:.8rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid #e8e8e8}.actors-th--sortable{padding:0}.actors-sort-btn{display:inline-flex;align-items:center;gap:.25rem;width:100%;padding:.75rem 1rem;text-align:left;font-size:.8rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.02em;background:none;border:none;cursor:pointer}.actors-sort-btn:hover{color:#333}.actors-sort-icon{font-size:.9rem;color:#333}.actors-th--name{min-width:12rem}.actors-th--shows{min-width:16rem}.actors-row{border-bottom:1px solid #eee}.actors-row:last-child{border-bottom:none}.actors-cell{padding:.6rem 1rem;font-size:.95rem;vertical-align:top}.actors-cell--name{font-weight:500;display:flex;align-items:center;gap:.5rem}.actors-cell-photo{width:2rem;height:2rem;border-radius:50%;object-fit:cover;flex-shrink:0}.actors-cell-photo-placeholder{width:2rem;height:2rem;border-radius:50%;background:#e0e0e0;flex-shrink:0;display:inline-block}.actors-cell-name{min-width:0}.actors-cell--shows{color:#555}.family-list-container{display:flex;flex-direction:column;gap:1rem}.family-list-tabs{display:flex;gap:.5rem}.family-list-tab{padding:.4rem .75rem;font-size:.9rem;font-weight:500;background:#e8e8e8;color:#333;border:none;border-radius:4px;cursor:pointer}.family-list-tab:hover{background:#ddd}.family-list-tab--active{background:#333;color:#fff}.family-list-tab--active:hover{background:#555}.family-list-message{text-align:center;color:#666;padding:1.5rem}.family-list-error{color:#c00}.family-list-empty{text-align:center;padding:2rem}.family-list-hint{color:#888;font-size:.9rem;margin-top:.5rem}.family-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.family-show-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;cursor:pointer;position:relative}.family-show-card:hover{box-shadow:0 2px 8px #00000026}.family-show-card--own{border:2px solid #6366f1}.family-show-card-image-wrap{position:relative;width:100%}.family-show-card-image{width:100%;aspect-ratio:2/3;object-fit:cover;display:block}.family-show-card-placeholder{width:100%;aspect-ratio:2/3;background:#e0e0e0}.family-show-card-type-badge{position:absolute;bottom:.35rem;right:.35rem;display:flex;align-items:center;justify-content:center}.family-show-card-body{padding:.75rem 1rem;flex:1;display:flex;flex-direction:column}.family-show-card-name{margin:0 0 .25rem;font-size:1rem;font-weight:600}.family-show-card-channel{margin:0 0 .25rem;font-size:.875rem;color:#666;display:flex;align-items:center;min-height:1.5rem}.family-show-card-channel-logo{height:1.5rem;width:auto;max-width:6rem;object-fit:contain;object-position:left;display:block}.family-show-card-channel-placeholder{display:inline-flex;align-items:center;justify-content:center;height:1.5rem;width:1.5rem;color:#bbb}.family-show-card-channel-placeholder svg{width:100%;height:100%}.family-show-card-owner{margin:0 0 .25rem;font-size:.8rem;color:#6366f1;font-weight:500}.family-show-card-date{margin:0 0 .5rem;font-size:.75rem;color:#888}.family-show-card-finished-label{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;margin-top:auto;align-self:flex-end;-webkit-user-select:none;user-select:none}.family-show-card-finished-checkbox{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.family-show-card-finished-box{display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;border:2px solid #888;border-radius:3px;background:#fff;flex-shrink:0}.family-show-card-finished-label:hover .family-show-card-finished-box{border-color:#666}@media (prefers-color-scheme: dark){.family-list-tab{background:#2a2a3e;color:#ccc}.family-list-tab:hover{background:#3a3a4e}.family-list-tab--active{background:#6366f1;color:#fff}.family-list-tab--active:hover{background:#4f46e5}.family-list-message{color:#aaa}.family-list-hint{color:#777}.family-show-card{background:#1a1a2e}.family-show-card-placeholder{background:#2a2a3e}.family-show-card-name{color:#fff}.family-show-card-channel{color:#aaa}.family-show-card-owner{color:#818cf8}.family-show-card-date{color:#777}.family-show-card-finished-box{background:#2a2a3e;border-color:#666}}.edit-show-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.edit-show-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0003;max-width:400px;width:100%;max-height:90vh;overflow-y:auto;padding:1.5rem}.edit-show-title{margin:0 0 .25rem;font-size:1.25rem;font-weight:600}.edit-show-name{margin:0 0 1rem;font-size:.95rem;color:#666}.edit-show-form{display:flex;flex-direction:column;gap:0}.edit-show-fieldset{margin:0 0 1rem;padding:0;border:none}.edit-show-legend{margin-bottom:.5rem;font-size:.875rem;font-weight:500}.edit-show-radio-label{display:inline-flex;align-items:center;gap:.5rem;margin-right:1rem;font-size:.95rem;cursor:pointer}.edit-show-radio{width:1rem;height:1rem;cursor:pointer}.edit-show-radio:disabled{cursor:not-allowed}.edit-show-label{display:block;margin-bottom:.75rem;font-size:.875rem;font-weight:500}.edit-show-input{display:block;width:100%;margin-top:.25rem;padding:.5rem .75rem;font-size:1rem;border:1px solid #ccc;border-radius:4px}.edit-show-input:focus{outline:none;border-color:#333}.edit-show-input:disabled{opacity:.7;cursor:not-allowed}.edit-show-error{margin:0 0 .75rem;font-size:.875rem;color:#c00}.edit-show-actions{display:flex;gap:.75rem;margin-top:1rem}.edit-show-cancel{padding:.5rem 1rem;font-size:1rem;font-weight:500;background:#e8e8e8;color:#333;border:none;border-radius:4px;cursor:pointer}.edit-show-cancel:hover:not(:disabled){background:#ddd}.edit-show-cancel:disabled{opacity:.7;cursor:not-allowed}.edit-show-save{padding:.5rem 1rem;font-size:1rem;font-weight:500;background:#333;color:#fff;border:none;border-radius:4px;cursor:pointer}.edit-show-save:hover:not(:disabled){background:#555}.edit-show-save:disabled{opacity:.7;cursor:not-allowed}.edit-show-delete-wrap{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #eee}.edit-show-delete{padding:.5rem 1rem;font-size:.9rem;font-weight:500;background:transparent;color:#b91c1c;border:1px solid #b91c1c;border-radius:4px;cursor:pointer}.edit-show-delete:hover:not(:disabled){background:#fef2f2}.edit-show-delete:disabled{opacity:.7;cursor:not-allowed;color:#999;border-color:#ccc}.show-detail-message{padding:1.5rem;text-align:center;color:#666}.show-detail-error{color:#b91c1c}.show-detail-header{margin-bottom:1rem}.show-detail-back{padding:.4rem .75rem;font-size:.95rem;font-weight:500;background:#e8e8e8;color:#333;border:none;border-radius:4px;cursor:pointer}.show-detail-back:hover{background:#ddd}.show-detail-hero{display:flex;gap:1.5rem;margin-bottom:2rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 1px 4px #00000014}.show-detail-poster-wrap{position:relative;flex-shrink:0;width:180px}.show-detail-poster{width:100%;height:auto;display:block;border-radius:6px}.show-detail-poster-placeholder{width:100%;aspect-ratio:2/3;background:#e0e0e0;border-radius:6px}.show-detail-type-badge{position:absolute;bottom:.5rem;right:.5rem}.show-detail-hero-body{flex:1;min-width:0}.show-detail-title{margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.show-detail-meta{margin-bottom:.75rem}.show-detail-channel-logo{height:28px;width:auto;max-width:120px;object-fit:contain}.show-detail-channel-name{font-size:.95rem;color:#666}.show-detail-dates{margin:0 0 1rem;display:flex;flex-wrap:wrap;gap:0 1.5rem}.show-detail-date-row{margin:0}.show-detail-date-row dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.02em;color:#666;margin-bottom:.15rem}.show-detail-date-row dd{margin:0;font-size:.95rem}.show-detail-edit-btn{padding:.5rem 1rem;font-size:.95rem;font-weight:500;background:#333;color:#fff;border:none;border-radius:4px;cursor:pointer}.show-detail-edit-btn:hover{background:#555}.show-detail-section{margin-bottom:1.5rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 1px 4px #00000014}.show-detail-section-title{margin:0 0 .75rem;font-size:1.1rem;font-weight:600}.show-detail-summary{margin:0 0 .75rem;font-size:.95rem;line-height:1.5;color:#444}.show-detail-dl{margin:0;display:grid;gap:.25rem 1rem}.show-detail-dl-row{margin:0;display:flex;gap:.5rem}.show-detail-dl-row dt{margin:0;font-size:.875rem;color:#666;min-width:5rem}.show-detail-dl-row dd{margin:0;font-size:.875rem}.show-detail-cast{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.show-detail-cast-item{display:flex;align-items:center;gap:.5rem;font-size:.95rem;line-height:1.4}.show-detail-cast-photo{width:2.25rem;height:2.25rem;border-radius:50%;object-fit:cover;flex-shrink:0}.show-detail-cast-photo-placeholder{width:2.25rem;height:2.25rem;border-radius:50%;background:#e0e0e0;flex-shrink:0}.show-detail-cast-text{min-width:0}.show-detail-cast-actor{font-weight:500}.show-detail-cast-character{color:#666}.show-detail-empty{margin:0;font-size:.95rem;color:#666}.settings-page{max-width:560px}.settings-header{margin-bottom:1rem}.settings-back{padding:.4rem .75rem;font-size:.95rem;font-weight:500;background:#e8e8e8;color:#333;border:none;border-radius:4px;cursor:pointer}.settings-back:hover{background:#ddd}.settings-title{margin:0 0 1.25rem;font-size:1.35rem;font-weight:700}.settings-section{padding:1.25rem;background:#fff;border-radius:8px;box-shadow:0 1px 4px #00000014}.settings-section-title{margin:0 0 .5rem;font-size:1.05rem;font-weight:600}.settings-description{margin:0 0 1rem;font-size:.9rem;line-height:1.5;color:#555}.settings-error-text{margin:0 0 .75rem;font-size:.9rem;color:#b91c1c}.settings-rebuild-btn{padding:.5rem 1rem;font-size:.95rem;font-weight:500;background:#333;color:#fff;border:none;border-radius:4px;cursor:pointer}.settings-rebuild-btn:hover:not(:disabled){background:#555}.settings-rebuild-btn:disabled{opacity:.7;cursor:not-allowed}.settings-log{margin:1rem 0 0;padding:.75rem;font-size:.8rem;line-height:1.4;background:#f5f5f5;border-radius:4px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.settings-message{padding:1rem 0;font-size:.95rem;color:#666}.settings-error{color:#b91c1c}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-card{background:#fff;border-radius:1rem;padding:2.5rem 2rem;max-width:400px;width:100%;text-align:center;box-shadow:0 10px 40px #0003}.auth-title{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;color:#1a1a2e}.auth-subtitle{margin:0 0 2rem;color:#666;font-size:1rem}.auth-buttons{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.auth-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.875rem 1.25rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:opacity .15s,transform .1s}.auth-btn:hover:not(:disabled){opacity:.9}.auth-btn:active:not(:disabled){transform:scale(.98)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn--google{background:#fff;color:#333;border:1px solid #ddd}.auth-btn--google:hover:not(:disabled){background:#f8f8f8}.auth-provider-icon{width:1.25rem;height:1.25rem;flex-shrink:0}.auth-error{margin:1rem 0;padding:.75rem 1rem;background:#fef2f2;color:#dc2626;border-radius:.375rem;font-size:.875rem}.auth-note{margin:0;color:#888;font-size:.8125rem}.auth-btn--email{background:#6366f1;color:#fff}.auth-btn--email:hover:not(:disabled){background:#4f46e5}.auth-email-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.auth-input{padding:.875rem 1rem;border:1px solid #ddd;border-radius:.5rem;font-size:1rem;outline:none;transition:border-color .15s}.auth-input:focus{border-color:#6366f1}.auth-input:disabled{opacity:.6;cursor:not-allowed}.auth-link{display:block;margin:.5rem 0;padding:0;background:none;border:none;color:#6366f1;font-size:.875rem;cursor:pointer;text-decoration:underline}.auth-link:hover:not(:disabled){color:#4f46e5}.auth-link:disabled{opacity:.6;cursor:not-allowed}.auth-message{margin:1rem 0;padding:.75rem 1rem;background:#f0fdf4;color:#16a34a;border-radius:.375rem;font-size:.875rem}@media (prefers-color-scheme: dark){.auth-card{background:#1a1a2e}.auth-title{color:#fff}.auth-subtitle{color:#aaa}.auth-btn--google{background:#2a2a3e;color:#fff;border-color:#444}.auth-btn--google:hover:not(:disabled){background:#3a3a4e}.auth-error{background:#2a1a1a;color:#f87171}.auth-note{color:#777}.auth-input{background:#2a2a3e;border-color:#444;color:#fff}.auth-input:focus{border-color:#818cf8}.auth-link{color:#818cf8}.auth-link:hover:not(:disabled){color:#a5b4fc}.auth-message{background:#1a2a1a;color:#4ade80}}.profile-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.profile-modal{background:#fff;border-radius:.75rem;width:100%;max-width:400px;max-height:90vh;overflow:auto;box-shadow:0 10px 40px #0003}.profile-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #eee}.profile-modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#1a1a2e}.profile-modal-close{width:2rem;height:2rem;padding:0;font-size:1.5rem;line-height:1;background:transparent;color:#666;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center}.profile-modal-close:hover{background:#f0f0f0;color:#333}.profile-modal-content{padding:1.5rem}.profile-avatar-section{display:flex;justify-content:center;margin-bottom:1.5rem}.profile-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid #e8e8e8}.profile-avatar-placeholder{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center}.profile-avatar-icon{width:40px;height:40px;color:#fff}.profile-info{display:flex;flex-direction:column;gap:.875rem}.profile-info-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.profile-info-label{font-size:.875rem;color:#666;flex-shrink:0}.profile-info-value{font-size:.875rem;color:#1a1a2e;text-align:right;word-break:break-word}.profile-provider{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:#f0f0f0;border-radius:4px;font-weight:500}.profile-verified{color:#16a34a;font-weight:500}.profile-modal-footer{padding:1rem 1.5rem 1.5rem;display:flex;justify-content:center}.profile-signout-btn{padding:.625rem 1.5rem;font-size:.9375rem;font-weight:500;background:#ef4444;color:#fff;border:none;border-radius:.5rem;cursor:pointer;transition:background .15s}.profile-signout-btn:hover{background:#dc2626}.profile-family-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #eee}.profile-family-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1a1a2e}.profile-family-loading{color:#666;font-size:.875rem}.profile-family-info{display:flex;flex-direction:column;gap:.75rem}.profile-role{background:#e0f2fe;color:#0369a1;padding:.125rem .5rem;border-radius:4px;font-weight:500}.profile-invite-code{margin-top:.5rem}.profile-invite-code-row{display:flex;align-items:center;gap:.5rem;margin-top:.375rem}.profile-code{font-family:monospace;font-size:1.125rem;letter-spacing:.1em;background:#f5f5f5;padding:.5rem .75rem;border-radius:4px;color:#1a1a2e}.profile-copy-btn{padding:.5rem;background:transparent;border:1px solid #ccc;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#666;font-size:.75rem;min-width:4rem}.profile-copy-btn:hover{background:#f0f0f0;color:#333}.profile-copy-icon{width:1rem;height:1rem}.profile-leave-btn{margin-top:1rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;background:transparent;color:#dc2626;border:1px solid #dc2626;border-radius:.375rem;cursor:pointer}.profile-leave-btn:hover:not(:disabled){background:#fef2f2}.profile-leave-btn:disabled{opacity:.6;cursor:not-allowed}.profile-family-actions{display:flex;flex-direction:column;gap:1rem}.profile-create-family-btn{padding:.625rem 1.25rem;font-size:.9375rem;font-weight:500;background:#6366f1;color:#fff;border:none;border-radius:.5rem;cursor:pointer}.profile-create-family-btn:hover:not(:disabled){background:#4f46e5}.profile-create-family-btn:disabled{opacity:.6;cursor:not-allowed}.profile-join-family{display:flex;flex-direction:column;gap:.5rem}.profile-join-label{font-size:.875rem;color:#666}.profile-join-row{display:flex;gap:.5rem}.profile-join-input{flex:1;padding:.5rem .75rem;font-size:.9375rem;font-family:monospace;letter-spacing:.05em;text-transform:uppercase;border:1px solid #ccc;border-radius:.375rem}.profile-join-input:focus{outline:none;border-color:#6366f1}.profile-join-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:500;background:#22c55e;color:#fff;border:none;border-radius:.375rem;cursor:pointer}.profile-join-btn:hover:not(:disabled){background:#16a34a}.profile-join-btn:disabled{opacity:.6;cursor:not-allowed}.profile-join-error{margin:0;color:#dc2626;font-size:.8125rem}@media (prefers-color-scheme: dark){.profile-modal{background:#1a1a2e}.profile-modal-header{border-bottom-color:#333}.profile-modal-title{color:#fff}.profile-modal-close{color:#aaa}.profile-modal-close:hover{background:#2a2a3e;color:#fff}.profile-avatar{border-color:#444}.profile-info-label{color:#aaa}.profile-info-value{color:#fff}.profile-provider{background:#2a2a3e;color:#fff}.profile-verified{color:#4ade80}.profile-family-section{border-top-color:#333}.profile-family-title{color:#fff}.profile-family-loading{color:#aaa}.profile-role{background:#1e3a5f;color:#7dd3fc}.profile-code{background:#2a2a3e;color:#fff}.profile-copy-btn{border-color:#555;color:#aaa}.profile-copy-btn:hover{background:#3a3a4e;color:#fff}.profile-join-label{color:#aaa}.profile-join-input{background:#2a2a3e;border-color:#444;color:#fff}.profile-join-input:focus{border-color:#818cf8}.profile-join-error{color:#f87171}.profile-leave-btn{color:#f87171;border-color:#f87171}.profile-leave-btn:hover:not(:disabled){background:#2a1a1a}}.app{max-width:900px;margin:0 auto;padding:1.5rem}.app-header{margin-bottom:1.5rem}.app-header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-header-top h1{margin:0;font-size:1.75rem;font-weight:700}.app-tagline{margin:.25rem 0 .75rem;font-size:.95rem;color:#666}.app-header-actions{display:flex;gap:.5rem}.app-tab{padding:.4rem .75rem;font-size:.9rem;font-weight:500;background:#e8e8e8;color:#333;border:none;border-radius:4px;cursor:pointer}.app-tab:hover{background:#ddd}.app-tab--active{background:#333;color:#fff}.app-tab--active:hover{background:#555}.app-add-btn{width:2.5rem;height:2.5rem;padding:0;font-size:1.75rem;line-height:1;font-weight:300;background:#22c55e;color:#fff;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center}.app-add-btn:hover{background:#16a34a}.app-icon-btn{width:2.25rem;height:2.25rem;padding:0;background:transparent;color:#555;border:1px solid #ccc;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}.app-icon-btn:hover{background:#eee;color:#333;border-color:#999}.app-icon{width:1.125rem;height:1.125rem}.app-main{display:flex;flex-direction:column;gap:2rem}.app-list{min-height:120px}.app--loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#666}.app-header-user{display:flex;align-items:center;gap:.5rem}:root{font-family:system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#1a1a1a;background-color:#e3f2fd}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}
