/* Taghvimban components: buttons, forms, cards, member pages, dialogs, date picker, toasts.
   Colors come from the --tb-* variables printed by the plugin in <head>. */
:root{--tb-line:color-mix(in srgb,var(--tb-text,#1c1a3a) 9%,transparent);--tb-soft:color-mix(in srgb,var(--tb-primary,#5b4be0) 11%,var(--tb-card-bg,#fff));--tb-shadow:0 1px 2px rgba(28,26,58,.04),0 10px 30px -18px rgba(40,30,120,.25);--tb-r:22px;--tb-font:FazFont,"Yekan Bakh",YekanBakh,Vazirmatn,Tahoma,sans-serif}
.tb-page{display:grid;gap:18px;font-family:var(--tb-font)}
.tb-card{background:var(--tb-card-bg);border:1px solid var(--tb-line);border-radius:var(--tb-r);padding:22px;box-shadow:var(--tb-shadow)}
.tb-card h2{font-size:17px;margin:0 0 10px;display:flex;align-items:center;gap:8px}
.tb-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.tb-card-head h2{margin:0}
.tb-card-head a{font-size:13px;font-weight:700;color:var(--tb-primary);text-decoration:none}
.tb-muted{color:var(--tb-muted)}
.tb-i{flex:none;vertical-align:middle}
.tb-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.tb-cols.is-wide-first{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr)}
.tb-cols.is-form-first{grid-template-columns:minmax(300px,1fr) minmax(0,1.3fr)}
@media (max-width:900px){.tb-cols,.tb-cols.is-wide-first,.tb-cols.is-form-first{grid-template-columns:1fr}}
.tb-narrow{max-width:640px}
.tb-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.tb-page-head h1{margin:0 0 4px;font-size:24px}
.tb-page-head p{margin:0;max-width:640px}
.tb-sec-title{font-size:16px;margin:8px 0 -4px;display:flex;gap:8px;align-items:baseline}
.tb-sec-title small{color:var(--tb-muted);font-weight:500;font-size:13px}
/* buttons */
.tb-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:14px;padding:11px 18px;background:var(--tb-primary);color:#fff;font:inherit;font-weight:700;font-size:14px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:filter .15s,transform .1s,box-shadow .15s;box-shadow:0 8px 18px -10px var(--tb-primary)}
.tb-btn:hover{filter:brightness(1.08)}
.tb-btn:active{transform:translateY(1px)}
.tb-btn.is-sm{padding:8px 13px;font-size:13px;border-radius:11px}
.tb-btn.is-soft{background:var(--tb-soft);color:var(--tb-primary);box-shadow:none}
.tb-btn.is-ghost{background:transparent;color:var(--tb-text);border:1px solid var(--tb-line);box-shadow:none}
.tb-btn.is-ok{background:var(--tb-success);box-shadow:0 8px 18px -10px var(--tb-success)}
.tb-btn.is-busy{opacity:.6;pointer-events:none}
.tb-btn[disabled]{opacity:.55;cursor:default}
.tb-link{background:none;border:0;padding:0;font:inherit;font-size:13px;font-weight:700;color:var(--tb-primary);cursor:pointer}
.tb-link.is-red{color:var(--tb-danger)}
.tb-icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:11px;border:1px solid var(--tb-line);background:var(--tb-card-bg);color:var(--tb-muted);cursor:pointer;flex:none;font:inherit}
.tb-icon-btn:hover{color:var(--tb-primary);border-color:var(--tb-primary)}
:where(.tb-page,.tb-modal,.tb-picker) :focus-visible{outline:2px solid var(--tb-primary);outline-offset:2px}
/* forms */
.tb-form{display:grid;gap:14px}
.tb-form>label,.tb-row>label{display:grid;gap:6px;font-weight:700;font-size:13px}
.tb-form small{font-weight:400}
.tb-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tb-form input[type=text],.tb-form input[type=time],.tb-form input[type=search],.tb-form select,.tb-form textarea,.tb-search-field{font:inherit;font-weight:500;color:var(--tb-text);background:var(--tb-page-bg);border:1px solid var(--tb-line);border-radius:13px;padding:11px 13px;width:100%;min-width:0}
.tb-form input:focus,.tb-form select:focus,.tb-form textarea:focus{outline:0;border-color:var(--tb-primary);box-shadow:0 0 0 4px var(--tb-soft)}
.tb-form input[data-jdate]{cursor:pointer;background-image:linear-gradient(transparent,transparent)}
.tb-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tb-actions.is-col{flex-direction:column;align-items:stretch}
.tb-check{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}
.tb-switch{display:grid!important;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;cursor:pointer}
.tb-switch input{position:absolute;opacity:0;pointer-events:none}
.tb-switch>span{grid-row:span 2;width:46px;height:26px;border-radius:13px;background:var(--tb-line);position:relative;transition:background .2s}
.tb-switch>span::after{content:"";position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:right .2s}
.tb-switch input:checked+span{background:var(--tb-primary)}
.tb-switch input:checked+span::after{right:23px}
.tb-switch input:focus-visible+span{outline:2px solid var(--tb-primary);outline-offset:2px}
.tb-switch small{color:var(--tb-muted)}
.tb-seg{display:flex;background:var(--tb-page-bg);border:1px solid var(--tb-line);border-radius:13px;padding:4px;gap:4px}
.tb-seg label{flex:1;cursor:pointer}
.tb-seg input{position:absolute;opacity:0}
.tb-seg span{display:block;text-align:center;padding:7px;border-radius:10px;font-weight:700;font-size:13px;color:var(--tb-muted)}
.tb-seg input:checked+span{background:var(--tb-card-bg);color:var(--tb-primary);box-shadow:var(--tb-shadow)}
.tb-seg input:focus-visible+span{outline:2px solid var(--tb-primary)}
.tb-file{display:flex;cursor:pointer}
.tb-file input{position:absolute;opacity:0;width:1px}
.tb-file span{flex:1;display:flex;gap:8px;align-items:center;justify-content:center;border:2px dashed var(--tb-line);border-radius:14px;padding:14px;color:var(--tb-primary);font-weight:700}
.tb-file:hover span{border-color:var(--tb-primary)}
.tb-help{color:var(--tb-muted);font-size:13px;margin:0}
/* flash */
.tb-flash{display:flex;align-items:center;gap:9px;padding:13px 16px;border-radius:15px;font-weight:600;margin:0}
.tb-flash.is-success{background:color-mix(in srgb,var(--tb-success) 13%,var(--tb-card-bg));color:var(--tb-success)}
.tb-flash.is-error{background:color-mix(in srgb,var(--tb-danger) 12%,var(--tb-card-bg));color:var(--tb-danger)}
.tb-flash.is-info{background:var(--tb-soft);color:var(--tb-primary)}
/* avatars & badges */
.tb-av{border-radius:50%;object-fit:cover;flex:none;display:inline-grid;place-items:center;vertical-align:middle;font-weight:800;background:var(--tb-soft);color:var(--tb-primary)}
.tb-av[data-s="20"],img.tb-av[width="20"]{width:20px;height:20px;font-size:10px}
.tb-av[data-s="22"],img.tb-av[width="22"]{width:22px;height:22px;font-size:11px}
.tb-av[data-s="24"],img.tb-av[width="24"]{width:24px;height:24px;font-size:11px}
.tb-av[data-s="26"],img.tb-av[width="26"]{width:26px;height:26px;font-size:12px}
.tb-av[data-s="32"],img.tb-av[width="32"]{width:32px;height:32px;font-size:13px}
.tb-av[data-s="34"],img.tb-av[width="34"]{width:34px;height:34px;font-size:14px}
.tb-av[data-s="40"],img.tb-av[width="40"]{width:40px;height:40px;font-size:16px}
.tb-av[data-s="44"],img.tb-av[width="44"]{width:44px;height:44px;font-size:17px}
.tb-av[data-s="84"],img.tb-av[width="84"]{width:84px;height:84px;font-size:32px}
.tb-av[data-s="96"],img.tb-av[width="96"]{width:96px;height:96px;font-size:36px}
.tb-h0{--hh:#5b4be0}.tb-h1{--hh:#0ea5e9}.tb-h2{--hh:#22a06b}.tb-h3{--hh:#f59e0b}.tb-h4{--hh:#e5484d}.tb-h5{--hh:#d946ef}.tb-h6{--hh:#14b8a6}.tb-h7{--hh:#8b5cf6}
.tb-av.is-letter{background:color-mix(in srgb,var(--hh) 15%,var(--tb-card-bg));color:var(--hh)}
.tb-av.is-xl{box-shadow:0 0 0 5px var(--tb-card-bg),0 10px 24px -10px rgba(0,0,0,.35)}
.tb-badge{display:inline-flex;vertical-align:middle;margin-inline-start:5px}
.tb-badge.is-blue{color:#1d9bf0}.tb-badge.is-gold{color:#e0a106}
/* welcome */
.tb-welcome{max-width:560px;margin:10px auto;text-align:center}
.tb-welcome .tb-form{text-align:right;margin-top:14px}
.tb-welcome h1{font-size:23px;margin:10px 0 6px}
.tb-welcome-art{width:72px;height:72px;margin:0 auto;border-radius:22px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--tb-primary),var(--tb-primary2));box-shadow:0 14px 30px -12px var(--tb-primary)}
.tb-avatar-pick{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}
.tb-welcome .tb-avatar-pick{justify-self:center}
.tb-page .tb-narrow .tb-avatar-pick{flex-direction:row;justify-content:flex-start;gap:16px}
.tb-avatar-pick>div{display:grid;gap:4px}
.tb-avatar-prev{position:relative;display:block;cursor:pointer;border-radius:50%}
.tb-avatar-prev input{position:absolute;inset:0;opacity:0;cursor:pointer}
.tb-avatar-prev img{width:96px;height:96px;border-radius:50%;object-fit:cover}
.tb-avatar-prev::after{content:"";position:absolute;bottom:2px;left:2px;width:28px;height:28px;border-radius:50%;background:var(--tb-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/16px no-repeat;border:3px solid var(--tb-card-bg)}
.tb-welcome .tb-avatar-pick input[type=file]{position:absolute;opacity:0;width:1px}
/* profile header */
.tb-me-head{padding:0;overflow:hidden}
.tb-me-cover{height:110px;background:radial-gradient(120% 140% at 85% 0%,var(--tb-primary2),transparent 60%),linear-gradient(120deg,var(--tb-hero-from),var(--tb-hero-to));position:relative}
.tb-me-cover::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.25) 1px,transparent 1.5px);background-size:22px 22px;opacity:.5}
.tb-me-id{display:flex;align-items:flex-end;gap:16px;padding:0 22px 14px;margin-top:-42px;position:relative;flex-wrap:wrap}
.tb-me-id>div:first-of-type{flex:1;min-width:200px}
.tb-me-id h1{margin:0;font-size:22px;display:flex;align-items:center}
.tb-me-id p{margin:2px 0 0;font-size:13px}
.tb-me-points{display:grid;grid-template-columns:auto auto;column-gap:6px;align-items:center;padding:8px 14px;border-radius:15px;background:color-mix(in srgb,var(--tb-accent) 14%,var(--tb-card-bg));color:color-mix(in srgb,var(--tb-accent) 75%,#000)}
.tb-me-points svg{grid-row:span 2}
.tb-me-points b{font-size:19px;line-height:1.2}
.tb-me-points small{font-size:11px;grid-column:2}
.tb-tabs{display:flex;gap:4px;overflow-x:auto;padding:6px 14px 0;border-top:1px solid var(--tb-line);scrollbar-width:none}
.tb-tabs::-webkit-scrollbar{display:none}
.tb-tabs a{display:flex;align-items:center;gap:6px;padding:11px 12px;white-space:nowrap;color:var(--tb-muted);font-weight:700;font-size:13px;text-decoration:none;border-bottom:2px solid transparent}
.tb-tabs a.is-on{color:var(--tb-primary);border-bottom-color:var(--tb-primary)}
.tb-tabs a:hover{color:var(--tb-text)}
/* stats */
.tb-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:1100px){.tb-stat-row{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.tb-stat-row{grid-template-columns:1fr}}
.tb-stat{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--tb-text);padding:16px 18px;transition:transform .15s,border-color .15s}
.tb-stat:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--tb-primary) 35%,transparent)}
.tb-stat b{display:block;font-size:15px}
.tb-stat small{color:var(--tb-muted);font-size:12px}
.tb-stat-i{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;flex:none}
.is-violet{background:var(--tb-soft);color:var(--tb-primary)}
.is-amber{background:color-mix(in srgb,var(--tb-accent) 16%,var(--tb-card-bg));color:color-mix(in srgb,var(--tb-accent) 80%,#000)}
.is-green{background:color-mix(in srgb,var(--tb-success) 14%,var(--tb-card-bg));color:var(--tb-success)}
.is-blue{background:color-mix(in srgb,#0ea5e9 13%,var(--tb-card-bg));color:#0284c7}
/* lists */
.tb-empty{display:flex;align-items:center;gap:9px;color:var(--tb-muted);padding:18px 4px;margin:0}
.tb-empty a{color:var(--tb-primary);font-weight:700}
.tb-empty-card{display:grid;justify-items:center;gap:8px;text-align:center;color:var(--tb-muted);padding:34px}
.tb-empty-card p{margin:0}
.tb-todo,.tb-items,.tb-notices,.tb-people,.tb-tasks{list-style:none;margin:0;padding:0}
.tb-todo li{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--tb-line)}
.tb-todo li:last-child{border:0}
.tb-todo strong{display:block;font-size:14px}
.tb-todo small{color:var(--tb-muted);font-size:12px}
.tb-todo-dot{width:12px;height:12px;border-radius:50%;border:3px solid var(--tb-primary);flex:none}
.tb-todo-dot.is-amber{border-color:var(--tb-accent)}
.tb-todo li.is-done .tb-todo-dot{background:var(--tb-success);border-color:var(--tb-success)}
.tb-todo li.is-done strong{text-decoration:line-through;color:var(--tb-muted)}
.tb-items li{display:flex;gap:14px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--tb-line)}
.tb-items li:last-child{border:0}
.tb-items li>div{flex:1;min-width:0}
.tb-items strong{display:block}
.tb-items small{color:var(--tb-muted);font-size:12px;display:block}
.tb-items p{margin:4px 0 0;color:var(--tb-muted);font-size:13px}
.tb-items.is-past{opacity:.65}
.tb-item-date{width:52px;flex:none;text-align:center;border-radius:14px;background:var(--tb-soft);color:var(--tb-primary);padding:6px 0;line-height:1.3}
.tb-item-date b{display:block;font-size:19px}
.tb-item-date small{font-size:11px;color:inherit!important}
.tb-item-date.is-alt{background:color-mix(in srgb,var(--tb-accent) 15%,var(--tb-card-bg));color:color-mix(in srgb,var(--tb-accent) 75%,#000)}
.tb-status{display:inline-block!important;width:auto;font-weight:700;font-size:12px;padding:1px 9px;border-radius:8px;margin-top:3px}
.tb-status.is-pending{background:color-mix(in srgb,var(--tb-accent) 15%,var(--tb-card-bg));color:color-mix(in srgb,var(--tb-accent) 70%,#000)!important}
.tb-status.is-approved{background:color-mix(in srgb,var(--tb-success) 13%,var(--tb-card-bg));color:var(--tb-success)!important}
.tb-status.is-rejected{background:color-mix(in srgb,var(--tb-danger) 12%,var(--tb-card-bg));color:var(--tb-danger)!important}
.tb-details summary{cursor:pointer;color:var(--tb-primary);font-weight:700;font-size:13px;margin-top:10px}
.tb-sounds{display:grid;gap:8px}
.tb-sound{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 8px;border:1px solid var(--tb-line);border-radius:14px;cursor:pointer;font-weight:600}
.tb-sound span{flex:1}
.tb-sound input{accent-color:var(--tb-primary);width:18px;height:18px}
.tb-sound:has(input:checked){border-color:var(--tb-primary);background:var(--tb-soft)}
.tb-bg-prev{aspect-ratio:16/7;border-radius:18px;overflow:hidden;background:linear-gradient(120deg,var(--tb-hero-from),var(--tb-hero-to));display:grid;place-items:center;color:#fff;margin:12px 0;text-align:center;padding:12px}
.tb-bg-prev.has-img{padding:0}
.tb-bg-prev img{width:100%;height:100%;object-fit:cover}
.tb-bg-prev span{display:grid;justify-items:center;gap:6px;opacity:.9;max-width:340px;font-size:13px}
/* groups */
.tb-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.tb-group{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--tb-text);transition:transform .15s,border-color .15s}
.tb-group:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--tb-primary) 40%,transparent)}
.tb-group h3{margin:4px 0 0;font-size:16px}
.tb-group p{margin:0;color:var(--tb-muted);font-size:13px;flex:1}
.tb-group-i{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:var(--tb-soft);color:var(--tb-primary);flex:none}
.tb-group-i.is-alt{background:color-mix(in srgb,var(--tb-accent) 15%,var(--tb-card-bg));color:color-mix(in srgb,var(--tb-accent) 75%,#000)}
.tb-group-i.is-lg{width:64px;height:64px;border-radius:20px}
.tb-group-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;color:var(--tb-muted);font-size:12px}
.tb-group-meta span{display:inline-flex;align-items:center;gap:4px}
.tb-pill{font-size:11px;font-weight:800;padding:1px 9px;border-radius:8px;background:var(--tb-soft);color:var(--tb-primary)}
.tb-group-head{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.tb-group-head>div:nth-child(2){flex:1;min-width:220px}
.tb-group-head h1{margin:0 0 4px;font-size:22px}
.tb-group-head p{margin:0 0 8px;white-space:pre-line}
.tb-user-chip{display:inline-flex;align-items:center;gap:6px}
.tb-back{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--tb-primary);text-decoration:none;font-size:14px}
.tb-invites{border-color:color-mix(in srgb,var(--tb-primary) 30%,transparent);background:linear-gradient(var(--tb-soft),var(--tb-card-bg))}
.tb-invite{display:flex;align-items:center;gap:12px;padding:10px 0;flex-wrap:wrap}
.tb-invite>div{flex:1;min-width:180px}
.tb-invite small{display:block;color:var(--tb-muted)}
.tb-inline{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tb-tasks li{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--tb-line)}
.tb-card.tb-tasks{padding:6px 20px}
.tb-tasks li:last-child{border:0}
.tb-task-check{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--tb-soft);color:var(--tb-primary);flex:none}
.tb-task.is-done .tb-task-check{background:var(--tb-success);color:#fff}
.tb-task.is-done strong{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--tb-success) 60%,transparent)}
.tb-task.is-cant .tb-task-check{background:color-mix(in srgb,var(--tb-danger) 12%,var(--tb-card-bg));color:var(--tb-danger)}
.tb-task.is-late .tb-task-check{background:color-mix(in srgb,var(--tb-accent) 18%,var(--tb-card-bg));color:color-mix(in srgb,var(--tb-accent) 70%,#000)}
.tb-task-body{flex:1;min-width:0}
.tb-task-body strong{display:block}
.tb-task-body>small{color:var(--tb-muted);font-size:12px}
.tb-task-body small a{color:var(--tb-primary)}
.tb-task-text summary{cursor:pointer;color:var(--tb-primary);font-size:12px;font-weight:700;margin-top:4px}
.tb-task-text p{margin:6px 0 0;white-space:pre-line;font-size:13px;background:var(--tb-page-bg);padding:10px 12px;border-radius:12px}
.tb-task-act{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
@media (max-width:640px){.tb-tasks li{flex-wrap:wrap}.tb-task-act{width:100%;justify-content:flex-start;padding-inline-start:46px}}
.tb-assignees{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tb-as{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:2px 8px 2px 3px;border-radius:20px;background:var(--tb-page-bg);border:1px solid var(--tb-line)}
.tb-as i{font-style:normal;color:var(--tb-muted)}
.tb-as.is-done{border-color:color-mix(in srgb,var(--tb-success) 40%,transparent);background:color-mix(in srgb,var(--tb-success) 9%,var(--tb-card-bg))}
.tb-as.is-done i{color:var(--tb-success)}
.tb-as.is-cant{border-color:color-mix(in srgb,var(--tb-danger) 35%,transparent)}
.tb-as.is-cant i{color:var(--tb-danger)}
.tb-people li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--tb-line)}
.tb-people li:last-child{border:0}
.tb-people li>div{flex:1;min-width:0}
.tb-people a{color:var(--tb-text);font-weight:700;text-decoration:none}
.tb-people small{display:block;color:var(--tb-muted);font-size:12px}
.tb-invite-box{display:grid;gap:6px;margin-bottom:12px;position:relative}
.tb-search-field{display:flex;align-items:center;gap:8px;padding:0 12px!important;font:inherit;background:var(--tb-page-bg);border:1px solid var(--tb-line);border-radius:13px}
.tb-search-field input{border:0;background:none;padding:11px 0;font:inherit;color:var(--tb-text);width:100%;outline:0}
.tb-search-field:focus-within{border-color:var(--tb-primary);box-shadow:0 0 0 4px var(--tb-soft)}
.tb-search-results{list-style:none;margin:0;padding:6px;border:1px solid var(--tb-line);border-radius:14px;background:var(--tb-card-bg);box-shadow:var(--tb-shadow)}
.tb-search-results button{display:flex;align-items:center;gap:9px;width:100%;padding:8px;border:0;background:none;border-radius:10px;font:inherit;color:var(--tb-text);cursor:pointer;text-align:right}
.tb-search-results button:hover{background:var(--tb-soft)}
.tb-search-results span{flex:1;font-weight:600}
.tb-search-results b{font-size:12px;color:var(--tb-primary)}
.tb-search-results .tb-av{width:30px;height:30px}
.tb-search-results .is-empty{padding:8px;color:var(--tb-muted);font-size:13px}
.tb-danger-zone{margin-top:14px;padding-top:12px;border-top:1px solid var(--tb-line)}
.tb-pick-people{border:1px solid var(--tb-line);border-radius:14px;padding:10px 12px;display:grid;gap:4px;max-height:220px;overflow:auto}
.tb-pick-people legend{font-weight:700;font-size:13px;padding:0 6px}
.tb-pick-people label{display:flex;align-items:center;gap:8px;padding:5px;border-radius:10px;cursor:pointer;font-weight:600}
.tb-pick-people label:hover{background:var(--tb-soft)}
.tb-pick-people input{accent-color:var(--tb-primary);width:18px;height:18px}
/* notifications page */
.tb-notices li{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--tb-line)}
.tb-notices li:last-child{border:0}
.tb-notices li>div{flex:1;min-width:0}
.tb-notices a{color:var(--tb-text);text-decoration:none}
.tb-notices p{margin:2px 0;color:var(--tb-muted);font-size:13px}
.tb-notices small{color:var(--tb-muted);font-size:12px}
.tb-notices li.is-new strong::after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--tb-primary);margin-inline-start:7px;vertical-align:middle}
.tb-n-i{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--tb-soft);color:var(--tb-primary);flex:none}
.tb-n-i.is-reminder,.tb-n-i.is-task_due{background:color-mix(in srgb,var(--tb-accent) 16%,var(--tb-card-bg));color:color-mix(in srgb,var(--tb-accent) 75%,#000)}
.tb-n-i.is-task_done,.tb-n-i.is-approved{background:color-mix(in srgb,var(--tb-success) 14%,var(--tb-card-bg));color:var(--tb-success)}
.tb-n-i.is-task_cant,.tb-n-i.is-rejected{background:color-mix(in srgb,var(--tb-danger) 12%,var(--tb-card-bg));color:var(--tb-danger)}
/* dialogs */
.tb-modal{border:0;padding:0;border-radius:24px;width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 40px);background:var(--tb-card-bg);color:var(--tb-text);box-shadow:0 30px 80px -20px rgba(20,12,80,.45);font-family:var(--tb-font);overflow:auto}
.tb-modal::backdrop{background:rgba(20,16,50,.45);backdrop-filter:blur(3px)}
.tb-modal[open]{animation:tb-pop .22s ease-out}
@keyframes tb-pop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.tb-modal>form{padding:20px 22px 22px}
.tb-modal header{display:flex;justify-content:space-between;align-items:center}
.tb-modal header h2{margin:0;font-size:18px}
@media (max-width:600px){.tb-modal{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:24px 24px 0 0;max-height:92dvh}.tb-modal[open]{animation:tb-sheet .25s ease-out}}
@keyframes tb-sheet{from{transform:translateY(40px);opacity:.5}to{transform:none;opacity:1}}
.tb-day-head{display:flex;gap:14px;align-items:center;padding:20px 22px;background:linear-gradient(120deg,var(--tb-hero-from),var(--tb-hero-to));color:var(--tb-hero-text)}
.tb-day-head.is-hol{background:linear-gradient(120deg,var(--tb-holiday-color),color-mix(in srgb,var(--tb-holiday-color) 70%,#fff))}
.tb-day-head>div:nth-child(2){flex:1}
.tb-day-head h2{margin:0;font-size:17px}
.tb-day-head p{margin:0;font-size:12px;opacity:.85;text-align:right}
.tb-day-head .tb-icon-btn{background:rgba(255,255,255,.18);color:#fff;border-color:transparent}
.tb-day-num{font-size:46px;font-weight:900;line-height:1;min-width:58px;text-align:center}
.tb-day-body{padding:16px 22px}
.tb-day-body h3{font-size:14px;margin:16px 0 6px}
.tb-day-hol{display:inline-block;background:color-mix(in srgb,var(--tb-holiday-color) 13%,var(--tb-card-bg));color:var(--tb-holiday-color);font-weight:800;border-radius:9px;padding:2px 10px;margin:0 0 8px;font-size:13px}
.tb-day-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tb-day-list li{padding:10px 14px;border-radius:14px;background:var(--tb-page-bg);border-inline-start:4px solid var(--tb-success)}
.tb-day-list li.is-world{border-color:#3b82f6}
.tb-day-list li.is-name{border-color:var(--tb-primary)}
.tb-day-list li.is-local{border-color:var(--tb-accent)}
.tb-day-list li.is-rem,.tb-day-list li.is-task{border-color:var(--tb-accent)}
.tb-day-list li.is-bday{border-color:#ec4899}
.tb-day-list strong{display:block;font-size:14px}
.tb-day-list em{font-style:normal;font-size:11px;background:var(--tb-holiday-color);color:#fff;border-radius:6px;padding:0 6px;margin-inline-start:4px}
.tb-day-list p{margin:3px 0;font-size:13px;color:var(--tb-muted)}
.tb-day-list small{font-size:12px;color:var(--tb-muted)}
.tb-day-list a{color:var(--tb-primary);font-weight:700}
.tb-day-foot{display:flex;gap:8px;flex-wrap:wrap;padding:0 22px 22px}
/* date picker */
.tb-picker{position:absolute;z-index:1000;width:320px;max-width:calc(100vw - 16px);background:var(--tb-card-bg);color:var(--tb-text);border:1px solid var(--tb-line);border-radius:20px;box-shadow:0 24px 60px -18px rgba(20,12,80,.4);padding:12px;display:none;font-family:var(--tb-font);direction:rtl}
.tb-picker.is-open{display:block}
.tb-picker.is-sheet{position:fixed;left:0!important;right:0;bottom:0;top:auto!important;width:100%;max-width:100%;border-radius:22px 22px 0 0;padding-bottom:max(12px,env(safe-area-inset-bottom))}
.tb-pk-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.tb-pk-head>button{width:36px;height:36px;border-radius:11px;border:1px solid var(--tb-line);background:none;font-size:20px;color:var(--tb-text);cursor:pointer}
.tb-pk-title{flex:1;display:flex;gap:6px}
.tb-pk-title select{flex:1;font:inherit;font-weight:700;border:1px solid var(--tb-line);border-radius:11px;padding:6px;background:var(--tb-page-bg);color:var(--tb-text)}
.tb-pk-week,.tb-pk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.tb-pk-week span{font-size:12px;color:var(--tb-muted);padding:4px 0;font-weight:700}
.tb-pk-grid button{aspect-ratio:1;border:0;border-radius:11px;background:none;font:inherit;font-weight:600;color:var(--tb-text);cursor:pointer}
.tb-pk-grid button:hover{background:var(--tb-soft)}
.tb-pk-grid button.is-fri{color:var(--tb-holiday-color)}
.tb-pk-grid button.is-today{box-shadow:inset 0 0 0 2px var(--tb-primary)}
.tb-pk-grid button.is-sel{background:var(--tb-primary);color:#fff}
.tb-pk-grid button:disabled{opacity:.3;cursor:default;background:none}
.tb-pk-foot{display:flex;gap:6px;margin-top:8px}
.tb-pk-foot button{flex:1;border:1px solid var(--tb-line);background:var(--tb-page-bg);border-radius:11px;padding:7px;font:inherit;font-weight:700;font-size:13px;color:var(--tb-text);cursor:pointer}
.tb-pk-foot button:first-child{background:var(--tb-soft);color:var(--tb-primary);border-color:transparent}
/* toasts */
.tb-toasts{position:fixed;z-index:1200;inset-inline-start:16px;bottom:16px;display:grid;gap:8px;width:min(360px,calc(100vw - 32px));font-family:var(--tb-font)}
.tb-toast{display:grid;gap:2px;padding:13px 16px;border-radius:16px;background:var(--tb-text);color:#fff;box-shadow:0 16px 40px -12px rgba(0,0,0,.4);text-decoration:none;opacity:0;transform:translateY(12px);transition:opacity .3s,transform .3s;border-inline-start:4px solid var(--tb-primary2)}
.tb-toast.is-in{opacity:1;transform:none}
.tb-toast span{font-size:13px;opacity:.8}
.tb-toast.is-success{border-color:var(--tb-success)}
.tb-toast.is-error{border-color:var(--tb-danger)}
@media (max-width:860px){.tb-toasts{bottom:86px;inset-inline-start:12px}}
@media (prefers-reduced-motion:reduce){.tb-modal[open],.tb-toast{animation:none;transition:none}}
/* ---------- v1.1.2: photos & cropper, cover, task notes, 365 titles in day popup */
.tb-vh{position:absolute!important;width:1px!important;height:1px!important;opacity:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tb-photos{display:grid;gap:18px}
.tb-photo{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.tb-photo.is-cover{flex-direction:column;align-items:stretch}
.tb-photo.is-center{flex-direction:column;justify-content:center}
.tb-photo-act{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.tb-photo.is-cover .tb-photo-act{flex-direction:row;flex-wrap:wrap;align-items:center}
.tb-photo-act form{margin:0}
.tb-photo label.tb-btn{cursor:pointer;position:relative}
.tb-photo label.tb-btn:focus-within{outline:2px solid var(--tb-primary);outline-offset:2px}
.tb-photo-prev img,.tb-photo-prev .tb-av{width:96px;height:96px;border-radius:50%;object-fit:cover}
.tb-cover-prev{display:grid;place-items:center;aspect-ratio:16/5;border-radius:16px;overflow:hidden;background:linear-gradient(120deg,var(--tb-hero-from),var(--tb-hero-to));color:#fff}
.tb-cover-prev img{width:100%;height:100%;object-fit:cover}
.tb-cover-prev .tb-muted{color:rgba(255,255,255,.85);display:grid;justify-items:center;gap:4px;font-size:13px}
.tb-me-cover.has-img{height:auto;aspect-ratio:16/5;max-height:260px}
.tb-me-cover.has-img::after{display:none}
.tb-me-cover img{width:100%;height:100%;object-fit:cover;display:block}
.tb-me-cover.has-img+.tb-me-id{margin-top:-46px}
.tb-crop .tb-crop-in{padding:18px 20px 20px;display:grid;gap:10px}
.tb-crop header{display:flex;justify-content:space-between;align-items:center}
.tb-crop header h2{margin:0;font-size:18px}
.tb-crop-help{margin:0;font-size:13px}
.tb-crop{width:min(620px,calc(100vw - 20px))}
.tb-crop-stage{position:relative;border-radius:16px;overflow:hidden;background:#111;touch-action:none;user-select:none}
.tb-crop-stage canvas{display:block;width:100%;height:auto;cursor:grab;touch-action:none}
.tb-crop-stage canvas:active{cursor:grabbing}
.tb-crop-frame{position:absolute;inset:0;pointer-events:none;border:2px solid rgba(255,255,255,.85);border-radius:16px}
.tb-crop.is-avatar .tb-crop-stage{max-width:420px;margin:0 auto;width:100%}
.tb-crop.is-avatar .tb-crop-frame{border-radius:50%;box-shadow:0 0 0 999px rgba(0,0,0,.45)}
.tb-crop-tools{display:flex;align-items:center;gap:10px}
.tb-crop-tools input{flex:1;accent-color:var(--tb-primary)}
.tb-crop-tools span{font-weight:900;color:var(--tb-muted);width:12px;text-align:center}
.tb-report{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start;justify-content:flex-end}
.tb-report-d{position:relative}
.tb-report-d summary{list-style:none;cursor:pointer}
.tb-report-d summary::-webkit-details-marker{display:none}
.tb-report-d[open] summary{box-shadow:0 0 0 3px var(--tb-soft)}
.tb-report-f{position:absolute;z-index:20;top:calc(100% + 6px);left:0;width:min(320px,80vw);display:grid;gap:8px;padding:12px;background:var(--tb-card-bg);border:1px solid var(--tb-line);border-radius:16px;box-shadow:0 18px 40px -16px rgba(20,12,80,.35)}
.tb-report-f textarea{font:inherit;font-size:13px;color:var(--tb-text);background:var(--tb-page-bg);border:1px solid var(--tb-line);border-radius:12px;padding:9px 11px;resize:vertical;width:100%}
.tb-report-f textarea:focus{outline:0;border-color:var(--tb-primary);box-shadow:0 0 0 3px var(--tb-soft)}
@media (max-width:640px){.tb-report{justify-content:flex-start}.tb-report-f{position:static;width:100%;margin-top:6px}.tb-report-d{flex-basis:100%}.tb-report-d summary{display:inline-flex}}
.tb-task-note{margin:8px 0 0;font-size:13px;padding:8px 12px;border-radius:12px;background:var(--tb-page-bg);border-inline-start:3px solid var(--tb-primary);white-space:pre-line}
.tb-task-note.is-done{border-color:var(--tb-success)}
.tb-task-note.is-cant{border-color:var(--tb-danger)}
.tb-task-note b{font-weight:800}
.tb-day-bah{margin:0 0 10px;padding:9px 12px;border-radius:12px;background:var(--tb-soft);color:var(--tb-primary);font-weight:800;display:grid;font-size:14px}
.tb-day-bah span{font-size:11px;font-weight:600;opacity:.8}
.tb-day-bah.is-neutral{background:var(--tb-page-bg);color:var(--tb-text)}
