/* Flowear Support: Tickets + Knowledge Base */
.fw-support .fw-blog-head { margin-bottom: 1rem; }

/* modal fields (shared) */
.fw-tk-modal .fw-modal-card, .fw-tk-view-card, .fw-kb-view-card { max-width: 720px; width: 100%; max-height: 88vh; overflow: auto; }
.fw-field { display: block; margin-bottom: .9rem; }
.fw-field > span { display: block; font-size: .8rem; font-weight: 600; margin-bottom: .35rem; color: var(--fw-muted-fg); }
.fw-field input[type="text"], .fw-field input[type="search"], .fw-field select, .fw-field textarea {
	width: 100%; background: var(--fw-bg); border: 1px solid var(--fw-border); border-radius: .7rem;
	padding: .6rem .8rem; font-family: inherit; font-size: .9rem; color: var(--fw-fg); outline: none;
}
.fw-field textarea:focus, .fw-field input:focus, .fw-field select:focus { border-color: var(--fw-primary); }
.fw-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.fw-tk-attach input[type="file"] { font-size: .82rem; }
.fw-modal-actions { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1rem; }

/* tickets header */
.fw-tk-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.fw-tk-head h2 { margin: 0; font-size: 1.4rem; }
.fw-tk-sub { margin: .2rem 0 0; color: var(--fw-muted-fg); font-size: .9rem; }

/* filters */
.fw-tk-filters { display: flex; gap: .3rem; flex-wrap: wrap; margin: 1rem 0; border-bottom: 1px solid var(--fw-border); }
.fw-tk-filter { background: none; border: 0; border-bottom: 2px solid transparent; padding: .55rem .7rem; cursor: pointer;
	font-family: inherit; font-size: .85rem; font-weight: 600; color: var(--fw-muted-fg); }
.fw-tk-filter.is-active { color: var(--fw-primary); border-bottom-color: var(--fw-primary); }

/* stats */
.fw-tk-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.fw-tk-stat > div { min-width: 0; overflow: hidden; }
.fw-tk-stat small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fw-tk-stat { display: flex; align-items: center; gap: .7rem; background: var(--fw-card); border: 1px solid var(--fw-border);
	border-radius: var(--fw-radius); padding: .9rem 1rem; cursor: pointer; text-align: left; }
.fw-tk-stat:hover { border-color: var(--fw-primary); }
.fw-tk-stat-ico { display: grid; place-items: center; width: 40px; height: 40px; border-radius: .7rem; background: var(--fw-accent); color: var(--fw-primary); flex: 0 0 auto; }
.fw-tk-ico-open { background: #ede9fe; color: #6d28d9; } .fw-tk-ico-prog { background: #fef3c7; color: #b45309; } .fw-tk-ico-closed { background: #dcfce7; color: #15803d; }
.fw-tk-stat strong { display: block; font-size: 1.3rem; line-height: 1; } .fw-tk-stat small { color: var(--fw-muted-fg); font-size: .78rem; }

/* search */
.fw-tk-search, .fw-kb-searchbar { position: relative; margin-bottom: 1rem; }
.fw-tk-search span, .fw-kb-searchbar span { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--fw-muted-fg); }
.fw-tk-search input, .fw-kb-searchbar input { width: 100%; padding: .7rem .9rem .7rem 2.6rem; border-radius: .8rem;
	border: 1px solid var(--fw-border); background: var(--fw-bg); color: var(--fw-fg); font-family: inherit; font-size: .9rem; outline: none; }
.fw-tk-search input:focus, .fw-kb-searchbar input:focus { border-color: var(--fw-primary); }

/* list */
.fw-tk-list { display: flex; flex-direction: column; gap: .6rem; }
.fw-tk-loading { padding: 2rem; text-align: center; color: var(--fw-muted-fg); }
.fw-tk-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; text-align: left;
	background: var(--fw-card); border: 1px solid var(--fw-border); border-radius: var(--fw-radius); padding: .85rem 1rem; cursor: pointer; }
.fw-tk-row:hover { border-color: var(--fw-primary); }
.fw-tk-row-main strong { display: block; font-size: .95rem; }
.fw-tk-row-main small { color: var(--fw-muted-fg); font-size: .78rem; }
.fw-tk-row-meta { display: flex; align-items: center; gap: .6rem; flex: 0 0 auto; }
.fw-tk-row-meta em { color: var(--fw-muted-fg); font-size: .75rem; font-style: normal; }

/* badges */
.fw-tk-badge { padding: 3px 10px; border-radius: 999px; font-size: .72rem; font-weight: 600; }
.fw-tk-b-open { background: #ede9fe; color: #6d28d9; } .fw-tk-b-in-progress { background: #dbeafe; color: #1d4ed8; }
.fw-tk-b-waiting { background: #f3f4f6; color: #374151; } .fw-tk-b-closed { background: #dcfce7; color: #15803d; }
.fw-tk-prio { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; font-weight: 600; color: var(--fw-muted-fg); }
.fw-tk-prio i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.fw-tk-p-low { color: #16a34a; } .fw-tk-p-medium { color: #d97706; } .fw-tk-p-high { color: #dc2626; } .fw-tk-p-urgent { color: #991b1b; }
.fw-tk-cat { font-size: .75rem; color: var(--fw-muted-fg); }

/* ticket detail */
.fw-tk-view-head { border-bottom: 1px solid var(--fw-border); padding-bottom: .8rem; margin-bottom: 1rem; }
.fw-tk-view-head h3 { margin: 0 0 .5rem; }
.fw-tk-view-tags { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.fw-tk-view-acts { display: flex; gap: .5rem; margin-top: .7rem; }
.fw-tk-del:hover { color: var(--fw-destructive); }
.fw-tk-thread { display: flex; flex-direction: column; gap: .8rem; }
.fw-tk-msgbox { background: var(--fw-card); border: 1px solid var(--fw-border); border-radius: var(--fw-radius); padding: .8rem 1rem; }
.fw-tk-msgbox.is-staff { background: var(--fw-accent); border-color: var(--fw-primary); }
.fw-tk-msg-head { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.fw-tk-msg-head img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.fw-tk-msg-head strong { font-size: .85rem; } .fw-tk-msg-head em { margin-left: auto; color: var(--fw-muted-fg); font-size: .72rem; font-style: normal; }
.fw-tk-staff { background: var(--fw-primary); color: #fff; border-radius: 6px; padding: 1px 6px; font-size: .65rem; }
.fw-tk-msg-body { font-size: .9rem; line-height: 1.6; }
.fw-tk-atts { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.fw-tk-atts a { font-size: .78rem; color: var(--fw-primary); border: 1px solid var(--fw-border); border-radius: .5rem; padding: .25rem .6rem; }
.fw-tk-reply { margin-top: 1rem; }
.fw-tk-reply textarea { width: 100%; border: 1px solid var(--fw-border); border-radius: .7rem; background: var(--fw-bg); color: var(--fw-fg); padding: .6rem .8rem; font-family: inherit; }
.fw-tk-reply-foot { display: flex; align-items: center; justify-content: space-between; margin-top: .6rem; }
.fw-tk-clip { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; color: var(--fw-muted-fg); cursor: pointer; }
.fw-tk-clip input { max-width: 150px; font-size: .72rem; }

/* knowledge base */
.fw-kb-hero { text-align: center; background: var(--fw-card); border: 1px solid var(--fw-border); border-radius: var(--fw-radius); padding: 1.6rem 1.2rem; margin-bottom: 1.2rem; }
.fw-kb-hero h2 { margin: 0 0 .3rem; font-size: 1.5rem; }
.fw-kb-hero p { color: var(--fw-muted-fg); margin: 0 0 1rem; }
.fw-kb-hero .fw-kb-searchbar { max-width: 560px; margin: 0 auto; }
.fw-kb-h { font-size: 1.05rem; margin: 1.2rem 0 .7rem; }
.fw-kb-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .8rem; }
.fw-kb-cat { text-align: left; background: var(--fw-card); border: 1px solid var(--fw-border); border-radius: var(--fw-radius); padding: 1rem; cursor: pointer; }
.fw-kb-cat:hover { border-color: var(--fw-primary); }
.fw-kb-cat-ic { display: block; width: 40px; height: 40px; border-radius: .7rem; background: var(--fw-accent); margin-bottom: .6rem; }
.fw-kb-cat strong { display: block; font-size: .95rem; } .fw-kb-cat small { display: block; color: var(--fw-muted-fg); font-size: .8rem; margin: .25rem 0 .5rem; }
.fw-kb-cat em { color: var(--fw-primary); font-size: .78rem; font-style: normal; font-weight: 600; }
.fw-kb-articles { display: flex; flex-direction: column; gap: .5rem; }
.fw-kb-arow { text-align: left; background: var(--fw-card); border: 1px solid var(--fw-border); border-radius: var(--fw-radius); padding: .8rem 1rem; cursor: pointer; }
.fw-kb-arow:hover { border-color: var(--fw-primary); }
.fw-kb-arow strong { display: block; font-size: .92rem; } .fw-kb-arow small { color: var(--fw-muted-fg); font-size: .8rem; }
.fw-kb-art-head { border-bottom: 1px solid var(--fw-border); padding-bottom: .8rem; margin-bottom: 1rem; }
.fw-kb-art-cats { color: var(--fw-primary); font-size: .78rem; font-weight: 600; }
.fw-kb-art-head h2 { margin: .3rem 0; } .fw-kb-art-head small { color: var(--fw-muted-fg); }
.fw-kb-art-body { font-size: .95rem; line-height: 1.7; }
.fw-kb-art-body img { max-width: 100%; height: auto; border-radius: .6rem; }
.fw-kb-art-body iframe { max-width: 100%; }
.fw-kb-helpful { display: flex; align-items: center; gap: .6rem; margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--fw-border); }
.fw-kb-helpful span { color: var(--fw-muted-fg); font-size: .85rem; }

/* dark tweaks */
.flowear--dark .fw-tk-b-open, .flowear--dark .fw-tk-ico-open { background: rgba(139,92,246,.2); color: #c4b5fd; }
.flowear--dark .fw-tk-b-in-progress { background: rgba(59,130,246,.2); color: #93c5fd; }
.flowear--dark .fw-tk-b-waiting { background: rgba(148,163,184,.2); color: #cbd5e1; }
.flowear--dark .fw-tk-b-closed, .flowear--dark .fw-tk-ico-closed { background: rgba(34,197,94,.2); color: #86efac; }
.flowear--dark .fw-tk-ico-prog { background: rgba(217,119,6,.2); color: #fcd34d; }

/* containment: never let the support UI overflow its column */
.fw-support, .fw-tickets, .fw-kb, .fw-tk-head, .fw-tk-list, .fw-kb-body, .fw-kb-hero { min-width: 0; max-width: 100%; }
.fw-support * { box-sizing: border-box; }
.fw-support .fw-tk-head h2, .fw-support .fw-tk-sub, .fw-support .fw-kb-hero h2, .fw-support .fw-kb-hero p { overflow-wrap: anywhere; word-break: break-word; }
.fw-tk-filters { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.fw-tk-filters::-webkit-scrollbar { display: none; }
.fw-tk-filter { flex: 0 0 auto; white-space: nowrap; }

/* responsive */
@media (max-width: 980px) {
	.fw-tk-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
	.fw-field-row { grid-template-columns: 1fr; }
	.fw-tk-row { flex-direction: column; align-items: flex-start; gap: .5rem; }
	.fw-tk-row-meta { flex-wrap: wrap; }
	.fw-tk-head { flex-direction: column; align-items: stretch; gap: .75rem; }
	.fw-tk-head .fw-btn { width: 100%; justify-content: center; }
	.fw-kb-cats { grid-template-columns: 1fr; }
	.fw-kb-hero { padding: 1.2rem .9rem; }
	.fw-kb-hero .fw-kb-searchbar { max-width: 100%; }
	.fw-tk-search, .fw-kb-searchbar { margin-left: 0; margin-right: 0; }
	.fw-modal { padding: .5rem; }
	.fw-tk-modal .fw-modal-card, .fw-tk-view-card, .fw-kb-view-card { max-height: 92vh; }
	.fw-kb-cat, .fw-kb-arow { width: 100%; }
}
@media (max-width: 420px) {
	.fw-tk-stats { grid-template-columns: 1fr; }
	.fw-tk-stat { padding: .75rem .85rem; }
	.fw-kb-back, .fw-kb-art-back { width: 100%; justify-content: center; }
}
