:root{--tjt-fav-accent:#ff6600;--tjt-fav-accent-soft:rgba(255, 102, 0, 0.08);--tjt-fav-accent-hover:#e55c00;--tjt-fav-text:#000;--tjt-fav-text-muted:#555;--tjt-fav-text-subtle:#777;--tjt-fav-link:#005ba2;--tjt-fav-link-hover:#003e6b;--tjt-fav-bg:#fff;--tjt-fav-surface-alt:#f7f7f7;--tjt-fav-surface-hover:#f0f0f0;--tjt-fav-border:#e5e5e5;--tjt-fav-border-strong:#ccc;--tjt-fav-radius:8px;--tjt-fav-radius-sm:4px;--tjt-fav-radius-pill:999px;--tjt-fav-icon-size:16px;--tjt-fav-font-body:inherit;--tjt-fav-font-heading:inherit;--tjt-fav-pill-width:auto;--tjt-fav-pill-height:38px;--tjt-fav-plus-width:36px;--tjt-fav-plus-height:36px;--tjt-fav-wrap-gap:4px;--tjt-fav-plus-color:#555}.tjt-fav-wrap{display:inline-flex;align-items:center;gap:var(--tjt-fav-wrap-gap);position:relative;font-family:var(--tjt-fav-font-body)}.tjt-fav-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid var(--tjt-fav-border-strong);background:#fff;color:var(--tjt-fav-text);border-radius:var(--tjt-fav-radius-pill);font-size:14px;font-weight:500;cursor:pointer;transition:background 0.12s ease,border-color 0.12s ease,color 0.12s ease;font-family:inherit;line-height:1;width:var(--tjt-fav-pill-width);height:var(--tjt-fav-pill-height);box-sizing:border-box}.tjt-fav-btn:hover{background:var(--tjt-fav-accent-soft);border-color:var(--tjt-fav-accent);color:var(--tjt-fav-accent)}.tjt-fav-btn.is-saved{background:var(--tjt-fav-accent);border-color:var(--tjt-fav-accent);color:#fff}.tjt-fav-btn.is-saved:hover{background:var(--tjt-fav-accent-hover);border-color:var(--tjt-fav-accent-hover)}.tjt-fav-btn.is-saved svg{color:#fff}.tjt-fav-btn.is-loading{pointer-events:none;opacity:.85}.tjt-fav-btn.is-loading .tjt-fav-icon{animation:tjt-fav-pulse 1s ease-in-out infinite}@keyframes tjt-fav-pulse{0%,100%{opacity:.4}50%{opacity:1}}.tjt-fav-btn.is-disabled{opacity:.5;cursor:not-allowed}.tjt-fav-btn.is-disabled:hover{background:#fff;border-color:var(--tjt-fav-border-strong);color:var(--tjt-fav-text)}.tjt-fav-btn.is-icon-only{width:var(--tjt-fav-pill-height);height:var(--tjt-fav-pill-height);padding:0;justify-content:center}.tjt-fav-btn.is-icon-only.is-saved{background:#fff;border-color:var(--tjt-fav-border-strong);color:var(--tjt-fav-accent)}.tjt-fav-btn.is-icon-only.is-saved:hover{background:var(--tjt-fav-accent-soft);border-color:var(--tjt-fav-accent);color:var(--tjt-fav-accent)}.tjt-fav-btn.is-icon-only.is-saved svg,.tjt-fav-btn.is-icon-only.is-saved svg *{fill:currentColor!important;stroke:none!important}.tjt-fav-icon{display:inline-flex;line-height:0}.tjt-fav-btn-label{font-family:inherit}.tjt-fav-list-trigger{width:var(--tjt-fav-plus-width);height:var(--tjt-fav-plus-height);border:1px solid var(--tjt-fav-border);background:#fff;border-radius:var(--tjt-fav-radius-pill);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--tjt-fav-plus-color);transition:background 0.12s,color 0.12s;box-sizing:border-box;padding:0}.tjt-fav-list-trigger:hover{background:var(--tjt-fav-surface-hover);color:var(--tjt-fav-plus-color);filter:brightness(.85)}.tjt-fav-list-trigger.is-open{background:var(--tjt-fav-text);color:#fff;border-color:var(--tjt-fav-text);filter:none}.tjt-fav-popover{position:absolute;top:calc(100% + 8px);left:0;width:280px;background:#fff;border:1px solid var(--tjt-fav-border);border-radius:12px;box-shadow:0 10px 30px rgb(0 0 0 / .12),0 2px 6px rgb(0 0 0 / .04);z-index:1000;overflow:hidden;display:none}.tjt-fav-popover.is-open{display:block}.tjt-fav-popover-head{padding:10px 8px 10px 16px;border-bottom:1px solid var(--tjt-fav-border);font-family:var(--tjt-fav-font-heading);font-size:13px;font-weight:600;color:var(--tjt-fav-text-muted);display:flex;align-items:center;justify-content:space-between;gap:8px}.tjt-fav-popover-title{line-height:1.4}.tjt-fav-popover-close{background:none;border:none;cursor:pointer;color:var(--tjt-fav-text-muted);width:26px;height:26px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;transition:background 0.12s,color 0.12s;flex-shrink:0;padding:0}.tjt-fav-popover-close:hover{background:var(--tjt-fav-surface-hover);color:var(--tjt-fav-text)}.tjt-fav-popover-list{max-height:240px;overflow-y:auto;padding:6px 0}.tjt-fav-popover-row{display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;font-size:14px;user-select:none;font-family:var(--tjt-fav-font-body)}.tjt-fav-popover-row:hover{background:var(--tjt-fav-surface-hover)}.tjt-fav-checkbox{width:18px;height:18px;border:1.5px solid var(--tjt-fav-border-strong);border-radius:4px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#fff0;transition:background 0.12s,border-color 0.12s,color 0.12s}.tjt-fav-popover-row.is-checked .tjt-fav-checkbox{background:var(--tjt-fav-text);border-color:var(--tjt-fav-text);color:#fff}.tjt-fav-popover-row-name{flex:1}.tjt-fav-popover-row-count{margin-left:auto;font-size:12px;color:var(--tjt-fav-text-subtle)}.tjt-fav-popover-footer{padding:6px 0;border-top:1px solid var(--tjt-fav-border);background:var(--tjt-fav-surface-alt)}.tjt-fav-popover-create{display:flex;align-items:center;gap:10px;padding:10px 16px;color:var(--tjt-fav-link);font-weight:600;font-size:14px;cursor:pointer;font-family:var(--tjt-fav-font-heading);border:none;background:#fff0;width:100%;text-align:left}.tjt-fav-popover-create:hover{background:var(--tjt-fav-accent-soft);color:var(--tjt-fav-accent)}.tjt-fav-popover-newform{display:none;padding:14px 16px}.tjt-fav-popover-newform.is-open{display:block}.tjt-fav-popover-newform input{width:100%;padding:9px 12px;border:1px solid var(--tjt-fav-border-strong);border-radius:6px;font-size:14px;font-family:inherit;outline:none;box-sizing:border-box}.tjt-fav-popover-newform input:focus{border-color:var(--tjt-fav-accent)}.tjt-fav-newform-actions{display:flex;gap:8px;margin-top:12px;justify-content:flex-end}.tjt-fav-newform-actions .cancel{padding:8px 14px;border:1px solid var(--tjt-fav-border);background:#fff;border-radius:6px;font-size:13px;cursor:pointer;color:var(--tjt-fav-text-muted);font-family:var(--tjt-fav-font-heading)}.tjt-fav-newform-actions .submit{padding:8px 14px;border:none;background:var(--tjt-fav-text);color:#fff;border-radius:6px;font-size:13px;cursor:pointer;font-weight:600;font-family:var(--tjt-fav-font-heading)}.tjt-fav-newform-actions .submit:disabled{opacity:.5;cursor:not-allowed}.tjt-fav-newform-quota{margin-top:12px;font-size:11px;color:var(--tjt-fav-text-subtle);font-family:var(--tjt-fav-font-heading)}.tjt-fav-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);background:var(--tjt-fav-text);color:#fff;padding:12px 20px;border-radius:var(--tjt-fav-radius);font-family:var(--tjt-fav-font-heading);font-size:14px;font-weight:500;box-shadow:0 10px 30px rgb(0 0 0 / .2);transition:transform 0.3s ease;z-index:10000;pointer-events:none}.tjt-fav-toast.is-visible{transform:translateX(-50%) translateY(0)}.tjt-fav-toast.is-error{background:#b91c1c}.tjt-fav-toast.is-success{background:#047857}.tjt-fav-card{background:#fff;border:1px solid var(--tjt-fav-border);border-radius:var(--tjt-fav-radius);overflow:hidden;font-family:var(--tjt-fav-font-body)}.tjt-fav-card-header{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid var(--tjt-fav-border)}.tjt-fav-card-title{font-family:var(--tjt-fav-font-heading);font-size:20px;font-weight:600;margin:0;display:flex;align-items:center;gap:10px}.tjt-fav-count-pill{background:var(--tjt-fav-surface-alt);color:var(--tjt-fav-text-muted);font-size:12px;font-weight:600;padding:2px 9px;border-radius:var(--tjt-fav-radius-pill)}.tjt-fav-newlist-btn{background:var(--tjt-fav-text);color:#fff;border:none;padding:11px 20px;border-radius:var(--tjt-fav-radius-pill);font-family:var(--tjt-fav-font-heading);font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.tjt-fav-newlist-btn:hover{background:var(--tjt-fav-accent)}.tjt-fav-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 26px;flex-wrap:wrap}.tjt-fav-tabs{display:inline-flex;background:var(--tjt-fav-surface-alt);border-radius:var(--tjt-fav-radius-sm);padding:4px;overflow-x:auto;max-width:100%}.tjt-fav-tab{padding:8px 16px;border-radius:4px;font-family:var(--tjt-fav-font-heading);font-size:14px;font-weight:500;color:var(--tjt-fav-text-muted);cursor:pointer;white-space:nowrap;border:none;background:#fff0;display:inline-flex;align-items:center;gap:6px;transition:background 0.12s,color 0.12s}.tjt-fav-tab.is-active{background:#fff;color:var(--tjt-fav-text);box-shadow:0 1px 2px rgb(0 0 0 / .08),0 0 0 1px var(--tjt-fav-border);font-weight:600}.tjt-fav-tab:hover:not(.is-active){color:var(--tjt-fav-text)}.tjt-fav-tab-count{background:var(--tjt-fav-surface-alt);color:var(--tjt-fav-text-muted);font-size:11px;font-weight:600;padding:2px 7px;border-radius:var(--tjt-fav-radius-pill)}.tjt-fav-tab.is-active .tjt-fav-tab-count{background:var(--tjt-fav-surface-hover)}.tjt-fav-tab--new{color:var(--tjt-fav-accent);font-weight:600}.tjt-fav-toolbar-right{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.tjt-fav-icon-btn{width:36px;height:36px;border:1px solid var(--tjt-fav-border);background:#fff;border-radius:var(--tjt-fav-radius-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--tjt-fav-text-muted)}.tjt-fav-icon-btn:hover{background:var(--tjt-fav-surface-hover);color:var(--tjt-fav-text)}.tjt-fav-search{position:relative;display:inline-flex;align-items:center}.tjt-fav-search-input{height:36px;border:1px solid var(--tjt-fav-border);background:#fff;border-radius:var(--tjt-fav-radius-sm);padding:0 14px 0 36px;font-size:14px;width:280px;color:var(--tjt-fav-text);font-family:inherit}.tjt-fav-search-input:focus{outline:2px solid var(--tjt-fav-accent);outline-offset:-1px;border-color:var(--tjt-fav-accent)}.tjt-fav-search svg{position:absolute;left:12px;color:var(--tjt-fav-text-subtle)}.tjt-fav-fa-filter,.tjt-fav-sort-select{height:36px;border:1px solid var(--tjt-fav-border);background:#fff;border-radius:var(--tjt-fav-radius-sm);padding:0 32px 0 12px;font-size:14px;color:var(--tjt-fav-text);font-family:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23777' stroke-width='2'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 10px center;line-height:1}.tjt-fav-fa-filter:focus,.tjt-fav-sort-select:focus{outline:2px solid var(--tjt-fav-accent);outline-offset:-1px;border-color:var(--tjt-fav-accent)}.tjt-fav-reset-btn{height:36px;border:1px solid var(--tjt-fav-border);background:#fff;border-radius:var(--tjt-fav-radius-sm);padding:0 12px;font-size:13px;color:var(--tjt-fav-text-muted);font-family:var(--tjt-fav-font-heading);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background 0.12s,color 0.12s,border-color 0.12s}.tjt-fav-reset-btn:hover{background:var(--tjt-fav-accent-soft);border-color:var(--tjt-fav-accent);color:var(--tjt-fav-accent)}.tjt-fav-reset-btn[hidden]{display:none}.tjt-fav-list-actions{display:inline-flex;align-items:center;gap:2px}.tjt-fav-list-action-btn{width:30px;height:30px;border:none;background:#fff0;border-radius:6px;cursor:pointer;color:var(--tjt-fav-text-muted);display:inline-flex;align-items:center;justify-content:center}.tjt-fav-list-action-btn:hover{background:var(--tjt-fav-surface-hover);color:var(--tjt-fav-text)}.tjt-fav-list-action-btn.delete:hover{color:#b91c1c}.tjt-fav-table{width:100%;border-collapse:collapse;font-size:14px;font-family:var(--tjt-fav-font-body)}.tjt-fav-table thead th{text-align:left;background:var(--tjt-fav-surface-alt);color:var(--tjt-fav-text-muted);font-family:var(--tjt-fav-font-heading);font-weight:500;font-size:13px;padding:12px 26px;border-top:1px solid var(--tjt-fav-border);border-bottom:1px solid var(--tjt-fav-border)}.tjt-fav-table tbody td{padding:18px 26px;border-bottom:1px solid var(--tjt-fav-border);vertical-align:top}.tjt-fav-row{transition:background 0.12s,opacity 0.3s,transform 0.3s}.tjt-fav-row:hover{background:var(--tjt-fav-surface-alt)}.tjt-fav-row.is-removing{opacity:0;transform:translateX(-20px);pointer-events:none}.tjt-fav-article-title{color:var(--tjt-fav-link);font-weight:600;text-decoration:none;font-size:15px;display:inline-flex;align-items:center;gap:8px;font-family:var(--tjt-fav-font-heading)}.tjt-fav-article-title:hover{color:var(--tjt-fav-link-hover);text-decoration:underline}.tjt-fav-article-excerpt{color:var(--tjt-fav-text-muted);font-size:13px;margin-top:4px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.tjt-fav-lists-tag{display:inline-flex;align-items:center;gap:4px;background:var(--tjt-fav-surface-alt);color:var(--tjt-fav-text-muted);font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--tjt-fav-radius-pill);margin-left:6px;font-family:var(--tjt-fav-font-heading)}.tjt-fav-function-pill{display:inline-flex;align-items:center;gap:6px;background:var(--tjt-fav-surface-alt);color:var(--tjt-fav-text);font-size:12px;font-weight:500;padding:4px 10px;border-radius:var(--tjt-fav-radius-pill);font-family:var(--tjt-fav-font-heading)}.tjt-fav-dot{width:6px;height:6px;border-radius:50%;background:var(--tjt-fav-accent)}.tjt-fav-cell-date{color:var(--tjt-fav-text-subtle);font-size:13px;font-family:var(--tjt-fav-font-heading)}.tjt-fav-row-actions{display:inline-flex;gap:4px;opacity:0;transition:opacity 0.12s}.tjt-fav-row:hover .tjt-fav-row-actions{opacity:1}.tjt-fav-row-action-btn{width:32px;height:32px;border:none;background:#fff0;border-radius:6px;cursor:pointer;color:var(--tjt-fav-text-muted);display:inline-flex;align-items:center;justify-content:center}.tjt-fav-row-action-btn:hover{background:var(--tjt-fav-surface-hover);color:var(--tjt-fav-text)}.tjt-fav-row-action-btn.delete:hover{color:#b91c1c}.tjt-fav-empty{padding:80px 30px;text-align:center;color:var(--tjt-fav-text-muted);font-family:var(--tjt-fav-font-heading);display:none}.tjt-fav-empty.is-visible{display:block}.tjt-fav-empty svg{color:var(--tjt-fav-text-subtle);margin-bottom:16px}.tjt-fav-empty-title{font-size:16px;font-weight:600;color:var(--tjt-fav-text);margin-bottom:4px}.tjt-fav-pagination{display:flex;align-items:center;justify-content:space-between;padding:18px 26px;color:var(--tjt-fav-text-muted);font-size:14px;font-family:var(--tjt-fav-font-heading)}.tjt-fav-pager{display:inline-flex;align-items:center;gap:6px}.tjt-fav-pager-btn{min-width:32px;height:32px;border:1px solid var(--tjt-fav-border);background:#fff;border-radius:6px;color:var(--tjt-fav-text);font-size:13px;cursor:pointer;padding:0 10px;font-family:inherit}.tjt-fav-pager-btn.is-active{background:var(--tjt-fav-text);color:#fff;border-color:var(--tjt-fav-text)}.tjt-fav-pager-btn:disabled{color:var(--tjt-fav-text-subtle);cursor:not-allowed}.tjt-fav-modal-backdrop{position:fixed;inset:0;background:rgb(0 0 0 / .5);display:none;align-items:center;justify-content:center;z-index:9999;opacity:0;transition:opacity 0.18s ease}.tjt-fav-modal-backdrop.is-open{display:flex;opacity:1}.tjt-fav-modal{background:#fff;border-radius:var(--tjt-fav-radius);width:480px;max-width:calc(100vw - 32px);box-shadow:0 20px 60px rgb(0 0 0 / .25);overflow:hidden;transform:translateY(8px) scale(.98);transition:transform 0.18s ease;font-family:var(--tjt-fav-font-body)}.tjt-fav-modal-backdrop.is-open .tjt-fav-modal{transform:translateY(0) scale(1)}.tjt-fav-modal-head{padding:22px 26px 4px;display:flex;align-items:center;justify-content:space-between}.tjt-fav-modal-head h3{font-family:var(--tjt-fav-font-heading);font-size:20px;font-weight:600;margin:0}.tjt-fav-modal-close{background:none;border:none;cursor:pointer;color:var(--tjt-fav-text-muted);width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.tjt-fav-modal-close:hover{background:var(--tjt-fav-surface-hover);color:var(--tjt-fav-text)}.tjt-fav-modal-body{padding:16px 26px 6px}.tjt-fav-modal-body label{display:block;font-family:var(--tjt-fav-font-heading);font-size:13px;font-weight:500;color:var(--tjt-fav-text-muted);margin-bottom:6px}.tjt-fav-modal-body input{width:100%;padding:11px 14px;border:1px solid var(--tjt-fav-border-strong);border-radius:var(--tjt-fav-radius-sm);font-size:15px;font-family:inherit;outline:none;transition:border-color 0.12s;box-sizing:border-box}.tjt-fav-modal-body input:focus{border-color:var(--tjt-fav-accent)}.tjt-fav-modal-quota{margin-top:10px;font-size:12px;color:var(--tjt-fav-text-subtle);font-family:var(--tjt-fav-font-heading)}.tjt-fav-modal-error{margin-top:10px;font-size:12px;color:#b91c1c;font-family:var(--tjt-fav-font-heading);display:none}.tjt-fav-modal-error.is-visible{display:block}.tjt-fav-modal-foot{padding:18px 26px 22px;display:flex;justify-content:flex-end;gap:10px}.tjt-fav-modal-foot button{padding:10px 18px;border-radius:var(--tjt-fav-radius-pill);font-family:var(--tjt-fav-font-heading);font-size:14px;font-weight:600;cursor:pointer;border:1px solid #fff0}.tjt-fav-modal-foot .cancel{background:#fff;border-color:var(--tjt-fav-border-strong);color:var(--tjt-fav-text-muted)}.tjt-fav-modal-foot .cancel:hover{background:var(--tjt-fav-surface-hover);color:var(--tjt-fav-text)}.tjt-fav-modal-foot .submit{background:var(--tjt-fav-text);color:#fff}.tjt-fav-modal-foot .submit:hover{background:var(--tjt-fav-accent)}.tjt-fav-modal-foot .submit:disabled{opacity:.4;cursor:not-allowed;background:var(--tjt-fav-text)}@media (prefers-reduced-motion:reduce){.tjt-fav-btn,.tjt-fav-list-trigger,.tjt-fav-popover-row,.tjt-fav-toast{transition:none}.tjt-fav-btn.is-loading .tjt-fav-icon{animation:none}}