@oktis-works/admin 0.13.1 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/_astro/{ActivityWidget.CCls_jrK.js → ActivityWidget.CedrZ3yN.js} +2 -2
- package/dist/client/_astro/AdminBar.CkfSUzJJ.js +253 -0
- package/dist/client/_astro/ApiKeysManager.ChCtr3J2.js +1 -0
- package/dist/client/_astro/{AtGlanceWidget.DPkp-rxl.js → AtGlanceWidget.DMrAc7qb.js} +3 -3
- package/dist/client/_astro/{BaseLayout.DAkzjMTq.css → BaseLayout.Cp-O10m_.css} +1 -1
- package/dist/client/_astro/CommentsManager.CtiI8mwU.js +21 -0
- package/dist/client/_astro/ContentEditor.BQTSumnU.js +1 -0
- package/dist/client/_astro/ContentEditor.Bl295osh.js +3 -0
- package/dist/client/_astro/ContentTypeWorkspace.xZAsn-ok.js +1 -0
- package/dist/client/_astro/DashboardHome.B7PYDcS1.js +1 -0
- package/dist/client/_astro/{DashboardLayout.astro_astro_type_script_index_0_lang.D2eyDf2o.js → DashboardLayout.astro_astro_type_script_index_0_lang.BFY8jBwE.js} +1 -1
- package/dist/client/_astro/FbIcon.Bn4e_qFb.js +1 -0
- package/dist/client/_astro/FieldGroupEditor.BsV0u51p.js +69 -0
- package/dist/client/_astro/FieldGroupList.CXyFKdsR.js +1 -0
- package/dist/client/_astro/FieldRenderer.2TxRD88c.js +1 -0
- package/dist/client/_astro/FloatingPanel.BetdW5N2.js +1 -0
- package/dist/client/_astro/{Footer.JI2Mqd9V.js → Footer.BKD9_ctB.js} +2 -2
- package/dist/client/_astro/GeneralSettings.Di8ILdOl.js +1 -0
- package/dist/client/_astro/LogsManager.WBGR0Ci2.js +1 -0
- package/dist/client/_astro/MediaLibrary.B5ozN2R7.js +1 -0
- package/dist/client/_astro/MenuManager.9UORktNs.js +1 -0
- package/dist/client/_astro/Modal.CPaZJlDP.js +1 -0
- package/dist/client/_astro/PluginManager._RYLLtJI.js +112 -0
- package/dist/client/_astro/PostTypesManager.B6dDnCOy.js +1 -0
- package/dist/client/_astro/QuickDraftWidget.DCVYrBPm.js +17 -0
- package/dist/client/_astro/ResourceHubs.Cd0KB4Rx.js +1 -0
- package/dist/client/_astro/TaxonomiesManager.9I03xqrR.js +1 -0
- package/dist/client/_astro/TaxonomyTermsManager.btLVdHr-.js +1 -0
- package/dist/client/_astro/ThemeCustomizer.CXg9hm9t.js +49 -0
- package/dist/client/_astro/ThemeManager.BfQh8JJa.js +144 -0
- package/dist/client/_astro/UserCreateForm.BAd11jYs.js +1 -0
- package/dist/client/_astro/UsersManager.gkehfvoP.js +1 -0
- package/dist/client/_astro/WebhooksManager.BCilUaGs.js +1 -0
- package/dist/client/_astro/{api.CYg1SW2X.js → api.B03e8F6d.js} +1 -1
- package/dist/client/_astro/client.ljtU74WL.js +1 -0
- package/dist/client/_astro/extensions.EzvpwBZm.js +1 -0
- package/dist/client/_astro/i18n.LMZI7jyc.js +1 -0
- package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.F2J3xZhK.js → login.astro_astro_type_script_index_0_lang.BUOUZuDy.js} +1 -1
- package/dist/client/_astro/preload-helper.oCYlU9a4.js +1 -0
- package/dist/client/_astro/pt-BR.CfJP86YC.js +1 -0
- package/dist/client/_astro/solid.Ck4Vtfe4.js +1 -0
- package/dist/client/_astro/src.CYKGYEyR.js +1 -0
- package/dist/client/_astro/store.DJjOMYcw.js +1 -0
- package/dist/client/_astro/web.DD6VKaIp.js +1 -0
- package/dist/server/chunks/{404_C9Eokbcv.mjs → 404_CIlW8Cz9.mjs} +1 -1
- package/dist/server/chunks/{BaseLayout_DgDmTH8p.mjs → BaseLayout_DdN9Gl3i.mjs} +5 -5
- package/dist/server/chunks/ContentEditor_GenRIOIJ.mjs +655 -0
- package/dist/server/chunks/{DashboardLayout_CrxyUavx.mjs → DashboardLayout_BY4AqWC6.mjs} +354 -91
- package/dist/server/chunks/{ContentEditor_VK16JJMh.mjs → FieldRenderer_pM3Tq7vY.mjs} +54 -615
- package/dist/server/chunks/{MediaLibrary_CZuj5byR.mjs → MediaLibrary_woj8kWSK.mjs} +2 -2
- package/dist/server/chunks/{Modal_BfWFiyry.mjs → Modal_BQZlVP1o.mjs} +1 -1
- package/dist/server/chunks/{_id__BYx77RvL.mjs → _id__CIrIQBGk.mjs} +5 -4
- package/dist/server/chunks/{_slug__CR6t9xra.mjs → _slug__DP5cppSD.mjs} +1 -1
- package/dist/server/chunks/{access_Bp3EnO2H.mjs → access_Cr1RkoC8.mjs} +3 -3
- package/dist/server/chunks/{api-keys_Dt87wCbg.mjs → api-keys_DxCfUQiR.mjs} +3 -3
- package/dist/server/chunks/comments_CDCO_DTQ.mjs +208 -0
- package/dist/server/chunks/{custom-fields_CC_ZhBpp.mjs → custom-fields_DUby1Cd7.mjs} +2 -2
- package/dist/server/chunks/customize_DITLWxTB.mjs +233 -0
- package/dist/server/chunks/{edit_VYWajKgt.mjs → edit_6xBPrb1J.mjs} +3 -3
- package/dist/server/chunks/{general_DtYlpwnZ.mjs → general_CA6aT6cZ.mjs} +2 -2
- package/dist/server/chunks/{i18n_B-DWAN0e.mjs → i18n_BBVOgA0q.mjs} +75 -36
- package/dist/server/chunks/{index_CDmqkl48.mjs → index_1C4PfYEy.mjs} +2 -2
- package/dist/server/chunks/{index_ieyhXCVt.mjs → index_CO2SvpwW.mjs} +1 -1
- package/dist/server/chunks/{index_DXmHKYjS.mjs → index_Cn92C8CO.mjs} +2 -2
- package/dist/server/chunks/{index_6a-jaApt.mjs → index_D2ypKpAG.mjs} +111 -62
- package/dist/server/chunks/{index_DgVVWosZ.mjs → index_D_AiNQGl.mjs} +2 -2
- package/dist/server/chunks/{login_DRJNLDt7.mjs → login_vyj4WhBt.mjs} +1 -1
- package/dist/server/chunks/{logs_CaMNxV6h.mjs → logs_BjuW-do3.mjs} +2 -2
- package/dist/server/chunks/{menus_BsV0U5D5.mjs → menus_CPi_m-b8.mjs} +2 -2
- package/dist/server/chunks/{new_BQ2d8AHk.mjs → new_BlENJv6A.mjs} +3 -3
- package/dist/server/chunks/{new_CyBl1PM1.mjs → new_D_pNdD5e.mjs} +2 -2
- package/dist/server/chunks/plugins_sYgOSowJ.mjs +150 -0
- package/dist/server/chunks/{post-types_BBKtACUm.mjs → post-types_Bm8olePm.mjs} +2 -2
- package/dist/server/chunks/{pt-BR_Da5G4GOV.mjs → pt-BR_DYDMLZu_.mjs} +53 -24
- package/dist/server/chunks/{taxonomies_gwfTSCOV.mjs → taxonomies_DbsqX_QZ.mjs} +2 -2
- package/dist/server/chunks/{taxonomy_BKdLzLps.mjs → taxonomy_ByKdjp9j.mjs} +64 -19
- package/dist/server/chunks/{themes_CqOUZiNg.mjs → themes_BKAM_crI.mjs} +27 -129
- package/dist/server/chunks/{upload_keeE9Mn0.mjs → upload_CE4Lbc1u.mjs} +2 -2
- package/dist/server/chunks/{webhooks_sTUPF0Xn.mjs → webhooks_CpruP30e.mjs} +2 -2
- package/dist/server/entry.mjs +104 -50
- package/dist/server/virtual_astro_middleware.mjs +1 -1
- package/package.json +5 -5
- package/dist/client/_astro/AdminBar.BW8zYZI3.js +0 -253
- package/dist/client/_astro/ApiKeysManager.Cj5tsk4N.js +0 -1
- package/dist/client/_astro/ContentEditor.CByEz10Q.js +0 -3
- package/dist/client/_astro/ContentEditor.kdYzULib.js +0 -1
- package/dist/client/_astro/ContentTypeWorkspace.BMVbiGGy.js +0 -1
- package/dist/client/_astro/DashboardHome.BuDu0DuB.js +0 -1
- package/dist/client/_astro/FbIcon.CUNS6rpP.js +0 -1
- package/dist/client/_astro/FieldGroupEditor.DGjV1n67.js +0 -69
- package/dist/client/_astro/FieldGroupList.BJ2TKSgY.js +0 -1
- package/dist/client/_astro/FloatingPanel.BeCEt_JP.js +0 -1
- package/dist/client/_astro/GeneralSettings.BSObhTfM.js +0 -1
- package/dist/client/_astro/LogsManager.B4-BxzoP.js +0 -1
- package/dist/client/_astro/MediaLibrary.BHVM3oJh.js +0 -1
- package/dist/client/_astro/MenuManager.BAn4_w6-.js +0 -1
- package/dist/client/_astro/Modal.BSZ5IjBl.js +0 -1
- package/dist/client/_astro/PluginManager.D_E-lPWP.js +0 -136
- package/dist/client/_astro/PostTypesManager.BHU1d2ta.js +0 -1
- package/dist/client/_astro/QuickDraftWidget.ClSsMYB_.js +0 -17
- package/dist/client/_astro/ResourceHubs.C3suqlP0.js +0 -1
- package/dist/client/_astro/TaxonomiesManager.BXYUiJEA.js +0 -1
- package/dist/client/_astro/TaxonomyTermsManager.obB3lkr3.js +0 -1
- package/dist/client/_astro/ThemeManager.C0TKggfZ.js +0 -176
- package/dist/client/_astro/UserCreateForm.DaIOqr8v.js +0 -1
- package/dist/client/_astro/UsersManager.B5zFoWmR.js +0 -1
- package/dist/client/_astro/WebhooksManager.BRvVuxLt.js +0 -1
- package/dist/client/_astro/client.DU9Dc2oe.js +0 -1
- package/dist/client/_astro/extensions.Brl6zAPA.js +0 -1
- package/dist/client/_astro/i18n.vdBFsiPK.js +0 -1
- package/dist/client/_astro/pt-BR.CKJnipDe.js +0 -1
- package/dist/client/_astro/solid.D49dPDCT.js +0 -1
- package/dist/client/_astro/src.DXVWCoHp.js +0 -1
- package/dist/client/_astro/web.Bqbl_1YR.js +0 -1
- package/dist/server/chunks/plugins_BiaE4So1.mjs +0 -179
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{S as e,h as t,l as n,p as r,r as i}from"./solid.Ck4Vtfe4.js";import{_ as a,l as o,o as s,p as c,u as l}from"./web.DD6VKaIp.js";import{n as u}from"./i18n.LMZI7jyc.js";import{n as d}from"./api.B03e8F6d.js";var f=a(`<div class=activity-widget data-widget-panel=activity style="grid-column:span 2"><div class=dashboard-widget-header><h3 class=dashboard-widget-title></h3></div><div class=dashboard-widget-content></div><div class=styles-container><style>
|
|
2
2
|
.activity-list { display: flex; flex-direction: column; gap: 0.5rem; }
|
|
3
3
|
.activity-item {
|
|
4
4
|
display: flex; gap: 0.75rem; padding: 0.75rem;
|
|
@@ -13,4 +13,4 @@ import{d as e,p as t,r as n,s as r,y as i}from"./solid.D49dPDCT.js";import{a,c a
|
|
|
13
13
|
.activity-meta { display: flex; gap: 0.75rem; font-size: 0.6875rem; }
|
|
14
14
|
.activity-user { font-weight: 500; color: var(--color-text); }
|
|
15
15
|
.activity-time { color: var(--color-muted); }
|
|
16
|
-
`),p=
|
|
16
|
+
`),p=a(`<div class=skeleton>Loading...`),m=a(`<div>`),h=a(`<div class=activity-list>`),g=a(`<a class=activity-item><div class=activity-icon></div><div class=activity-content><p class=activity-description></p><p class=activity-meta><span class=activity-user></span><span class=activity-time>`),_=a(`<p class=empty-state>`);function v(){let{t:a}=u(),[v,y]=t([]),[b,x]=t(!0);e(async()=>{try{let[e,t]=await Promise.all([d.getContent({limit:10,includeAuthor:!0}),d.listUsers({limit:5})]),n=[];(e.data??[]).forEach(e=>{let t=e,r=t.updated_at??t.updatedAt??t.created_at,i=e.author??t.author;n.push({id:`content-${e.id}`,type:e.status===`PUBLISHED`?`post_published`:`post_updated`,user:{name:i?.name??`—`,email:i?.email??``},description:`${e.status===`PUBLISHED`?a(`activity.published`):a(`activity.updated`)} "${e.title}"`,timestamp:r??new Date().toISOString(),url:`/content/${encodeURIComponent(e.type||`post`)}/edit?id=${e.id}`})});for(let e of t.data??[])n.push({id:`user-${e.id}`,type:`user_registered`,user:{name:e.name,email:e.email},description:a(`activity.newUser`,{name:e.name}),timestamp:e.created_at??new Date().toISOString()});n.sort((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime()),y(n.slice(0,15))}catch(e){console.error(`Failed to load activity:`,e)}finally{x(!1)}});let S=e=>{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4),i=Math.floor(n/36e5),o=Math.floor(n/864e5);return r<1?a(`activity.justNow`):r<60?`${r} ${a(`activity.minAgo`)}`:i<24?`${i}h ${a(`activity.ago`)}`:o<7?`${o}d ${a(`activity.ago`)}`:t.toLocaleDateString(`pt-BR`,{day:`2-digit`,month:`2-digit`,year:`numeric`})},C=e=>{switch(e){case`post_created`:return`📝`;case`post_updated`:return`✏️`;case`post_published`:return`🚀`;case`media_uploaded`:return`📎`;case`user_registered`:return`👤`;case`comment_added`:return`💬`;default:return`📌`}};return(()=>{var e=s(f),t=e.firstChild,u=t.firstChild,d=t.nextSibling;return o(u,()=>a(`dashboard.widgets.activity.title`)),o(d,(()=>{var e=l(()=>!!b());return()=>e()?s(p):(()=>{var e=s(m);return o(e,(()=>{var e=l(()=>v().length>0);return()=>e()?(()=>{var e=s(h);return o(e,n(i,{get each(){return v()},children:e=>(()=>{var t=s(g),n=t.firstChild,i=n.nextSibling.firstChild,a=i.nextSibling.firstChild,l=a.nextSibling;return o(n,()=>C(e.type)),o(i,()=>e.description),o(a,()=>e.user.name),o(l,()=>S(e.timestamp)),r(n=>{var r=e.url||`#`,i=e.url?`_blank`:``;return r!==n.e&&c(t,`href`,n.e=r),i!==n.t&&c(t,`target`,n.t=i),n},{e:void 0,t:void 0}),t})()})),e})():(()=>{var e=s(_);return o(e,()=>a(`dashboard.widgets.activity.empty`)),e})()})()),e})()})()),e})()}export{v as ActivityWidget};
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import{S as e,a as t,h as n,l as r,p as i}from"./solid.Ck4Vtfe4.js";import{_ as a,a as o,f as s,i as c,l,o as u,p as d,s as f}from"./web.DD6VKaIp.js";import{a as p,i as m,n as h,o as g}from"./i18n.LMZI7jyc.js";import{n as _}from"./api.B03e8F6d.js";var v=a(`<style>
|
|
2
|
+
#admin-bar {
|
|
3
|
+
position: fixed;
|
|
4
|
+
top: 0;
|
|
5
|
+
left: 0;
|
|
6
|
+
right: 0;
|
|
7
|
+
height: 46px;
|
|
8
|
+
background: #0A0A0A;
|
|
9
|
+
border-bottom: 1px solid #333;
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: space-between;
|
|
13
|
+
padding: 0 1rem;
|
|
14
|
+
z-index: 2000;
|
|
15
|
+
font-family: inherit;
|
|
16
|
+
}
|
|
17
|
+
#admin-bar * { box-sizing: border-box; }
|
|
18
|
+
.admin-bar-left, .admin-bar-right {
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
gap: 1rem;
|
|
22
|
+
}
|
|
23
|
+
.admin-bar-brand {
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
gap: 0.5rem;
|
|
27
|
+
color: #FAF5E8;
|
|
28
|
+
font-weight: 600;
|
|
29
|
+
font-size: 1.125rem;
|
|
30
|
+
text-decoration: none;
|
|
31
|
+
padding: 0.375rem 0.75rem;
|
|
32
|
+
border-radius: 0.375rem;
|
|
33
|
+
transition: background 0.15s;
|
|
34
|
+
}
|
|
35
|
+
.admin-bar-brand:hover {
|
|
36
|
+
background: rgba(255,255,255,0.08);
|
|
37
|
+
}
|
|
38
|
+
.admin-bar-brand img { height: 28px; width: auto; display: block; }
|
|
39
|
+
.admin-bar-separator { width: 1px; height: 24px; background: #333; }
|
|
40
|
+
.admin-bar-menu { display: flex; gap: 0.25rem; }
|
|
41
|
+
.admin-bar-menu-item {
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
gap: 0.5rem;
|
|
45
|
+
padding: 0.375rem 0.75rem;
|
|
46
|
+
color: rgba(255,255,255,0.7);
|
|
47
|
+
font-size: 0.8125rem;
|
|
48
|
+
font-weight: 500;
|
|
49
|
+
border-radius: 0.375rem;
|
|
50
|
+
text-decoration: none;
|
|
51
|
+
transition: all 0.15s;
|
|
52
|
+
}
|
|
53
|
+
.admin-bar-menu-item:hover {
|
|
54
|
+
background: rgba(255,255,255,0.1);
|
|
55
|
+
color: #fff;
|
|
56
|
+
}
|
|
57
|
+
.admin-bar-menu-item svg { width: 18px; height: 18px; }
|
|
58
|
+
.admin-bar-right { gap: 0.75rem; }
|
|
59
|
+
.notifications-btn {
|
|
60
|
+
position: relative;
|
|
61
|
+
background: none;
|
|
62
|
+
border: none;
|
|
63
|
+
color: rgba(255,255,255,0.7);
|
|
64
|
+
padding: 0.375rem;
|
|
65
|
+
border-radius: 0.375rem;
|
|
66
|
+
cursor: pointer;
|
|
67
|
+
transition: all 0.15s;
|
|
68
|
+
}
|
|
69
|
+
.notifications-btn:hover { background: rgba(255,255,255,0.1); color: #fff; }
|
|
70
|
+
.notifications-badge {
|
|
71
|
+
position: absolute;
|
|
72
|
+
top: 2px;
|
|
73
|
+
right: 2px;
|
|
74
|
+
min-width: 16px;
|
|
75
|
+
height: 16px;
|
|
76
|
+
background: #EF4444;
|
|
77
|
+
color: #fff;
|
|
78
|
+
font-size: 0.625rem;
|
|
79
|
+
font-weight: 600;
|
|
80
|
+
border-radius: 9999px;
|
|
81
|
+
display: flex;
|
|
82
|
+
align-items: center;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
padding: 0 4px;
|
|
85
|
+
}
|
|
86
|
+
.notifications-dropdown { position: relative; }
|
|
87
|
+
.lang-dropdown {
|
|
88
|
+
position: relative;
|
|
89
|
+
display: flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
}
|
|
92
|
+
.lang-dropdown > .notifications-btn {
|
|
93
|
+
display: inline-flex;
|
|
94
|
+
align-items: center;
|
|
95
|
+
justify-content: center;
|
|
96
|
+
gap: 0.4rem;
|
|
97
|
+
min-height: 32px;
|
|
98
|
+
line-height: 1;
|
|
99
|
+
white-space: nowrap;
|
|
100
|
+
}
|
|
101
|
+
.notifications-panel {
|
|
102
|
+
position: absolute;
|
|
103
|
+
top: calc(100% + 0.5rem);
|
|
104
|
+
right: 0;
|
|
105
|
+
min-width: 280px;
|
|
106
|
+
max-width: 90vw;
|
|
107
|
+
background: #FFFFFF;
|
|
108
|
+
border: 1px solid #DCDCDE;
|
|
109
|
+
border-radius: 0.5rem;
|
|
110
|
+
box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
|
|
111
|
+
z-index: 2100;
|
|
112
|
+
overflow: hidden;
|
|
113
|
+
animation: slideIn 0.15s ease-out;
|
|
114
|
+
}
|
|
115
|
+
.notifications-header {
|
|
116
|
+
padding: 0.75rem 1rem;
|
|
117
|
+
font-size: 0.6875rem;
|
|
118
|
+
font-weight: 600;
|
|
119
|
+
text-transform: uppercase;
|
|
120
|
+
letter-spacing: 0.04em;
|
|
121
|
+
color: #646970;
|
|
122
|
+
border-bottom: 1px solid #DCDCDE;
|
|
123
|
+
}
|
|
124
|
+
.notifications-item {
|
|
125
|
+
display: flex;
|
|
126
|
+
flex-direction: column;
|
|
127
|
+
gap: 0.125rem;
|
|
128
|
+
padding: 0.625rem 1rem;
|
|
129
|
+
border-bottom: 1px solid #F6F7F7;
|
|
130
|
+
}
|
|
131
|
+
.notifications-item:last-child { border-bottom: none; }
|
|
132
|
+
.notifications-action {
|
|
133
|
+
font-size: 0.8125rem;
|
|
134
|
+
font-weight: 600;
|
|
135
|
+
color: #2C3338;
|
|
136
|
+
font-family: ui-monospace, SFMono-Regular, monospace;
|
|
137
|
+
word-break: break-word;
|
|
138
|
+
}
|
|
139
|
+
.notifications-meta {
|
|
140
|
+
display: flex;
|
|
141
|
+
justify-content: space-between;
|
|
142
|
+
gap: 0.75rem;
|
|
143
|
+
font-size: 0.6875rem;
|
|
144
|
+
color: #646970;
|
|
145
|
+
}
|
|
146
|
+
.notifications-empty { padding: 1rem; margin: 0; font-size: 0.8125rem; color: #646970; }
|
|
147
|
+
.user-menu-trigger {
|
|
148
|
+
display: flex;
|
|
149
|
+
align-items: center;
|
|
150
|
+
gap: 0.5rem;
|
|
151
|
+
background: none;
|
|
152
|
+
border: none;
|
|
153
|
+
color: #fff;
|
|
154
|
+
padding: 0.375rem 0.75rem;
|
|
155
|
+
border-radius: 0.375rem;
|
|
156
|
+
cursor: pointer;
|
|
157
|
+
font-size: 0.8125rem;
|
|
158
|
+
font-weight: 500;
|
|
159
|
+
transition: background 0.15s;
|
|
160
|
+
}
|
|
161
|
+
.user-menu-trigger:hover { background: rgba(255,255,255,0.1); }
|
|
162
|
+
.user-avatar {
|
|
163
|
+
width: 32px;
|
|
164
|
+
height: 32px;
|
|
165
|
+
border-radius: 50%;
|
|
166
|
+
background: linear-gradient(135deg, #D8B45E 0%, #B99542 100%);
|
|
167
|
+
display: flex;
|
|
168
|
+
align-items: center;
|
|
169
|
+
justify-content: center;
|
|
170
|
+
font-weight: 600;
|
|
171
|
+
font-size: 0.875rem;
|
|
172
|
+
color: #0A0A0A;
|
|
173
|
+
}
|
|
174
|
+
.user-menu-dropdown {
|
|
175
|
+
position: absolute;
|
|
176
|
+
top: calc(100% + 0.5rem);
|
|
177
|
+
right: 0;
|
|
178
|
+
min-width: 200px;
|
|
179
|
+
background: #FFFFFF;
|
|
180
|
+
border: 1px solid #DCDCDE;
|
|
181
|
+
border-radius: 0.5rem;
|
|
182
|
+
box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
|
|
183
|
+
z-index: 2100;
|
|
184
|
+
overflow: hidden;
|
|
185
|
+
animation: slideIn 0.15s ease-out;
|
|
186
|
+
}
|
|
187
|
+
@keyframes slideIn { from { opacity: 0; transform: translateY(-0.5rem); } to { opacity: 1; transform: translateY(0); } }
|
|
188
|
+
.user-menu-header {
|
|
189
|
+
padding: 1rem;
|
|
190
|
+
border-bottom: 1px solid #DCDCDE;
|
|
191
|
+
}
|
|
192
|
+
.user-menu-name { font-weight: 600; color: #0A0A0A; font-size: 0.875rem; }
|
|
193
|
+
.user-menu-email { color: #646970; font-size: 0.75rem; margin-top: 0.125rem; }
|
|
194
|
+
.user-menu-divider { height: 1px; background: #DCDCDE; }
|
|
195
|
+
.user-menu-item {
|
|
196
|
+
display: flex;
|
|
197
|
+
align-items: center;
|
|
198
|
+
gap: 0.5rem;
|
|
199
|
+
width: 100%;
|
|
200
|
+
padding: 0.625rem 1rem;
|
|
201
|
+
background: none;
|
|
202
|
+
border: none;
|
|
203
|
+
color: #2C3338;
|
|
204
|
+
font-size: 0.8125rem;
|
|
205
|
+
font-weight: 500;
|
|
206
|
+
text-align: left;
|
|
207
|
+
cursor: pointer;
|
|
208
|
+
transition: background 0.15s;
|
|
209
|
+
}
|
|
210
|
+
.user-menu-item:hover { background: #F6F7F7; }
|
|
211
|
+
.user-menu-item svg { width: 18px; height: 18px; color: #646970; }
|
|
212
|
+
.user-menu-item.danger { color: #EF4444; }
|
|
213
|
+
.user-menu-item.danger:hover { background: #FEF2F2; }
|
|
214
|
+
.lang-menu-dropdown {
|
|
215
|
+
position: absolute;
|
|
216
|
+
top: calc(100% + 0.5rem);
|
|
217
|
+
right: 0;
|
|
218
|
+
min-width: 192px;
|
|
219
|
+
max-height: min(18rem, calc(100vh - 3.5rem));
|
|
220
|
+
background: #FFFFFF;
|
|
221
|
+
border: 1px solid #DCDCDE;
|
|
222
|
+
border-radius: 0.5rem;
|
|
223
|
+
box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
|
|
224
|
+
z-index: 2100;
|
|
225
|
+
overflow-x: hidden;
|
|
226
|
+
overflow-y: auto;
|
|
227
|
+
overscroll-behavior: contain;
|
|
228
|
+
scrollbar-gutter: stable;
|
|
229
|
+
animation: slideIn 0.15s ease-out;
|
|
230
|
+
}
|
|
231
|
+
@keyframes slideIn { from { opacity: 0; transform: translateY(-0.5rem); } to { opacity: 1; transform: translateY(0); } }
|
|
232
|
+
.lang-menu-item {
|
|
233
|
+
display: flex;
|
|
234
|
+
align-items: center;
|
|
235
|
+
gap: 0.5rem;
|
|
236
|
+
width: 100%;
|
|
237
|
+
padding: 0.625rem 1rem;
|
|
238
|
+
background: none;
|
|
239
|
+
border: none;
|
|
240
|
+
color: #2C3338;
|
|
241
|
+
font-size: 0.8125rem;
|
|
242
|
+
font-weight: 500;
|
|
243
|
+
text-align: left;
|
|
244
|
+
cursor: pointer;
|
|
245
|
+
min-height: 36px;
|
|
246
|
+
}
|
|
247
|
+
.lang-menu-item:hover { background: #F6F7F7; }
|
|
248
|
+
.lang-menu-item.active { background: #FAF5E8; color: #B99542; font-weight: 600; }
|
|
249
|
+
.lang-menu-item .flag { font-size: 1rem; }
|
|
250
|
+
@media (max-width: 782px) {
|
|
251
|
+
.admin-bar-menu { display: none; }
|
|
252
|
+
}
|
|
253
|
+
`),y=a(`<span class=notifications-badge>`),b=a(`<div class=notifications-panel role=menu><div class=notifications-header></div><!$><!/>`),ee=a(`<div class=lang-menu-dropdown role=menu>`),te=a(`<div class=user-menu-dropdown role=menu><div class=user-menu-header><div class=user-menu-name></div><div class=user-menu-email></div></div><div class=user-menu-divider></div><button class=user-menu-item type=button role=menuitem><svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 aria-hidden=true><circle cx=12 cy=12 r=3></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg><!$><!/></button><div class=user-menu-divider></div><button class="user-menu-item danger"type=button role=menuitem><svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 aria-hidden=true><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path><polyline points="16 17 21 12 16 7"></polyline><line x1=21 y1=12 x2=9 y2=12></line></svg><!$><!/>`),ne=a(`<div class=user-menu-dropdown-wrapper><button class=user-menu-trigger type=button><span class=user-avatar></span><span></span><svg class=chevron width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 aria-hidden=true><path d="M6 9l6 6 6-6"></path></svg></button><!$><!/>`),re=a(`<a href=/login class="btn btn-primary"style="padding:0.375rem 1rem;font-size:0.8125rem">`),ie=a(`<header id=admin-bar role=banner><div class=admin-bar-left><a href=/ class=admin-bar-brand><img src=/logo-horizontal.svg width=86 height=28 alt></a><div class=admin-bar-separator></div><nav class=admin-bar-menu><a href=/content/post class=admin-bar-menu-item><svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 aria-hidden=true><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1=16 y1=13 x2=8 y2=13></line><line x1=16 y1=17 x2=8 y2=17></line></svg><!$><!/></a><a href=/media class=admin-bar-menu-item><svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 aria-hidden=true><rect x=3 y=3 width=18 height=18 rx=2 ry=2></rect><circle cx=8.5 cy=8.5 r=1.5></circle><polyline points="21 15 16 10 5 21"></polyline></svg><!$><!/></a><a href=/settings class=admin-bar-menu-item><svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 aria-hidden=true><circle cx=12 cy=12 r=3></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg><!$><!/></a></nav></div><div class=admin-bar-right><div class=notifications-dropdown><button class=notifications-btn type=button><svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 aria-hidden=true><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"></path><path d="M13.73 21a2 2 0 0 1-3.46 0"></path></svg><!$><!/></button><!$><!/></div><div class=lang-dropdown><button class=notifications-btn><span class=flag></span><span></span><svg class=chevron width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 aria-hidden=true><path d="M6 9l6 6 6-6"></path></svg></button><!$><!/></div><!$><!/><!$><!/><button class=sidebar-toggle type=button style=background:none;border:none;color:rgba(255,255,255,0.7);padding:0.375rem;border-radius:0.375rem;cursor:pointer;display:flex;align-items:center;justify-content:center><svg width=24 height=24 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 aria-hidden=true><line x1=3 y1=12 x2=21 y2=12></line><line x1=3 y1=6 x2=21 y2=6></line><line x1=3 y1=18 x2=21 y2=18>`),x=a(`<p class=notifications-empty>`),S=a(`<div class=notifications-item role=menuitem><span class=notifications-action></span><span class=notifications-meta><span class=notifications-resource></span><span class=notifications-time>`),C=a(`<button type=button role=menuitem><span class=flag></span><!$><!/>`);function w(a){let{locale:o,changeLocale:w,t:T}=h(),[E,D]=n(a.user??null),[O,k]=n(!1),[A,j]=n(!1),[M,N]=n(!1),[P,F]=n([]),I=()=>o(),L=T,R=e=>{e.target.closest(`#admin-bar`)||(k(!1),j(!1),N(!1))};e(()=>{if(typeof document<`u`)return document.addEventListener(`click`,R),(async()=>{if(!a.user)try{let e=await _.getMe();D(e.user)}catch{}})(),(async()=>{try{let e=await _.getAuditLogs(8);F(e.data??[])}catch{F([])}})(),()=>document.removeEventListener(`click`,R)});let ae=e=>{if(!e)return``;let t=new Date(e);if(Number.isNaN(t.getTime()))return``;let n=Date.now()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return L(`activity.justNow`);if(r<60)return`${r} ${L(`activity.minAgo`)}`;let i=Math.floor(n/36e5);if(i<24)return`${i}h ${L(`activity.ago`)}`;let a=Math.floor(n/864e5);return a<7?`${a}d ${L(`activity.ago`)}`:t.toLocaleDateString(`pt-BR`,{day:`2-digit`,month:`2-digit`,year:`numeric`})},oe=async()=>{try{await _.logout()}catch{}window.location.href=`/login`},z=()=>{document.body.classList.toggle(`sidebar-collapsed`),localStorage.setItem(`sidebar-collapsed`,document.body.classList.contains(`sidebar-collapsed`).toString())};return[u(v),(()=>{var e=u(ie),n=e.firstChild,a=n.firstChild,o=a.nextSibling.nextSibling,h=o.firstChild,_=h.firstChild.nextSibling,[v,D]=f(_.nextSibling),F=h.nextSibling,L=F.firstChild.nextSibling,[R,B]=f(L.nextSibling),V=F.nextSibling,H=V.firstChild.nextSibling,[U,W]=f(H.nextSibling),G=n.nextSibling,K=G.firstChild,q=K.firstChild,se=q.firstChild.nextSibling,[ce,le]=f(se.nextSibling),ue=q.nextSibling,[de,fe]=f(ue.nextSibling),J=K.nextSibling,Y=J.firstChild,X=Y.firstChild,pe=X.nextSibling,me=Y.nextSibling,[he,ge]=f(me.nextSibling),_e=J.nextSibling,[Z,ve]=f(_e.nextSibling),ye=Z.nextSibling,[Q,be]=f(ye.nextSibling),$=Q.nextSibling;return l(h,()=>T(`layout.nav.content`),v,D),l(F,()=>T(`layout.nav.media`),R,B),l(V,()=>T(`layout.nav.settings`),U,W),q.$$click=()=>N(!M()),l(q,r(t,{get when(){return P().length>0},get children(){var e=u(y);return l(e,()=>P().length),e}}),ce,le),l(K,r(t,{get when(){return M()},get children(){var e=u(b),n=e.firstChild,a=n.nextSibling,[o,s]=f(a.nextSibling);return l(n,()=>T(`adminBar.notifications`)),l(e,r(t,{get when(){return P().length>0},get fallback(){return(()=>{var e=u(x);return l(e,()=>T(`adminBar.notificationsEmpty`)),e})()},get children(){return P().map(e=>(()=>{var t=u(S),n=t.firstChild,r=n.nextSibling.firstChild,i=r.nextSibling;return l(n,()=>e.action),l(r,()=>e.resourceType),l(i,()=>ae(e.created_at)),t})())}}),o,s),i(()=>d(e,`aria-label`,T(`adminBar.notifications`))),e}}),de,fe),Y.$$click=()=>j(!A()),l(X,()=>m[I()]??`🌐`),l(pe,()=>p[I()]??I()),l(J,r(t,{get when(){return A()},get children(){var e=u(ee);return l(e,()=>g.map(e=>(()=>{var t=u(C),n=t.firstChild,r=n.nextSibling,[a,o]=f(r.nextSibling);return t.$$click=()=>{w(e),j(!1)},l(n,()=>m[e]??`🌐`),l(t,()=>p[e]??e,a,o),i(()=>c(t,I()===e?`lang-menu-item active`:`lang-menu-item`)),s(),t})())),i(()=>d(e,`aria-label`,T(`common.language`))),e}}),he,ge),l(G,r(t,{get when(){return E()},get children(){var e=u(ne),n=e.firstChild,a=n.firstChild,o=a.nextSibling,c=n.nextSibling,[p,m]=f(c.nextSibling);return n.$$click=()=>k(!O()),l(a,()=>E()?.name?.charAt(0).toUpperCase()??`U`),l(o,()=>E()?.name),l(e,r(t,{get when(){return O()},get children(){var e=u(te),t=e.firstChild,n=t.firstChild,r=n.nextSibling,a=t.nextSibling.nextSibling,o=a.firstChild.nextSibling,[c,p]=f(o.nextSibling),m=a.nextSibling.nextSibling,h=m.firstChild.nextSibling,[g,_]=f(h.nextSibling);return l(n,()=>E()?.name),l(r,()=>E()?.email),a.$$click=()=>{window.location.href=`/settings`,k(!1)},l(a,()=>T(`adminBar.settings`),c,p),m.$$click=oe,l(m,()=>T(`layout.actions.logout`),g,_),i(()=>d(e,`aria-label`,T(`adminBar.userMenu`))),s(),e}}),p,m),i(e=>{var t=T(`adminBar.userMenu`),r=O();return t!==e.e&&d(n,`aria-label`,e.e=t),r!==e.t&&d(n,`aria-expanded`,e.t=r),e},{e:void 0,t:void 0}),s(),e}}),Z,ve),l(G,r(t,{get when(){return!E()},get children(){var e=u(re);return l(e,()=>T(`login.submit`)),e}}),Q,be),$.$$click=z,i(e=>{var t=T(`layout.appName`),n=T(`adminBar.mainMenu`),r=T(`adminBar.notifications`),i=M(),s=T(`common.language`),c=A(),l=T(`adminBar.toggleSidebar`);return t!==e.e&&d(a,`aria-label`,e.e=t),n!==e.t&&d(o,`aria-label`,e.t=n),r!==e.a&&d(q,`aria-label`,e.a=r),i!==e.o&&d(q,`aria-expanded`,e.o=i),s!==e.i&&d(Y,`aria-label`,e.i=s),c!==e.n&&d(Y,`aria-expanded`,e.n=c),l!==e.s&&d($,`aria-label`,e.s=l),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),s(),e})()]}o([`click`]);export{w as AdminBar};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{S as e,a as t,h as n,l as r,p as i,r as a}from"./solid.Ck4Vtfe4.js";import{_ as o,a as s,f as c,l,m as u,o as d,p as f,s as p,u as m}from"./web.DD6VKaIp.js";import{n as h}from"./i18n.LMZI7jyc.js";import{n as g}from"./api.B03e8F6d.js";import{t as _}from"./Modal.CPaZJlDP.js";var v=o(`<div class="notice notice--error">`),y=o(`<div class="notice notice--success">`),b=o(`<section class=card><h3></h3><form class=resource-form><label><!$><!/><input class=input required type=text></label><label><!$><!/><select class=input></select></label><label><!$><!/><input class=input type=datetime-local></label><label class=checkbox-label><input type=checkbox> <!$><!/></label><p class=muted></p><div><button class="btn btn-primary"type=submit></button> <button class=btn type=button>`),x=o(`<div class=table-scroll><table class=table><thead><tr><th></th><th></th><th></th><th></th><th></th><th></th></tr></thead><tbody>`),S=o(`<div class=modal-body><div class="notice notice--error"></div><label><!$><!/><input class=input readonly type=text data-testid=api-key-plaintext></label><p class=muted></p><pre class=api-key-sample><code></code></pre><div><button class="btn btn-primary"type=button></button> <button class=btn type=button>`),C=o(`<div class="resource-hub api-keys-manager"><!$><!/><!$><!/><div class=card-header-row><div><h3></h3><p class=muted></p></div><button class="btn btn-primary"type=button></button></div><!$><!/><section class=card></section><!$><!/><style>.api-key-sample{background:var(--color-surface-muted,#f5f5f5);border:1px solid var(--color-border,#dcdcde);border-radius:4px;padding:.6rem;overflow:auto;font-size:.8rem;white-space:pre-wrap;word-break:break-all}.api-keys-manager .modal-body{display:grid;gap:.75rem;padding:1rem}`),w=o(`<option value>`),T=o(`<option><!$><!/> (<!$><!/>)`),E=o(`<p>`),D=o(`<span>`),O=o(`<button class="btn btn-danger"type=button>`),k=o(`<tr><td></td><td></td><td><code>okcms_<!$><!/>_…</code></td><td></td><td></td><td>`),A=o(`<span class="notice notice--error">`),j=e=>({name:``,userId:e,oneTime:!1,expiresAt:``});function M(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?`—`:t.toLocaleString()}function N(){let{t:o}=h(),[s,N]=n([]),[P,F]=n([]),[I,L]=n(null),[R,z]=n(null),[B,V]=n(``),[H,U]=n(``),[W,G]=n(!0),[K,q]=n(!1),J=async()=>{G(!0);try{let e=await g.getApiKeys();N(e)}catch(e){V(e instanceof Error?e.message:String(e))}finally{G(!1)}};e(()=>{J(),g.listUsers({limit:100,status:`ACTIVE`}).then(e=>F(e.data??[])).catch(()=>F([]))});let Y=()=>{V(``),U(``),L(j(P()[0]?.id??``))},ee=async e=>{e.preventDefault();let t=I();if(t){if(!t.name.trim()){V(o(`apiKeys.errors.nameRequired`));return}try{let e={name:t.name.trim(),oneTime:t.oneTime};t.userId&&(e.userId=t.userId),t.expiresAt&&(e.expiresAt=new Date(t.expiresAt).toISOString());let n=await g.createApiKey(e);L(null),z(n),q(!1),await J()}catch(e){V(e instanceof Error?e.message:String(e))}}},te=async e=>{if(e.id){V(``);try{await g.deleteApiKey(e.id),U(o(`apiKeys.revoked`)),await J()}catch(e){V(e instanceof Error?e.message:String(e))}}},ne=async()=>{let e=R()?.plaintext;if(e)try{await navigator.clipboard.writeText(e),q(!0)}catch{q(!1)}},X=()=>{z(null),q(!1)},re=e=>{let t=P().find(t=>t.id===e.user_id);return t?t.name:e.user_id??`—`};return(()=>{var e=d(C),n=e.firstChild,[h,g]=p(n.nextSibling),j=h.nextSibling,[N,F]=p(j.nextSibling),z=N.nextSibling,V=z.firstChild,U=V.firstChild,G=U.nextSibling,q=V.nextSibling,J=z.nextSibling,[Z,ie]=p(J.nextSibling),Q=Z.nextSibling,ae=Q.nextSibling,[$,oe]=p(ae.nextSibling);return $.nextSibling,l(e,r(t,{get when(){return B()},get children(){var e=d(v);return l(e,B),e}}),h,g),l(e,r(t,{get when(){return H()},get children(){var e=d(y);return l(e,H),e}}),N,F),l(U,()=>o(`apiKeys.listTitle`)),l(G,()=>o(`apiKeys.howItWorks`)),q.$$click=Y,l(q,()=>o(`apiKeys.new`)),l(e,r(t,{get when(){return I()},get children(){var e=d(b),n=e.firstChild,s=n.nextSibling,m=s.firstChild,h=m.firstChild,[g,_]=p(h.nextSibling),v=g.nextSibling,y=m.nextSibling,x=y.firstChild,[S,C]=p(x.nextSibling),E=S.nextSibling,D=y.nextSibling,O=D.firstChild,[k,A]=p(O.nextSibling),j=k.nextSibling,M=D.nextSibling,N=M.firstChild,F=N.nextSibling.nextSibling,[R,z]=p(F.nextSibling),B=M.nextSibling,V=B.nextSibling.firstChild,H=V.nextSibling.nextSibling;return l(n,()=>o(`apiKeys.create`)),s.addEventListener(`submit`,ee),l(m,()=>o(`apiKeys.form.name`),g,_),v.$$input=e=>I()&&L({...I(),name:e.currentTarget.value}),l(y,()=>o(`apiKeys.form.user`),S,C),E.addEventListener(`change`,e=>I()&&L({...I(),userId:e.currentTarget.value})),l(E,r(t,{get when(){return P().length>0},get fallback(){return(()=>{var e=d(w);return l(e,()=>o(`apiKeys.form.currentUser`)),e})()},get children(){return r(a,{get each(){return P()},children:e=>(()=>{var t=d(T),n=t.firstChild,[r,a]=p(n.nextSibling),o=r.nextSibling.nextSibling,[s,c]=p(o.nextSibling);return s.nextSibling,l(t,()=>e.name,r,a),l(t,()=>e.email,s,c),i(()=>u(t,`value`,e.id)),t})()})}})),l(D,()=>o(`apiKeys.form.expiresAt`),k,A),j.$$input=e=>I()&&L({...I(),expiresAt:e.currentTarget.value}),N.addEventListener(`change`,e=>I()&&L({...I(),oneTime:e.currentTarget.checked})),l(M,()=>o(`apiKeys.form.oneTime`),R,z),l(B,()=>o(`apiKeys.form.oneTimeHint`)),l(V,()=>o(`apiKeys.createSubmit`)),H.$$click=()=>L(null),l(H,()=>o(`common.cancel`)),i(()=>f(v,`placeholder`,o(`apiKeys.form.namePlaceholder`))),i(()=>u(v,`value`,I()?.name??``)),i(()=>u(E,`value`,I()?.userId??``)),i(()=>u(j,`value`,I()?.expiresAt??``)),i(()=>u(N,`checked`,I()?.oneTime??!1)),c(),e}}),Z,ie),l(Q,r(t,{get when(){return!W()},get fallback(){return(()=>{var e=d(E);return l(e,()=>o(`apiKeys.loading`)),e})()},get children(){return r(t,{get when(){return s().length>0},get fallback(){return(()=>{var e=d(E);return l(e,()=>o(`apiKeys.empty`)),e})()},get children(){var e=d(x),n=e.firstChild.firstChild,i=n.firstChild.firstChild,u=i.nextSibling,f=u.nextSibling,h=f.nextSibling,g=h.nextSibling,_=g.nextSibling,v=n.nextSibling;return l(i,()=>o(`apiKeys.form.name`)),l(u,()=>o(`apiKeys.form.user`)),l(f,()=>o(`apiKeys.prefix`)),l(h,()=>o(`apiKeys.lastUsed`)),l(g,()=>o(`apiKeys.status`)),l(_,()=>o(`common.actions`)),l(v,r(a,{get each(){return s()},children:e=>(()=>{var n=d(k),i=n.firstChild,a=i.nextSibling,s=a.nextSibling,u=s.firstChild,f=u.firstChild.nextSibling,[h,g]=p(f.nextSibling);h.nextSibling;var _=s.nextSibling,v=_.nextSibling,y=v.nextSibling;return l(i,()=>e.name),l(a,()=>re(e)),l(u,()=>e.key_prefix,h,g),l(_,(()=>{var t=m(()=>!!e.last_used_at);return()=>t()?M(e.last_used_at):o(`apiKeys.neverUsed`)})()),l(v,r(t,{get when(){return!e.revoked_at},get fallback(){return(()=>{var e=d(A);return l(e,()=>o(`apiKeys.status.revoked`)),e})()},get children(){return r(t,{get when(){return m(()=>!!e.expires_at)()&&new Date(e.expires_at).getTime()<=Date.now()},get fallback(){return(()=>{var t=d(D);return l(t,(()=>{var t=m(()=>!!e.one_time);return()=>t()?o(`apiKeys.status.oneTime`):o(`apiKeys.status.active`)})()),t})()},get children(){var e=d(D);return l(e,()=>o(`apiKeys.status.expired`)),e}})}})),l(y,r(t,{get when(){return!e.revoked_at},get children(){var t=d(O);return t.$$click=()=>void te(e),l(t,()=>o(`apiKeys.revoke`)),c(),t}})),n})()})),e}})}})),l(e,r(_,{get open(){return!!R()},onClose:X,get title(){return o(`apiKeys.created.title`)},get children(){var e=d(S),t=e.firstChild,n=t.nextSibling,r=n.firstChild,[a,s]=p(r.nextSibling),f=a.nextSibling,h=n.nextSibling,g=h.nextSibling,_=g.firstChild,v=g.nextSibling.firstChild,y=v.nextSibling.nextSibling;return l(t,()=>o(`apiKeys.created.warning`)),l(n,()=>o(`apiKeys.created.value`),a,s),f.addEventListener(`focus`,e=>e.currentTarget.select()),l(h,()=>o(`apiKeys.created.howToUse`)),l(_,()=>`POST /api/v1/auth/api-key-login\n{ "apiKey": "${R()?.plaintext??``}" }`),v.$$click=()=>void ne(),l(v,(()=>{var e=m(()=>!!K());return()=>e()?o(`apiKeys.created.copied`):o(`apiKeys.created.copy`)})()),y.$$click=X,l(y,()=>o(`common.close`)),i(()=>u(f,`value`,R()?.plaintext??``)),c(),e}}),$,oe),c(),e})()}s([`click`,`input`]);export{N as ApiKeysManager};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{S as e,a as t,h as n,l as r,p as i}from"./solid.Ck4Vtfe4.js";import{_ as a,g as o,i as s,l as c,o as l,p as u}from"./web.DD6VKaIp.js";import{n as d}from"./i18n.LMZI7jyc.js";import{n as f}from"./api.B03e8F6d.js";var p=a(`<div><div class=dashboard-widget-header><h3 class=dashboard-widget-title></h3></div><div class=dashboard-widget-content></div><style>
|
|
2
2
|
.dashboard-widget {
|
|
3
3
|
background: var(--color-surface);
|
|
4
4
|
border: 1px solid var(--color-border);
|
|
@@ -16,7 +16,7 @@ import{d as e,i as t,p as n,s as r,y as i}from"./solid.D49dPDCT.js";import{a,c a
|
|
|
16
16
|
}
|
|
17
17
|
.dashboard-widget-title { font-size: 0.875rem; font-weight: 600; color: var(--color-text); }
|
|
18
18
|
.dashboard-widget-content { padding: 1.25rem; flex: 1; }
|
|
19
|
-
`),m=
|
|
19
|
+
`),m=a(`<div class=stat-grid><div class=stat-item><span class=stat-label></span><div class=stat-values><span class="stat-value published"></span><span class=stat-separator>/</span><span class="stat-value draft"></span><span class=stat-separator>/</span><span class="stat-value trash"></span></div><span class=stat-desc></span></div><div class=stat-item><span class=stat-label></span><div class=stat-values><span class="stat-value published"></span><span class=stat-separator>/</span><span class="stat-value draft"></span><span class=stat-separator>/</span><span class="stat-value trash"></span></div><span class=stat-desc></span></div><div class=stat-item><span class=stat-label></span><div class=stat-values><span class="stat-value total"></span></div><span class=stat-desc></span></div><div class=stat-item><span class=stat-label></span><div class=stat-values><span class="stat-value total"></span><span class=stat-separator>/</span><span class="stat-value active"></span><span class=stat-separator>/</span><span class="stat-value inactive"></span></div><span class=stat-desc></span></div><div class=stat-item><span class=stat-label></span><div class=stat-values><span class="stat-value total">`),h=a(`<style>
|
|
20
20
|
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; }
|
|
21
21
|
.stat-item { display: flex; flex-direction: column; gap: 0.5rem; padding: 1rem; background: var(--color-background); border: 1px solid var(--color-border); border-radius: var(--radius-md); }
|
|
22
22
|
.stat-label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--color-muted); }
|
|
@@ -33,4 +33,4 @@ import{d as e,i as t,p as n,s as r,y as i}from"./solid.D49dPDCT.js";import{a,c a
|
|
|
33
33
|
.stat-value.inactive { color: var(--color-danger); }
|
|
34
34
|
.stat-separator { color: var(--color-muted); }
|
|
35
35
|
.stat-desc { font-size: 0.6875rem; color: var(--color-muted); }
|
|
36
|
-
`),g=
|
|
36
|
+
`),g=a(`<div class="stat-grid skeleton">Loading...`);function _(e){return(()=>{var t=l(p),n=t.firstChild,r=n.firstChild,a=n.nextSibling;return c(r,()=>e.title),c(a,()=>e.children),i(n=>{var r=`dashboard-widget ${e.className||``}`,i=e.panelId,a=`grid-column: span ${e.columns||1}`;return r!==n.e&&s(t,n.e=r),i!==n.t&&u(t,`data-widget-panel`,n.t=i),n.a=o(t,a,n.a),n},{e:void 0,t:void 0,a:void 0}),t})()}function v(e){if(e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1),r=e/1024**n;return`${r>=100||n===0?Math.round(r):r.toFixed(1)} ${t[n]}`}function y(){let{t:i}=d(),[a,o]=n(null),[s,u]=n(!0);return e(async()=>{try{let[e,t,n]=await Promise.all([f.getContent({limit:1e3}),f.listMedia({limit:1e3}),f.listUsers({limit:1e3})]),r=e.data??[],i=t.data??[],a=n.data??[],s=i.reduce((e,t)=>e+(Number(t.size)||0),0);o({posts:{published:r.filter(e=>e.type===`post`&&e.status===`PUBLISHED`).length,drafts:r.filter(e=>e.type===`post`&&e.status===`DRAFT`).length,trash:r.filter(e=>e.type===`post`&&e.status===`TRASHED`).length},pages:{published:r.filter(e=>e.type===`page`&&e.status===`PUBLISHED`).length,drafts:r.filter(e=>e.type===`page`&&e.status===`DRAFT`).length,trash:r.filter(e=>e.type===`page`&&e.status===`TRASHED`).length},media:{total:t.total??i.length},users:{total:a.length,active:a.filter(e=>e.status===`ACTIVE`).length,inactive:a.filter(e=>e.status===`INACTIVE`).length},storage:{used:v(s)}})}catch(e){console.error(`Failed to load At Glance stats:`,e)}finally{u(!1)}}),r(_,{get title(){return i(`dashboard.widgets.atGlance`)},panelId:`at-glance`,get children(){return[r(t,{get when(){return s()},get fallback(){return l(g)},get children(){var e=l(m),t=e.firstChild,n=t.firstChild,r=n.nextSibling,o=r.firstChild,s=o.nextSibling.nextSibling,u=s.nextSibling.nextSibling,d=r.nextSibling,f=t.nextSibling,p=f.firstChild,h=p.nextSibling,g=h.firstChild,_=g.nextSibling.nextSibling,v=_.nextSibling.nextSibling,y=h.nextSibling,b=f.nextSibling,x=b.firstChild,S=x.nextSibling,C=S.firstChild,w=S.nextSibling,T=b.nextSibling,E=T.firstChild,D=E.nextSibling,O=D.firstChild,k=O.nextSibling.nextSibling,A=k.nextSibling.nextSibling,j=D.nextSibling,M=T.nextSibling.firstChild,N=M.nextSibling.firstChild;return c(n,()=>i(`dashboard.widgets.posts`)),c(o,()=>a()?.posts.published??0),c(s,()=>a()?.posts.drafts??0),c(u,()=>a()?.posts.trash??0),c(d,()=>i(`dashboard.widgets.postsDesc`)),c(p,()=>i(`dashboard.widgets.pages`)),c(g,()=>a()?.pages.published??0),c(_,()=>a()?.pages.drafts??0),c(v,()=>a()?.pages.trash??0),c(y,()=>i(`dashboard.widgets.pagesDesc`)),c(x,()=>i(`dashboard.widgets.media`)),c(C,()=>a()?.media.total??0),c(w,()=>i(`dashboard.widgets.mediaDesc`)),c(E,()=>i(`dashboard.widgets.users`)),c(O,()=>a()?.users.total??0),c(k,()=>a()?.users.active??0),c(A,()=>a()?.users.inactive??0),c(j,()=>i(`dashboard.widgets.usersDesc`)),c(M,()=>i(`dashboard.widgets.storage`)),c(N,()=>a()?.storage.used),e}}),l(h)]}})}export{y as AtGlanceWidget,_ as DashboardWidget};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--admin-bar-h:46px;--admin-footer-h:48px;--color-primary:#d8b45e;--color-primary-hover:#b99542;--color-primary-light:#f3e7c5;--color-primary-soft:#faf5e8;--color-primary-contrast:#0a0a0a;--color-ink:#0a0a0a;--color-surface-dark:#171717;--color-white:#fff;--color-background:#f6f7f7;--color-border:#dcdcde;--color-text:#2c3338;--color-muted:#646970;--color-success:#22c55e;--color-success-soft:#22c55e1f;--color-warning:#f59e0b;--color-warning-soft:#f59e0b1f;--color-danger:#ef4444;--color-danger-soft:#ef44441f;--color-error:#ef4444;--color-error-soft:#ef44441f;--color-muted-soft:#eceef0;--color-surface:#fff;--color-surface-hover:#f6f7f7;--color-surface-active:#f3e7c5;--color-surface-muted:#eceef0;--color-bg:#f6f7f7;--color-bg-secondary:#fff;--color-bg-tertiary:#eceef0;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--focus-ring:0 0 0 2px var(--color-primary-soft), 0 0 0 4px var(--color-primary)}*{box-sizing:border-box;margin:0;padding:0}html{color:var(--color-text);background:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}body{min-height:100vh}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}.container{max-width:1280px;margin:0 auto;padding:0 1rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.font-bold{font-weight:600}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-ink)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover{background:var(--color-surface-hover);border-color:var(--color-text)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-white)}.btn-danger:hover{background:#dc2626;border-color:#dc2626}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem}.card-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text);padding:.5rem .75rem;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary);outline:none}.input::placeholder{color:var(--color-muted)}.input:disabled{background:var(--color-background);color:var(--color-muted);cursor:not-allowed}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23646970' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2.5rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.75rem 1rem}.table th{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--color-background);font-size:.75rem;font-weight:600}.table tbody tr:hover{background:var(--color-surface-hover)}.table tbody tr:last-child td{border-bottom:none}.badge{border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em;align-items:center;padding:.1875rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.badge-success{color:#166534;background:#22c55e1a}.badge-warning{color:#854d0e;background:#f59e0b1a}.badge-danger{color:#991b1b;background:#ef44441a}.badge-secondary{background:var(--color-border);color:var(--color-muted)}.badge-primary{background:var(--color-primary-soft);color:var(--color-primary-hover)}.modal-overlay{top:var(--admin-bar-h,46px);bottom:var(--admin-footer-h,48px);backdrop-filter:blur(2px);z-index:1500;background:#0a0a0a99;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;left:0;right:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:100%;box-shadow:var(--shadow-xl);padding:1.5rem;overflow-y:auto}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.toast{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-xl);z-index:1100;padding:.75rem 1rem;animation:.2s ease-out slideIn;position:fixed;bottom:1.5rem;right:1.5rem}@keyframes slideIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.toast-success{border-left:4px solid var(--color-success)}.toast-error{border-left:4px solid var(--color-danger)}.toast-warning{border-left:4px solid var(--color-warning)}.toast-info{border-left:4px solid var(--color-primary)}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:1.25rem;height:1.25rem;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--color-muted);font-size:.875rem}.notice{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);margin-bottom:1rem;padding:.75rem 1rem}.notice--error{border-color:var(--color-danger);color:var(--color-danger);background:#ef44440d}.notice--success{border-color:var(--color-success);color:var(--color-success);background:#22c55e0d}.toolbar{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.toolbar .input{flex:1;min-width:200px}.pagination{justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;display:flex}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1.5rem;transition:border-color .15s,background .15s;display:flex}.upload-zone--active{border-color:var(--color-primary);background:var(--color-primary-soft)}.media-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}.media-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;color:var(--color-text);font:inherit;flex-direction:column;gap:.5rem;padding:.5rem;transition:all .15s;display:flex}.media-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.media-card--selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-soft), 0 0 0 4px var(--color-primary)}.media-card__preview{aspect-ratio:4/3;border-radius:var(--radius-md);background:var(--color-background);justify-content:center;align-items:center;display:flex;overflow:hidden}.media-card__preview img{object-fit:cover;width:100%;height:100%}.media-card__ext{color:var(--color-muted);letter-spacing:.05em;text-align:center;padding:1rem;font-weight:700}.media-card__meta{flex-direction:column;gap:.125rem;display:flex}.media-card__name{white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.media-details{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex;position:sticky;bottom:0}.media-details__preview img{border-radius:var(--radius-lg);object-fit:contain;background:var(--color-background);max-width:100%;max-height:280px}.media-details__list{grid-template-columns:100px 1fr;gap:.35rem .75rem;margin:0;display:grid}.media-details__list dt{color:var(--color-muted);font-size:.8125rem}.media-details__list dd{overflow-wrap:anywhere;margin:0;font-size:.875rem}.media-details__url{align-items:center;gap:.5rem;display:flex}.media-details__url code{background:var(--color-background);border-radius:var(--radius-sm);padding:.125rem .375rem;font-size:.75rem}.media-details__actions{flex-wrap:wrap;gap:.5rem;display:flex}.media-library .modal{max-width:min(1120px,96vw)}.media-modal{flex-direction:column;gap:1rem;display:flex}.media-modal__preview{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-background);justify-content:center;align-items:center;min-height:280px;max-height:460px;display:flex;overflow:hidden}.media-modal__preview img,.media-modal__preview video{object-fit:contain;max-width:100%;max-height:440px}.media-modal__preview audio{width:min(560px,90%)}.media-modal__preview iframe{border:0;width:100%;height:440px}.media-modal__file-icon{font-size:2rem}.media-modal__layout{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:1.25rem;display:grid}.media-modal__fields{flex-direction:column;gap:.75rem;display:flex}.media-modal__textarea{resize:vertical;min-height:120px;font:inherit}.media-modal__facts{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);align-content:start;padding:.85rem}.media-modal__replace{flex-wrap:wrap;align-items:center;gap:.75rem;padding-top:.25rem;display:flex}@media (width<=720px){.media-modal__layout{grid-template-columns:1fr}.media-modal__preview{min-height:200px}}.users-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;overflow:hidden}.users-table th,.users-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.75rem 1rem;font-size:.875rem}.users-table th{background:var(--color-background);color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.users-table tr:last-child td{border-bottom:none}.users-table__row--selected td{background:var(--color-primary-soft)}.users-table__actions{white-space:nowrap;justify-content:flex-end;gap:.375rem;display:flex}.status-dot{background:var(--color-danger);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:.5rem;display:inline-block}.status-dot--active{background:var(--color-success)}.user-details{flex-direction:column;gap:.75rem;margin-top:1.25rem;display:flex}.dashboard-home{flex-direction:column;gap:1.5rem;display:flex}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center;padding:1.5rem;transition:all .15s}.stat-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.stat-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;font-size:.8125rem;font-weight:500}.stat-value{color:var(--color-primary);font-size:2.5rem;font-weight:700;line-height:1.2}.login-page{background:var(--color-background);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:2.5rem 2rem}.login-header{text-align:center;margin-bottom:2rem}.login-header .logo{justify-content:center;align-items:center;margin-bottom:1rem;display:inline-flex}.login-header .logo img{width:96px;height:96px;display:block}.login-header p{color:var(--color-muted);font-size:.9375rem}.login-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--color-text);font-size:.8125rem;font-weight:500}.form-group .input{padding:.625rem .875rem;font-size:.9375rem}.form-group .input::placeholder{color:var(--color-muted)}.form-actions{gap:.5rem;margin-top:.5rem;display:flex}.form-actions .btn{flex:1}.empty-state,.skeleton{text-align:center;color:var(--color-muted);padding:2rem}.login-form .btn-primary{margin-top:.5rem;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600}.login-form .btn-primary:focus-visible{box-shadow:0 0 0 3px var(--color-primary-soft), 0 0 0 5px var(--color-primary)}.error-message{border-radius:var(--radius-md);border:1px solid var(--color-danger);color:var(--color-danger);background:#ef444414;padding:.75rem 1rem;font-size:.875rem}[dir=rtl]{direction:rtl}[dir=rtl] .table th,[dir=rtl] .table td,[dir=rtl] .users-table th,[dir=rtl] .users-table td{text-align:right}[dir=rtl] .toolbar{flex-direction:row-reverse}[dir=rtl] .toolbar .input{text-align:right}[dir=rtl] .form-grid,[dir=rtl] .form-grid label{direction:rtl}[dir=rtl] .card-header,[dir=rtl] .modal-header,[dir=rtl] .toolbar,[dir=rtl] .toolbar{flex-direction:row-reverse}[dir=rtl] .badge{direction:rtl}[dir=rtl] .toast{left:1.5rem;right:auto}[dir=rtl] .media-grid{direction:rtl}[dir=rtl] .media-card__meta{text-align:right}[dir=rtl] .media-details__list{direction:rtl}[dir=rtl] .media-details__url{flex-direction:row-reverse}[dir=rtl] .user-details .form-grid{direction:rtl}[dir=rtl] .user-details .media-details__actions{flex-direction:row-reverse}[dir=rtl] .notice{direction:rtl}[dir=rtl] .pagination{flex-direction:row-reverse}[dir=rtl] input,[dir=rtl] textarea,[dir=rtl] select,[dir=rtl] input::placeholder,[dir=rtl] textarea::placeholder{text-align:right}[dir=rtl] .chevron{transform:scaleX(-1)}[dir=rtl] .language-trigger[aria-expanded=true] .chevron{transform:scaleX(-1)rotate(180deg)}[dir=rtl] .users-table__actions{justify-content:flex-start}[dir=rtl] .media-details__actions{flex-direction:row-reverse}[dir=rtl] .media-details__preview{margin-left:auto;margin-right:0}[dir=rtl] .login-card{direction:rtl}[dir=rtl] .login-form .form-group label,[dir=rtl] .login-header{text-align:right}[dir=rtl] .settings-cards{direction:rtl}[dir=rtl] .settings-card{text-align:right}[dir=rtl] .action-card,[dir=rtl] .media-card__name{direction:rtl}[dir=rtl] .login-form .form-group{text-align:right}[dir=rtl] select.input{background-position:.75rem;padding-left:2.5rem;padding-right:.75rem}[dir=rtl] .status-dot{margin-left:.4rem;margin-right:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}.resource-hub{gap:1rem;display:grid}.resource-tabs,.resource-actions{flex-wrap:wrap;gap:.5rem;display:flex}.resource-form,.term-form{gap:.75rem;margin:1rem 0;display:grid}.resource-form label{gap:.35rem;display:grid}.resource-form textarea,.term-form{width:100%}.card-header-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.card-header-row p{color:var(--color-muted);margin:.35rem 0 0}.logs-retention-form{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.logs-retention-form label{min-width:220px}.logs-filters{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.logs-filters .input{min-width:200px}.table-scroll{overflow-x:auto}.webhooks-manager select[multiple]{min-height:9rem}.webhooks-manager .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.access-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1rem;display:grid}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;padding:.65rem}.terms-panel{gap:.75rem;display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.form-grid label{align-content:start;gap:.35rem;display:grid}.form-grid label.checkbox-label{align-items:center;gap:.5rem;margin-top:1.5rem;display:flex}.form-grid>label:last-child{align-self:end}.supports{flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:1rem;display:flex}.supports label{align-items:center;gap:.4rem;display:flex}.post-types-manager,.taxonomies-manager{grid-template-columns:minmax(280px,340px) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.post-types-manager>.notice,.taxonomies-manager>.notice{grid-column:1/-1}.settings-table-card{padding:0;overflow:hidden}.settings-table-card .table th{background:var(--color-bg-tertiary);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.settings-table-card .table td{padding:.65rem .75rem}@media (width<=1100px){.post-types-manager,.taxonomies-manager{grid-template-columns:1fr}}.resource-form label.checkbox-label,label.checkbox-label{align-items:center;gap:.5rem;font-weight:500;display:flex}.resource-form label.checkbox-label{margin-top:0}.webhooks-manager .resource-form{max-width:720px}.webhooks-manager .form-grid{margin-bottom:0}.field-type-picker{position:relative}.field-type-picker__trigger{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;font-size:.875rem;display:flex}.field-type-picker__trigger:hover{border-color:var(--color-primary)}.field-type-picker__selected{align-items:center;gap:.5rem;min-width:0;display:inline-flex}.field-type-picker__selected svg,.field-type-picker__selected i{width:16px;height:16px;color:var(--color-primary);flex-shrink:0}.field-type-picker__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:.5rem;max-height:320px;padding:.5rem;display:grid;overflow-y:auto;box-shadow:0 12px 32px #0f0f0f2e}.field-type-picker__search{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;padding:.4rem .6rem;font-size:.85rem}.field-type-picker__group{gap:.1rem;display:grid}.field-type-picker__group-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);padding:.35rem .5rem 0;font-size:.7rem}.field-type-picker__option{border-radius:var(--radius-md);width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;display:flex}.field-type-picker__option:hover{background:var(--color-bg-tertiary)}.field-type-picker__option.is-selected{color:#8a6d1d;background:#d8b45e29;font-weight:600}.field-type-picker__option svg,.field-type-picker__option i{flex-shrink:0;width:15px;height:15px}.field-type-picker__group-label svg,.field-type-picker__group-label i{vertical-align:-2px;width:13px;height:13px;margin-right:.25rem}.field-type-picker__hint{color:var(--color-muted);white-space:nowrap;margin-left:auto;font-size:.7rem}.general-settings__tz{align-content:start;gap:.35rem;display:grid}.tz-select{position:relative}.tz-select__trigger{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.tz-select__value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tz-select__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:.5rem;padding:.5rem;display:grid;box-shadow:0 12px 32px #0f0f0f2e}.tz-select__search{width:100%}.tz-select__options{gap:.1rem;max-height:280px;display:grid;overflow-y:auto}.tz-select__option{border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:0;padding:.4rem .6rem;font-size:.85rem}.tz-select__option:hover{background:var(--color-bg-tertiary)}.tz-select__option.is-selected{color:#8a6d1d;background:#d8b45e29;font-weight:600}.tz-select__empty{color:var(--color-muted);margin:0;padding:.5rem .6rem;font-size:.85rem}.post-types-manager__icon-field{align-self:start}.icon-picker{position:relative}.icon-picker__trigger{cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:.75rem;width:100%;display:flex}.icon-picker__value{align-items:center;gap:.5rem;min-width:0;display:inline-flex}.icon-picker__preview{width:18px;height:18px;color:var(--color-primary);flex-shrink:0;display:inline-flex}.icon-picker__preview svg{width:18px;height:18px;display:block}.icon-picker__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;overflow:hidden}.icon-picker__caret{color:var(--color-muted);flex-shrink:0}.icon-picker__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:.5rem;padding:.5rem;display:grid;box-shadow:0 12px 32px #0f0f0f2e}.icon-picker__search{width:100%}.icon-picker__viewport{contain:layout paint;scrollbar-gutter:stable;height:300px;position:relative;overflow:hidden auto}.icon-picker__grid{width:100%;position:relative}.icon-picker__cell{border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.icon-picker__cell svg{pointer-events:none;width:20px;height:20px;display:block}.icon-picker__cell:hover{background:var(--color-bg-tertiary)}.icon-picker__cell.is-active{outline:2px solid var(--color-primary);outline-offset:-2px}.icon-picker__cell.is-selected{border-color:var(--color-primary);color:#8a6d1d;background:#d8b45e29}.icon-picker__cell:focus-visible{box-shadow:var(--focus-ring);outline:none}.icon-picker__empty{color:var(--color-muted);margin:0;padding:.5rem .6rem;font-size:.85rem}.icon-picker__count{color:var(--color-muted);text-align:right;margin:0;padding:0 .25rem;font-size:.7rem}.permission-picker{display:grid}.permission-picker__trigger{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;width:100%;display:flex}.permission-picker__value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.permission-picker__value.is-empty{color:var(--color-muted)}.permission-picker__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:.5rem;padding:.5rem;display:grid;box-shadow:0 12px 32px #0f0f0f2e}.permission-picker__search{width:100%}.permission-picker__matrix{gap:.1rem;max-height:300px;display:grid;overflow-y:auto}.permission-picker__row{border-radius:var(--radius-sm);grid-template-columns:minmax(110px,1fr) repeat(5,2.1rem);align-items:center;gap:.25rem;padding:.15rem .25rem;display:grid}.permission-picker__row:hover{background:var(--color-bg-tertiary)}.permission-picker__row--head{background:var(--color-surface);z-index:1;border-bottom:1px solid var(--color-border);padding-bottom:.35rem;position:sticky;top:0}.permission-picker__row--head:hover{background:var(--color-surface)}.permission-picker__resource{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.permission-picker__action-label{text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted);text-align:center;font-size:.62rem}.permission-picker__cell{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;color:#0000;place-items:center;width:1.5rem;height:1.5rem;margin:0 auto;font-size:.75rem;transition:background .12s,border-color .12s;display:grid}.permission-picker__cell input{opacity:0;pointer-events:none;position:absolute}.permission-picker__cell:hover{border-color:var(--color-primary)}.permission-picker__cell.is-checked{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-ink)}.permission-picker__cell--empty{cursor:default;background:0 0;border:0}.permission-picker__empty{color:var(--color-muted);margin:0;padding:.5rem .6rem;font-size:.85rem}.permission-picker__custom{border-top:1px solid var(--color-border);gap:.35rem;padding-top:.5rem;display:grid}.permission-picker__custom-label{text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted);margin:0;font-size:.7rem}.permission-picker__chips{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.permission-picker__chip{border:1px solid var(--color-border);background:var(--color-bg-tertiary);border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .2rem .1rem .45rem;font-size:.75rem;display:inline-flex}.permission-picker__chip code{font-size:.72rem}.permission-picker__chip button{color:var(--color-muted);cursor:pointer;background:0 0;border:0;padding:0 .25rem;font-size:.9rem;line-height:1}.permission-picker__chip button:hover{color:var(--color-danger,#b42318)}.permission-picker__custom-form{flex:1;gap:.35rem;min-width:180px;display:flex}.permission-picker__custom-input{flex:1;min-width:0;font-size:.8rem}.access-actions{white-space:nowrap;justify-content:flex-end;gap:.35rem;display:flex}.access-permissions-cell{text-overflow:ellipsis;white-space:nowrap;max-width:26ch;color:var(--color-muted);font-size:.8rem;overflow:hidden}.resource-form__label{font-size:.8rem;font-weight:500}.resource-form__field{gap:.35rem;display:grid}.modal .form-actions{justify-content:flex-end}.modal .form-actions .btn{flex:none}.modal-close{color:var(--color-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;padding:0 .35rem;font-size:1.5rem;line-height:1}.modal-close:hover{color:var(--color-text);background:var(--color-bg-tertiary)}.post-types-manager__icon{align-items:center;gap:.5rem;display:inline-flex}.post-types-manager__icon-preview{width:16px;height:16px;color:var(--color-muted);display:inline-flex}.post-types-manager__icon-preview svg{width:16px;height:16px;display:block}.content-list__heading,.classic-editor__topbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.content-list__heading h2,.classic-editor__topbar h2{color:var(--color-ink);font-size:1.5rem}.content-list__heading p{margin-top:.25rem}.classic-editor__eyebrow{color:var(--color-primary-hover);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700;display:block}.classic-editor__actions{gap:.5rem;display:flex}.classic-editor__columns{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:1rem;display:grid}.classic-editor__main,.classic-editor__sidebar{gap:1rem;min-width:0;display:grid}.classic-editor__canvas-card{padding:1.25rem}.classic-editor__title{width:100%;color:var(--color-ink);border:0;outline:0;padding:.25rem 0 .75rem;font-size:clamp(1.75rem,3vw,2.4rem);font-weight:600;line-height:1.2}.classic-editor__title::placeholder{color:#9ca3af}.classic-editor__permalink{color:var(--color-muted);border-bottom:1px solid var(--color-border);align-items:center;gap:.5rem;padding-bottom:1rem;font-size:.8125rem;display:flex}.classic-editor__permalink .input{max-width:420px;padding:.3rem .5rem}.classic-editor__toolbar{border:1px solid var(--color-border);background:#f0f0f1;border-bottom:0;flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:1rem;padding:.45rem;display:flex}.classic-editor__toolbar button{border-radius:var(--radius-sm);min-width:2rem;min-height:2rem;color:var(--color-text);background:0 0;border:1px solid #0000;padding:.25rem .45rem}.classic-editor__toolbar button:hover{border-color:var(--color-border);background:var(--color-white)}.classic-editor__toolbar-divider{background:var(--color-border);width:1px;height:1.5rem;margin:0 .25rem}.classic-editor__body{border:1px solid var(--color-border);background:var(--color-white);min-height:360px;color:var(--color-text);outline:none;padding:1rem;font-size:1rem;line-height:1.7}.classic-editor__body:focus{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.classic-editor__body:empty:before{content:attr(data-placeholder);color:var(--color-muted)}.classic-editor__body blockquote{border-left:3px solid var(--color-primary);color:var(--color-muted);margin:1rem 0;padding-left:1rem}.classic-editor__excerpt{gap:.4rem;margin-top:1rem;display:grid}.classic-editor__panel{gap:.75rem;display:grid}.classic-editor__panel h3{border-bottom:1px solid var(--color-border);color:var(--color-ink);padding-bottom:.65rem;font-size:.95rem}.classic-editor__full-button{width:100%}@media (width<=720px){.access-grid{grid-template-columns:1fr}.table{display:block;overflow-x:auto}.content-list__heading,.classic-editor__topbar{flex-direction:column}.classic-editor__columns{grid-template-columns:1fr}.classic-editor__sidebar{order:-1}}.okcms-rate-limit-notice{z-index:2000;background:var(--bg-primary,#1f2430);max-width:min(92vw,520px);color:var(--text-primary,#e7e9ee);border:1px solid var(--border,#94a3b847);text-align:center;opacity:0;pointer-events:none;border-radius:10px;padding:12px 18px;font-size:14px;line-height:1.4;transition:opacity .18s,transform .18s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px);box-shadow:0 10px 30px #0f172a59}.okcms-rate-limit-notice.visible{opacity:1;transform:translate(-50%)}.fb-eyebrow{color:var(--color-primary);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.25rem;font-size:.72rem;font-weight:700;display:block}.fb-back-link{color:var(--color-primary-hover);cursor:pointer;background:0 0;border:0;margin-bottom:.5rem;padding:0;font-size:.85rem;display:inline-block}.fb-back-link:hover{color:var(--color-ink);text-decoration:underline}.fb-icon-button{color:var(--color-muted);cursor:pointer;background:0 0;border:0;font-size:1.6rem;line-height:1}.fb-icon-button:hover{color:var(--color-ink)}.editor-actions{align-items:center;gap:.6rem;display:flex}.fb-panel{box-shadow:var(--shadow-sm);margin-bottom:1.25rem;overflow:hidden}.fb-panel__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.35rem;display:flex}.fb-panel__header h3{color:var(--color-ink);margin:0;font-size:1.08rem}.fb-panel__header p{margin:.3rem 0 0}.fb-panel__body{padding:1.35rem}.fb-list__header,.fb-editor__header{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.fb-list__header h2,.fb-editor__header h2{color:var(--color-ink);margin:.3rem 0 0;font-size:clamp(1.4rem,2vw,1.85rem);font-weight:600}.fb-list__header p{margin:.35rem 0 0}.fb-list__toolbar{border:1px solid var(--color-border);background:var(--color-surface);border-bottom:0;border-radius:.55rem .55rem 0 0;align-items:flex-end;gap:1rem;margin-bottom:1rem;padding:.9rem 1rem;display:flex}.fb-list__filter{align-items:center;gap:.6rem;display:flex}.fb-list__filter>span{color:var(--color-muted);white-space:nowrap;font-size:.8rem;font-weight:600}.fb-list__search{max-width:320px;margin-left:auto}.fb-groups-table{border-radius:.55rem;padding:0;overflow:hidden}.fb-groups-table__head,.fb-groups-table__row{grid-template-columns:minmax(200px,1.6fr) minmax(140px,1fr) minmax(140px,1fr) 70px 100px minmax(180px,auto);align-items:center;gap:1rem;display:grid}.fb-groups-table__head{background:var(--color-background);color:var(--color-muted);letter-spacing:.05em;text-transform:uppercase;padding:.7rem 1.1rem;font-size:.72rem;font-weight:700}.fb-groups-table__row{border-top:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;min-height:4.4rem;padding:.85rem 1.1rem;transition:background .15s}.fb-groups-table__row:hover{background:var(--color-primary-soft)}.fb-groups-table__title{gap:.15rem;min-width:0;display:grid}.fb-groups-table__title strong{color:var(--color-primary-hover);font-size:.95rem}.fb-groups-table__title code{color:var(--color-muted);text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.fb-groups-table__desc{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.fb-groups-table__location,.fb-groups-table__count{color:var(--color-muted);font-size:.85rem}.fb-groups-table__actions{opacity:.8;justify-content:flex-end;gap:.5rem;display:flex}.fb-groups-table__row:hover .fb-groups-table__actions{opacity:1}.fb-row-action{color:var(--color-primary-hover);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0;font-size:.78rem}.fb-row-action:hover{text-decoration:underline}.fb-row-action.is-danger{color:var(--color-danger)}.fb-empty-groups{text-align:center;padding:3.5rem 1.25rem}.fb-empty-icon{color:var(--color-primary);margin-bottom:.6rem;display:inline-flex}.fb-empty-icon svg{width:2.75rem;height:2.75rem}.fb-empty-groups h4{margin:0 0 .35rem}.fb-empty-groups .btn{margin-top:1rem}.fb-editor__footer{justify-content:flex-end;margin-top:1.25rem}.fb-identity{align-items:flex-end;gap:1rem;display:flex}.fb-group-title{max-width:720px;min-height:2.6rem;font-size:1.1rem}.fb-identity__key{color:var(--color-muted);padding-bottom:.5rem;font-size:.8rem}.fb-tabs__list{border-bottom:1px solid var(--color-border);gap:.25rem;display:flex;overflow-x:auto}.fb-tabs__tab{color:var(--color-muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:.4rem;padding:.7rem .9rem;font-size:.86rem;font-weight:500;display:inline-flex;position:relative}.fb-tabs__tab:hover{color:var(--color-ink)}.fb-tabs__tab.is-active{color:var(--color-primary-hover);font-weight:600}.fb-tabs__tab.is-active:after{background:var(--color-primary);content:"";border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:.4rem;right:.4rem}.fb-tabs__tab.is-disabled{opacity:.5;cursor:not-allowed}.fb-tabs__badge{border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);text-transform:uppercase;padding:.05rem .4rem;font-size:.66rem;font-weight:700}.fb-tabs__panel{padding-top:1.25rem}.fb-field-list{position:relative}.fb-sortable-list{display:grid}.fb-sortable-list--sub{border-left:3px solid var(--color-primary-soft);background:var(--color-background);margin-top:.5rem;padding-left:.75rem}.fb-sortable-empty{min-height:0}.fb-sortable-item{position:relative}.fb-sortable-item.is-dragging{opacity:.4}.fb-sortable-item.is-drop-target:before{z-index:3;background:var(--color-primary);content:"";border-radius:3px;height:3px;position:absolute;top:-1px;left:.25rem;right:.25rem}.fb-field-row{border:1px solid var(--color-border);background:var(--color-surface);border-radius:0}.fb-field-row:first-child{border-radius:.35rem .35rem 0 0}.fb-field-row:last-child{border-radius:0 0 .35rem .35rem}.fb-field-row+.fb-field-row{border-top:0}.fb-field-row.is-expanded{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary);z-index:1}.fb-field-row__header{grid-template-columns:1.9rem 2.1rem minmax(160px,1.5fr) minmax(120px,1fr) minmax(120px,1fr) minmax(90px,.7fr) auto auto;align-items:center;min-height:3.9rem;display:grid}.fb-field-row__header:hover,.fb-field-row.is-expanded .fb-field-row__header{background:var(--color-primary-soft)}.fb-field-row__handle{width:1.9rem;color:var(--color-muted);cursor:grab;background:0 0;border:0;justify-content:center;align-self:stretch;align-items:center;display:flex}.fb-field-row__handle:hover{color:var(--color-primary-hover)}.fb-field-row__handle:active{cursor:grabbing}.fb-field-row__handle svg{width:1.05rem;height:1.05rem}.fb-field-row__toggle{cursor:pointer;text-align:left;color:var(--color-text);background:0 0;border:0;display:contents}.fb-field-row__order{background:var(--color-background);width:1.55rem;height:1.55rem;color:var(--color-muted);border-radius:50%;justify-content:center;align-items:center;margin-left:.35rem;font-size:.72rem;font-weight:700;display:inline-flex}.fb-field-row__label{align-items:center;gap:.55rem;min-width:0;padding-left:.6rem;display:inline-flex}.fb-field-row__label strong{color:var(--color-primary-hover);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:600;overflow:hidden}.fb-field-row__type-icon{width:1rem;height:1rem;color:var(--color-primary);flex:none}.fb-field-row__name,.fb-field-row__key{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.fb-field-row__type{color:var(--color-text);font-size:.8rem}.fb-field-row__actions{align-items:center;gap:.55rem;padding:0 .7rem;display:flex}.fb-field-row__chevron{color:var(--color-muted);cursor:pointer;background:0 0;border:0;padding:0 .6rem}.fb-field-row__chevron svg{width:1rem;height:1rem}.fb-field-row__body{border-top:1px solid var(--color-border);background:var(--color-surface);gap:1.25rem;padding:1.35rem;display:grid}.fb-settings-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.fb-setting{flex-direction:column;gap:.35rem;min-width:0;display:flex}.fb-setting--wide{grid-column:1/-1}.fb-setting--inline{flex-direction:row;align-items:center;gap:.6rem}.fb-setting__label{color:var(--color-text);font-size:.82rem;font-weight:600}.fb-setting__hint{color:var(--color-muted);font-size:.74rem}.fb-setting__hint code{background:var(--color-background);border-radius:var(--radius-sm);padding:0 .25rem}.fb-settings-grid textarea{resize:vertical}.fb-input-append-wrap{align-items:center;display:flex;position:relative}.fb-input-append-wrap .input{padding-right:2.2rem}.fb-append-suffix{color:var(--color-muted);pointer-events:none;font-size:.82rem;position:absolute;right:.65rem}.fb-switch{cursor:pointer;align-items:center;gap:.5rem;display:inline-flex}.fb-checkbox-grid{flex-wrap:wrap;gap:.55rem 1.1rem;display:flex}.fb-checkbox{align-items:center;gap:.4rem;font-size:.82rem;display:inline-flex}.fb-subfields{border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-background);padding:1rem}.fb-subfields--layout{margin-top:.75rem}.fb-subfields__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.fb-subfields__header h5{margin:0}.fb-layouts{border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-background);gap:.85rem;padding:1rem;display:grid}.fb-layout-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);gap:.85rem;padding:.9rem;display:grid}.fb-layout-card__header{align-items:center;gap:.6rem;display:flex}.fb-layout-card__header strong{color:var(--color-primary-hover)}.fb-layout-card__display{color:var(--color-muted);margin-left:auto;font-size:.75rem}.fb-layout-card__settings{padding:.25rem 0}.fb-empty-fields{text-align:center;color:var(--color-muted);padding:1.5rem .5rem .35rem}.fb-list-footer{justify-content:flex-end;margin-top:.85rem;display:flex}.fb-add-field{border:1px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-primary-hover);cursor:pointer;padding:.55rem .9rem;font-size:.85rem;font-weight:600}.fb-add-field:hover{background:var(--color-primary-soft)}.fb-rule-editor{gap:1rem;display:grid}.fb-rule-editor__toggle{cursor:pointer;align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.fb-rule-groups{gap:.75rem;display:grid}.fb-rule-group{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);gap:.55rem;padding:.85rem;display:grid}.fb-rule-group__connector{color:var(--color-muted);text-align:center;font-size:.75rem;font-weight:700}.fb-rule-group__header{color:var(--color-text);font-size:.8rem;font-weight:700}.fb-rule-group__actions{align-items:center;gap:.6rem;margin-top:.2rem;display:flex}.fb-rule-group__and{color:var(--color-muted);font-size:.72rem}.fb-rule-row{grid-template-columns:minmax(160px,1.2fr) minmax(140px,.9fr) minmax(160px,1.2fr) auto;align-items:center;gap:.55rem;display:grid}.fb-rule-row__spacer{display:block}.fb-rule-remove{color:var(--color-danger);cursor:pointer;background:0 0;border:0;font-size:1.1rem}.fb-rule-add-group{justify-self:start}.fb-modal-backdrop{z-index:1000;top:var(--admin-bar-h,46px);bottom:var(--admin-footer-h,48px);background:#0a0a0a80;place-items:center;padding:1rem;display:grid;position:fixed;left:0;right:0}.fb-browse-modal{border:1px solid var(--color-border);background:var(--color-surface);width:min(920px,100%);max-height:100%;box-shadow:var(--shadow-xl);border-radius:.55rem;grid-template-rows:auto auto auto 1fr auto;display:grid;overflow:hidden}.fb-browse-modal__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.1rem 1.35rem;display:flex}.fb-browse-modal__header h3{color:var(--color-ink);margin:.15rem 0 0}.fb-browse-modal__search{padding:.9rem 1.35rem .5rem}.fb-browse-modal__search .input{max-width:380px}.fb-browse-modal__tabs{border-bottom:1px solid var(--color-border);gap:1.1rem;padding:0 1.35rem;display:flex;overflow-x:auto}.fb-browse-modal__tabs button{color:var(--color-muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:.6rem 0 .55rem;position:relative}.fb-browse-modal__tabs button.is-active{color:var(--color-primary-hover);font-weight:600}.fb-browse-modal__tabs button.is-active:after{background:var(--color-primary);content:"";height:3px;position:absolute;bottom:-1px;left:0;right:0}.fb-browse-modal__body{grid-template-columns:minmax(0,1fr) 230px;min-height:300px;display:grid;overflow:auto}.fb-browse-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));align-content:start;gap:.75rem;padding:1.25rem;display:grid}.fb-browse-tile{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:108px;color:var(--color-text);text-align:center;cursor:pointer;place-items:center;gap:.35rem;padding:.8rem;transition:border-color .15s,background .15s,box-shadow .15s;display:grid}.fb-browse-tile:hover,.fb-browse-tile.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 1px var(--color-primary)}.fb-browse-tile__icon{border:1px solid var(--color-primary);width:2.1rem;height:2.1rem;color:var(--color-primary-hover);border-radius:.4rem;place-items:center;display:grid}.fb-browse-tile__icon svg{width:1.2rem;height:1.2rem}.fb-browse-tile small{color:var(--color-muted);font-size:.7rem}.fb-browse-preview{border-left:1px solid var(--color-border);background:var(--color-background);flex-direction:column;align-items:flex-start;gap:.6rem;padding:1.5rem 1.25rem;display:flex}.fb-browse-preview__icon{border:1px solid var(--color-primary);width:2.5rem;height:2.5rem;color:var(--color-primary-hover);border-radius:.45rem;place-items:center;display:grid}.fb-browse-preview__icon svg{width:1.4rem;height:1.4rem}.fb-browse-preview h4{color:var(--color-ink);margin:0}.fb-browse-empty{text-align:center;grid-column:1/-1;padding:2rem}.fb-browse-modal__footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:flex-end;gap:1rem;padding:1.1rem 1.35rem;display:flex}.fb-browse-modal__label{flex:1;gap:.3rem;max-width:340px;display:grid}.fb-page-header{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.fb-page-header__main{flex-direction:column;gap:.35rem;display:flex}.fb-page-header__main .fb-eyebrow{margin-bottom:.25rem}.fb-page-header__main h1{color:var(--color-ink);margin:.3rem 0 0;font-size:clamp(1.4rem,2vw,1.85rem);font-weight:600}.fb-page-header__main p{margin:.35rem 0 0}.fb-page-header__actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.fb-page-header__toolbar{border:1px solid var(--color-border);background:var(--color-surface);border-bottom:0;border-radius:.55rem .55rem 0 0;align-items:flex-end;gap:1rem;margin-bottom:1rem;padding:.9rem 1rem;display:flex}.fb-toolbar{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.fb-toolbar__filter{align-items:center;gap:.6rem;display:flex}.fb-toolbar__filter>span{color:var(--color-muted);white-space:nowrap;font-size:.8rem;font-weight:600}.fb-toolbar__search{max-width:320px;margin-left:auto}.fb-page-content{flex:1 0 auto;min-width:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.55rem;overflow:hidden}.card--padded{padding:0}@media (width<=900px){.fb-groups-table__head{display:none}.fb-groups-table__row{grid-template-columns:1fr 1fr;gap:.55rem}.fb-groups-table__title,.fb-groups-table__actions{grid-column:1/-1}.fb-groups-table__actions{justify-content:flex-start}.fb-field-row__header{grid-template-columns:1.9rem 2.1rem minmax(0,1fr) auto auto}.fb-field-row__name,.fb-field-row__key,.fb-field-row__type{display:none}.fb-rule-row,.fb-browse-modal__body{grid-template-columns:1fr}.fb-browse-preview{display:none}.fb-browse-modal__footer{flex-direction:column;align-items:stretch}.fb-browse-modal__label{width:100%;max-width:none}.fb-list__header,.fb-editor__header,.fb-list__toolbar{flex-direction:column;align-items:stretch}.fb-list__search{max-width:none;margin-left:0}.fb-page-header__toolbar{flex-direction:column;align-items:stretch}.fb-toolbar__search{max-width:none;margin-left:0}}.fb-list__header-actions{align-items:center;gap:.5rem;display:flex}.fb-import-btn{display:inline-flex}.fb-import-btn input{opacity:0;width:0;height:0;position:absolute}.fb-btn-icon{vertical-align:middle;width:1rem;height:1rem;margin-right:.35rem;display:inline-flex}.fb-modal{border:1px solid var(--color-border);background:var(--color-surface);width:min(560px,100%);max-height:100%;box-shadow:var(--shadow-xl);border-radius:.55rem;flex-direction:column;display:flex;overflow:hidden}.fb-modal__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.1rem 1.35rem;display:flex}.fb-modal__header h3{color:var(--color-ink);margin:0}.fb-modal__close{width:2rem;height:2rem;color:var(--color-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:flex}.fb-modal__close:hover{background:var(--color-primary-soft);color:var(--color-primary-hover)}.fb-modal__body{min-height:0;padding:1.35rem;overflow-y:auto}.fb-import-dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-background);min-height:140px;color:var(--color-text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;transition:border-color .15s,background .15s;display:flex}.fb-import-dropzone:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.fb-dropzone-icon{width:3rem;height:3rem;color:var(--color-primary)}.fb-import-hint{text-align:center;margin-top:.5rem;font-size:.8rem}.fb-modal__footer{border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:.5rem;padding:1rem 1.35rem;display:flex}
|
|
1
|
+
:root{--admin-bar-h:46px;--admin-footer-h:48px;--color-primary:#d8b45e;--color-primary-hover:#b99542;--color-primary-light:#f3e7c5;--color-primary-soft:#faf5e8;--color-primary-contrast:#0a0a0a;--color-ink:#0a0a0a;--color-surface-dark:#171717;--color-white:#fff;--color-background:#f6f7f7;--color-border:#dcdcde;--color-text:#2c3338;--color-muted:#646970;--color-success:#22c55e;--color-success-soft:#22c55e1f;--color-warning:#f59e0b;--color-warning-soft:#f59e0b1f;--color-danger:#ef4444;--color-danger-soft:#ef44441f;--color-error:#ef4444;--color-error-soft:#ef44441f;--color-muted-soft:#eceef0;--color-surface:#fff;--color-surface-hover:#f6f7f7;--color-surface-active:#f3e7c5;--color-surface-muted:#eceef0;--color-bg:#f6f7f7;--color-bg-secondary:#fff;--color-bg-tertiary:#eceef0;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--focus-ring:0 0 0 2px var(--color-primary-soft), 0 0 0 4px var(--color-primary)}*{box-sizing:border-box;margin:0;padding:0}html{color:var(--color-text);background:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}body{min-height:100vh}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}.container{max-width:1280px;margin:0 auto;padding:0 1rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.font-bold{font-weight:600}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-ink)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover{background:var(--color-surface-hover);border-color:var(--color-text)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-white)}.btn-danger:hover{background:#dc2626;border-color:#dc2626}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem}.card-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text);padding:.5rem .75rem;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary);outline:none}.input::placeholder{color:var(--color-muted)}.input:disabled{background:var(--color-background);color:var(--color-muted);cursor:not-allowed}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23646970' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2.5rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.75rem 1rem}.table th{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--color-background);font-size:.75rem;font-weight:600}.table tbody tr:hover{background:var(--color-surface-hover)}.table tbody tr:last-child td{border-bottom:none}.badge{border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em;align-items:center;padding:.1875rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.badge-success{color:#166534;background:#22c55e1a}.badge-warning{color:#854d0e;background:#f59e0b1a}.badge-danger{color:#991b1b;background:#ef44441a}.badge-secondary{background:var(--color-border);color:var(--color-muted)}.badge-primary{background:var(--color-primary-soft);color:var(--color-primary-hover)}.modal-overlay{top:var(--admin-bar-h,46px);bottom:var(--admin-footer-h,48px);backdrop-filter:blur(2px);z-index:1500;background:#0a0a0a99;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;left:0;right:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:100%;box-shadow:var(--shadow-xl);padding:1.5rem;overflow-y:auto}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.toast{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-xl);z-index:1100;padding:.75rem 1rem;animation:.2s ease-out slideIn;position:fixed;bottom:1.5rem;right:1.5rem}@keyframes slideIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.toast-success{border-left:4px solid var(--color-success)}.toast-error{border-left:4px solid var(--color-danger)}.toast-warning{border-left:4px solid var(--color-warning)}.toast-info{border-left:4px solid var(--color-primary)}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:1.25rem;height:1.25rem;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--color-muted);font-size:.875rem}.notice{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);margin-bottom:1rem;padding:.75rem 1rem}.notice--error{border-color:var(--color-danger);color:var(--color-danger);background:#ef44440d}.notice--success{border-color:var(--color-success);color:var(--color-success);background:#22c55e0d}.toolbar{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.toolbar .input{flex:1;min-width:200px}.pagination{justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;display:flex}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1.5rem;transition:border-color .15s,background .15s;display:flex}.upload-zone--active{border-color:var(--color-primary);background:var(--color-primary-soft)}.media-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}.media-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;color:var(--color-text);font:inherit;flex-direction:column;gap:.5rem;padding:.5rem;transition:all .15s;display:flex}.media-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.media-card--selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-soft), 0 0 0 4px var(--color-primary)}.media-card__preview{aspect-ratio:4/3;border-radius:var(--radius-md);background:var(--color-background);justify-content:center;align-items:center;display:flex;overflow:hidden}.media-card__preview img{object-fit:cover;width:100%;height:100%}.media-card__ext{color:var(--color-muted);letter-spacing:.05em;text-align:center;padding:1rem;font-weight:700}.media-card__meta{flex-direction:column;gap:.125rem;display:flex}.media-card__name{white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.media-details{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex;position:sticky;bottom:0}.media-details__preview img{border-radius:var(--radius-lg);object-fit:contain;background:var(--color-background);max-width:100%;max-height:280px}.media-details__list{grid-template-columns:100px 1fr;gap:.35rem .75rem;margin:0;display:grid}.media-details__list dt{color:var(--color-muted);font-size:.8125rem}.media-details__list dd{overflow-wrap:anywhere;margin:0;font-size:.875rem}.media-details__url{align-items:center;gap:.5rem;display:flex}.media-details__url code{background:var(--color-background);border-radius:var(--radius-sm);padding:.125rem .375rem;font-size:.75rem}.media-details__actions{flex-wrap:wrap;gap:.5rem;display:flex}.media-library .modal{max-width:min(1120px,96vw)}.media-modal{flex-direction:column;gap:1rem;display:flex}.media-modal__preview{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-background);justify-content:center;align-items:center;min-height:280px;max-height:460px;display:flex;overflow:hidden}.media-modal__preview img,.media-modal__preview video{object-fit:contain;max-width:100%;max-height:440px}.media-modal__preview audio{width:min(560px,90%)}.media-modal__preview iframe{border:0;width:100%;height:440px}.media-modal__file-icon{font-size:2rem}.media-modal__layout{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:1.25rem;display:grid}.media-modal__fields{flex-direction:column;gap:.75rem;display:flex}.media-modal__textarea{resize:vertical;min-height:120px;font:inherit}.media-modal__facts{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);align-content:start;padding:.85rem}.media-modal__replace{flex-wrap:wrap;align-items:center;gap:.75rem;padding-top:.25rem;display:flex}@media (width<=720px){.media-modal__layout{grid-template-columns:1fr}.media-modal__preview{min-height:200px}}.users-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;overflow:hidden}.users-table th,.users-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.75rem 1rem;font-size:.875rem}.users-table th{background:var(--color-background);color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.users-table tr:last-child td{border-bottom:none}.users-table__row--selected td{background:var(--color-primary-soft)}.users-table__actions{white-space:nowrap;justify-content:flex-end;gap:.375rem;display:flex}.status-dot{background:var(--color-danger);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:.5rem;display:inline-block}.status-dot--active{background:var(--color-success)}.user-details{flex-direction:column;gap:.75rem;margin-top:1.25rem;display:flex}.dashboard-home{flex-direction:column;gap:1.5rem;display:flex}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center;padding:1.5rem;transition:all .15s}.stat-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.stat-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;font-size:.8125rem;font-weight:500}.stat-value{color:var(--color-primary);font-size:2.5rem;font-weight:700;line-height:1.2}.login-page{background:var(--color-background);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:2.5rem 2rem}.login-header{text-align:center;margin-bottom:2rem}.login-header .logo{justify-content:center;align-items:center;margin-bottom:1rem;display:inline-flex}.login-header .logo img{width:96px;height:96px;display:block}.login-header p{color:var(--color-muted);font-size:.9375rem}.login-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--color-text);font-size:.8125rem;font-weight:500}.form-group .input{padding:.625rem .875rem;font-size:.9375rem}.form-group .input::placeholder{color:var(--color-muted)}.form-actions{gap:.5rem;margin-top:.5rem;display:flex}.form-actions .btn{flex:1}.empty-state,.skeleton{text-align:center;color:var(--color-muted);padding:2rem}.login-form .btn-primary{margin-top:.5rem;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600}.login-form .btn-primary:focus-visible{box-shadow:0 0 0 3px var(--color-primary-soft), 0 0 0 5px var(--color-primary)}.error-message{border-radius:var(--radius-md);border:1px solid var(--color-danger);color:var(--color-danger);background:#ef444414;padding:.75rem 1rem;font-size:.875rem}[dir=rtl]{direction:rtl}[dir=rtl] .table th,[dir=rtl] .table td,[dir=rtl] .users-table th,[dir=rtl] .users-table td{text-align:right}[dir=rtl] .toolbar{flex-direction:row-reverse}[dir=rtl] .toolbar .input{text-align:right}[dir=rtl] .form-grid,[dir=rtl] .form-grid label{direction:rtl}[dir=rtl] .card-header,[dir=rtl] .modal-header,[dir=rtl] .toolbar,[dir=rtl] .toolbar{flex-direction:row-reverse}[dir=rtl] .badge{direction:rtl}[dir=rtl] .toast{left:1.5rem;right:auto}[dir=rtl] .media-grid{direction:rtl}[dir=rtl] .media-card__meta{text-align:right}[dir=rtl] .media-details__list{direction:rtl}[dir=rtl] .media-details__url{flex-direction:row-reverse}[dir=rtl] .user-details .form-grid{direction:rtl}[dir=rtl] .user-details .media-details__actions{flex-direction:row-reverse}[dir=rtl] .notice{direction:rtl}[dir=rtl] .pagination{flex-direction:row-reverse}[dir=rtl] input,[dir=rtl] textarea,[dir=rtl] select,[dir=rtl] input::placeholder,[dir=rtl] textarea::placeholder{text-align:right}[dir=rtl] .chevron{transform:scaleX(-1)}[dir=rtl] .language-trigger[aria-expanded=true] .chevron{transform:scaleX(-1)rotate(180deg)}[dir=rtl] .users-table__actions{justify-content:flex-start}[dir=rtl] .media-details__actions{flex-direction:row-reverse}[dir=rtl] .media-details__preview{margin-left:auto;margin-right:0}[dir=rtl] .login-card{direction:rtl}[dir=rtl] .login-form .form-group label,[dir=rtl] .login-header{text-align:right}[dir=rtl] .settings-cards{direction:rtl}[dir=rtl] .settings-card{text-align:right}[dir=rtl] .action-card,[dir=rtl] .media-card__name{direction:rtl}[dir=rtl] .login-form .form-group{text-align:right}[dir=rtl] select.input{background-position:.75rem;padding-left:2.5rem;padding-right:.75rem}[dir=rtl] .status-dot{margin-left:.4rem;margin-right:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}.resource-hub{gap:1rem;display:grid}.resource-tabs,.resource-actions{flex-wrap:wrap;gap:.5rem;display:flex}.resource-form,.term-form{gap:.75rem;margin:1rem 0;display:grid}.resource-form label{gap:.35rem;display:grid}.resource-form textarea,.term-form{width:100%}.card-header-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.card-header-row p{color:var(--color-muted);margin:.35rem 0 0}.logs-retention-form{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.logs-retention-form label{min-width:220px}.logs-filters{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.logs-filters .input{min-width:200px}.table-scroll{overflow-x:auto}.webhooks-manager select[multiple]{min-height:9rem}.webhooks-manager .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.access-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1rem;display:grid}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;padding:.65rem}.terms-panel{gap:.75rem;display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.form-grid label{align-content:start;gap:.35rem;display:grid}.form-grid label.checkbox-label{align-items:center;gap:.5rem;margin-top:1.5rem;display:flex}.form-grid>label:last-child{align-self:end}.supports{flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:1rem;display:flex}.supports label{align-items:center;gap:.4rem;display:flex}.post-types-manager,.taxonomies-manager{grid-template-columns:minmax(280px,340px) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.post-types-manager>.notice,.taxonomies-manager>.notice{grid-column:1/-1}.settings-table-card{padding:0;overflow:hidden}.settings-table-card .table th{background:var(--color-bg-tertiary);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.settings-table-card .table td{padding:.65rem .75rem}@media (width<=1100px){.post-types-manager,.taxonomies-manager{grid-template-columns:1fr}}.resource-form label.checkbox-label,label.checkbox-label{align-items:center;gap:.5rem;font-weight:500;display:flex}.resource-form label.checkbox-label{margin-top:0}.webhooks-manager .resource-form{max-width:720px}.webhooks-manager .form-grid{margin-bottom:0}.field-type-picker{position:relative}.field-type-picker__trigger{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;font-size:.875rem;display:flex}.field-type-picker__trigger:hover{border-color:var(--color-primary)}.field-type-picker__selected{align-items:center;gap:.5rem;min-width:0;display:inline-flex}.field-type-picker__selected svg,.field-type-picker__selected i{width:16px;height:16px;color:var(--color-primary);flex-shrink:0}.field-type-picker__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:.5rem;max-height:320px;padding:.5rem;display:grid;overflow-y:auto;box-shadow:0 12px 32px #0f0f0f2e}.field-type-picker__search{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;padding:.4rem .6rem;font-size:.85rem}.field-type-picker__group{gap:.1rem;display:grid}.field-type-picker__group-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);padding:.35rem .5rem 0;font-size:.7rem}.field-type-picker__option{border-radius:var(--radius-md);width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;display:flex}.field-type-picker__option:hover{background:var(--color-bg-tertiary)}.field-type-picker__option.is-selected{color:#8a6d1d;background:#d8b45e29;font-weight:600}.field-type-picker__option svg,.field-type-picker__option i{flex-shrink:0;width:15px;height:15px}.field-type-picker__group-label svg,.field-type-picker__group-label i{vertical-align:-2px;width:13px;height:13px;margin-right:.25rem}.field-type-picker__hint{color:var(--color-muted);white-space:nowrap;margin-left:auto;font-size:.7rem}.general-settings__tz{align-content:start;gap:.35rem;display:grid}.tz-select{position:relative}.tz-select__trigger{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.tz-select__value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tz-select__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:.5rem;padding:.5rem;display:grid;box-shadow:0 12px 32px #0f0f0f2e}.tz-select__search{width:100%}.tz-select__options{gap:.1rem;max-height:280px;display:grid;overflow-y:auto}.tz-select__option{border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:0;padding:.4rem .6rem;font-size:.85rem}.tz-select__option:hover{background:var(--color-bg-tertiary)}.tz-select__option.is-selected{color:#8a6d1d;background:#d8b45e29;font-weight:600}.tz-select__empty{color:var(--color-muted);margin:0;padding:.5rem .6rem;font-size:.85rem}.post-types-manager__icon-field{align-self:start}.icon-picker{position:relative}.icon-picker__trigger{cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:.75rem;width:100%;display:flex}.icon-picker__value{align-items:center;gap:.5rem;min-width:0;display:inline-flex}.icon-picker__preview{width:18px;height:18px;color:var(--color-primary);flex-shrink:0;display:inline-flex}.icon-picker__preview svg{width:18px;height:18px;display:block}.icon-picker__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;overflow:hidden}.icon-picker__caret{color:var(--color-muted);flex-shrink:0}.icon-picker__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:.5rem;padding:.5rem;display:grid;box-shadow:0 12px 32px #0f0f0f2e}.icon-picker__search{width:100%}.icon-picker__viewport{contain:layout paint;scrollbar-gutter:stable;height:300px;position:relative;overflow:hidden auto}.icon-picker__grid{width:100%;position:relative}.icon-picker__cell{border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.icon-picker__cell svg{pointer-events:none;width:20px;height:20px;display:block}.icon-picker__cell:hover{background:var(--color-bg-tertiary)}.icon-picker__cell.is-active{outline:2px solid var(--color-primary);outline-offset:-2px}.icon-picker__cell.is-selected{border-color:var(--color-primary);color:#8a6d1d;background:#d8b45e29}.icon-picker__cell:focus-visible{box-shadow:var(--focus-ring);outline:none}.icon-picker__empty{color:var(--color-muted);margin:0;padding:.5rem .6rem;font-size:.85rem}.icon-picker__count{color:var(--color-muted);text-align:right;margin:0;padding:0 .25rem;font-size:.7rem}.permission-picker{display:grid}.permission-picker__trigger{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;width:100%;display:flex}.permission-picker__value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.permission-picker__value.is-empty{color:var(--color-muted)}.permission-picker__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:.5rem;padding:.5rem;display:grid;box-shadow:0 12px 32px #0f0f0f2e}.permission-picker__search{width:100%}.permission-picker__matrix{gap:.1rem;max-height:300px;display:grid;overflow-y:auto}.permission-picker__row{border-radius:var(--radius-sm);grid-template-columns:minmax(110px,1fr) repeat(5,2.1rem);align-items:center;gap:.25rem;padding:.15rem .25rem;display:grid}.permission-picker__row:hover{background:var(--color-bg-tertiary)}.permission-picker__row--head{background:var(--color-surface);z-index:1;border-bottom:1px solid var(--color-border);padding-bottom:.35rem;position:sticky;top:0}.permission-picker__row--head:hover{background:var(--color-surface)}.permission-picker__resource{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.permission-picker__action-label{text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted);text-align:center;font-size:.62rem}.permission-picker__cell{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;color:#0000;place-items:center;width:1.5rem;height:1.5rem;margin:0 auto;font-size:.75rem;transition:background .12s,border-color .12s;display:grid}.permission-picker__cell input{opacity:0;pointer-events:none;position:absolute}.permission-picker__cell:hover{border-color:var(--color-primary)}.permission-picker__cell.is-checked{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-ink)}.permission-picker__cell--empty{cursor:default;background:0 0;border:0}.permission-picker__empty{color:var(--color-muted);margin:0;padding:.5rem .6rem;font-size:.85rem}.permission-picker__custom{border-top:1px solid var(--color-border);gap:.35rem;padding-top:.5rem;display:grid}.permission-picker__custom-label{text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted);margin:0;font-size:.7rem}.permission-picker__chips{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.permission-picker__chip{border:1px solid var(--color-border);background:var(--color-bg-tertiary);border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .2rem .1rem .45rem;font-size:.75rem;display:inline-flex}.permission-picker__chip code{font-size:.72rem}.permission-picker__chip button{color:var(--color-muted);cursor:pointer;background:0 0;border:0;padding:0 .25rem;font-size:.9rem;line-height:1}.permission-picker__chip button:hover{color:var(--color-danger,#b42318)}.permission-picker__custom-form{flex:1;gap:.35rem;min-width:180px;display:flex}.permission-picker__custom-input{flex:1;min-width:0;font-size:.8rem}.access-actions{white-space:nowrap;justify-content:flex-end;gap:.35rem;display:flex}.access-permissions-cell{text-overflow:ellipsis;white-space:nowrap;max-width:26ch;color:var(--color-muted);font-size:.8rem;overflow:hidden}.resource-form__label{font-size:.8rem;font-weight:500}.resource-form__field{gap:.35rem;display:grid}.modal .form-actions{justify-content:flex-end}.modal .form-actions .btn{flex:none}.modal-close{color:var(--color-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;padding:0 .35rem;font-size:1.5rem;line-height:1}.modal-close:hover{color:var(--color-text);background:var(--color-bg-tertiary)}.post-types-manager__icon{align-items:center;gap:.5rem;display:inline-flex}.post-types-manager__icon-preview{width:16px;height:16px;color:var(--color-muted);display:inline-flex}.post-types-manager__icon-preview svg{width:16px;height:16px;display:block}.content-list__heading,.classic-editor__topbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.content-list__heading h2,.classic-editor__topbar h2{color:var(--color-ink);font-size:1.5rem}.content-list__heading p{margin-top:.25rem}.classic-editor__eyebrow{color:var(--color-primary-hover);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700;display:block}.classic-editor__actions{gap:.5rem;display:flex}.classic-editor__columns{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:1rem;display:grid}.classic-editor__main,.classic-editor__sidebar{gap:1rem;min-width:0;display:grid}.classic-editor__canvas-card{padding:1.25rem}.classic-editor__title{width:100%;color:var(--color-ink);border:0;outline:0;padding:.25rem 0 .75rem;font-size:clamp(1.75rem,3vw,2.4rem);font-weight:600;line-height:1.2}.classic-editor__title::placeholder{color:#9ca3af}.classic-editor__permalink{color:var(--color-muted);border-bottom:1px solid var(--color-border);align-items:center;gap:.5rem;padding-bottom:1rem;font-size:.8125rem;display:flex}.classic-editor__permalink .input{max-width:420px;padding:.3rem .5rem}.classic-editor__toolbar{border:1px solid var(--color-border);background:#f0f0f1;border-bottom:0;flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:1rem;padding:.45rem;display:flex}.classic-editor__toolbar button{border-radius:var(--radius-sm);min-width:2rem;min-height:2rem;color:var(--color-text);background:0 0;border:1px solid #0000;padding:.25rem .45rem}.classic-editor__toolbar button:hover{border-color:var(--color-border);background:var(--color-white)}.classic-editor__toolbar-divider{background:var(--color-border);width:1px;height:1.5rem;margin:0 .25rem}.classic-editor__body{border:1px solid var(--color-border);background:var(--color-white);min-height:360px;color:var(--color-text);outline:none;padding:1rem;font-size:1rem;line-height:1.7}.classic-editor__body:focus{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.classic-editor__body:empty:before{content:attr(data-placeholder);color:var(--color-muted)}.classic-editor__body blockquote{border-left:3px solid var(--color-primary);color:var(--color-muted);margin:1rem 0;padding-left:1rem}.plugin-editor{border:1px dashed var(--color-border);background:var(--color-white);min-height:360px;color:var(--color-text);padding:1rem}.plugin-editor--below{min-height:8rem;margin-top:1rem}.classic-editor__excerpt{gap:.4rem;margin-top:1rem;display:grid}.classic-editor__panel{gap:.75rem;display:grid}.classic-editor__panel h3{border-bottom:1px solid var(--color-border);color:var(--color-ink);padding-bottom:.65rem;font-size:.95rem}.classic-editor__full-button{width:100%}@media (width<=720px){.access-grid{grid-template-columns:1fr}.table{display:block;overflow-x:auto}.content-list__heading,.classic-editor__topbar{flex-direction:column}.classic-editor__columns{grid-template-columns:1fr}.classic-editor__sidebar{order:-1}}.okcms-rate-limit-notice{z-index:2000;background:var(--bg-primary,#1f2430);max-width:min(92vw,520px);color:var(--text-primary,#e7e9ee);border:1px solid var(--border,#94a3b847);text-align:center;opacity:0;pointer-events:none;border-radius:10px;padding:12px 18px;font-size:14px;line-height:1.4;transition:opacity .18s,transform .18s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px);box-shadow:0 10px 30px #0f172a59}.okcms-rate-limit-notice.visible{opacity:1;transform:translate(-50%)}.fb-eyebrow{color:var(--color-primary);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.25rem;font-size:.72rem;font-weight:700;display:block}.fb-back-link{color:var(--color-primary-hover);cursor:pointer;background:0 0;border:0;margin-bottom:.5rem;padding:0;font-size:.85rem;display:inline-block}.fb-back-link:hover{color:var(--color-ink);text-decoration:underline}.fb-icon-button{color:var(--color-muted);cursor:pointer;background:0 0;border:0;font-size:1.6rem;line-height:1}.fb-icon-button:hover{color:var(--color-ink)}.editor-actions{align-items:center;gap:.6rem;display:flex}.fb-panel{box-shadow:var(--shadow-sm);margin-bottom:1.25rem;overflow:hidden}.fb-panel__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.35rem;display:flex}.fb-panel__header h3{color:var(--color-ink);margin:0;font-size:1.08rem}.fb-panel__header p{margin:.3rem 0 0}.fb-panel__body{padding:1.35rem}.fb-list__header,.fb-editor__header{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.fb-list__header h2,.fb-editor__header h2{color:var(--color-ink);margin:.3rem 0 0;font-size:clamp(1.4rem,2vw,1.85rem);font-weight:600}.fb-list__header p{margin:.35rem 0 0}.fb-list__toolbar{border:1px solid var(--color-border);background:var(--color-surface);border-bottom:0;border-radius:.55rem .55rem 0 0;align-items:flex-end;gap:1rem;margin-bottom:1rem;padding:.9rem 1rem;display:flex}.fb-list__filter{align-items:center;gap:.6rem;display:flex}.fb-list__filter>span{color:var(--color-muted);white-space:nowrap;font-size:.8rem;font-weight:600}.fb-list__search{max-width:320px;margin-left:auto}.fb-groups-table{border-radius:.55rem;padding:0;overflow:hidden}.fb-groups-table__head,.fb-groups-table__row{grid-template-columns:minmax(200px,1.6fr) minmax(140px,1fr) minmax(140px,1fr) 70px 100px minmax(180px,auto);align-items:center;gap:1rem;display:grid}.fb-groups-table__head{background:var(--color-background);color:var(--color-muted);letter-spacing:.05em;text-transform:uppercase;padding:.7rem 1.1rem;font-size:.72rem;font-weight:700}.fb-groups-table__row{border-top:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;min-height:4.4rem;padding:.85rem 1.1rem;transition:background .15s}.fb-groups-table__row:hover{background:var(--color-primary-soft)}.fb-groups-table__title{gap:.15rem;min-width:0;display:grid}.fb-groups-table__title strong{color:var(--color-primary-hover);font-size:.95rem}.fb-groups-table__title code{color:var(--color-muted);text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.fb-groups-table__desc{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.fb-groups-table__location,.fb-groups-table__count{color:var(--color-muted);font-size:.85rem}.fb-groups-table__actions{opacity:.8;justify-content:flex-end;gap:.5rem;display:flex}.fb-groups-table__row:hover .fb-groups-table__actions{opacity:1}.fb-row-action{color:var(--color-primary-hover);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0;font-size:.78rem}.fb-row-action:hover{text-decoration:underline}.fb-row-action.is-danger{color:var(--color-danger)}.fb-empty-groups{text-align:center;padding:3.5rem 1.25rem}.fb-empty-icon{color:var(--color-primary);margin-bottom:.6rem;display:inline-flex}.fb-empty-icon svg{width:2.75rem;height:2.75rem}.fb-empty-groups h4{margin:0 0 .35rem}.fb-empty-groups .btn{margin-top:1rem}.fb-editor__footer{justify-content:flex-end;margin-top:1.25rem}.fb-identity{align-items:flex-end;gap:1rem;display:flex}.fb-group-title{max-width:720px;min-height:2.6rem;font-size:1.1rem}.fb-identity__key{color:var(--color-muted);padding-bottom:.5rem;font-size:.8rem}.fb-tabs__list{border-bottom:1px solid var(--color-border);gap:.25rem;display:flex;overflow-x:auto}.fb-tabs__tab{color:var(--color-muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:.4rem;padding:.7rem .9rem;font-size:.86rem;font-weight:500;display:inline-flex;position:relative}.fb-tabs__tab:hover{color:var(--color-ink)}.fb-tabs__tab.is-active{color:var(--color-primary-hover);font-weight:600}.fb-tabs__tab.is-active:after{background:var(--color-primary);content:"";border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:.4rem;right:.4rem}.fb-tabs__tab.is-disabled{opacity:.5;cursor:not-allowed}.fb-tabs__badge{border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);text-transform:uppercase;padding:.05rem .4rem;font-size:.66rem;font-weight:700}.fb-tabs__panel{padding-top:1.25rem}.fb-field-list{position:relative}.fb-sortable-list{display:grid}.fb-sortable-list--sub{border-left:3px solid var(--color-primary-soft);background:var(--color-background);margin-top:.5rem;padding-left:.75rem}.fb-sortable-empty{min-height:0}.fb-sortable-item{position:relative}.fb-sortable-item.is-dragging{opacity:.4}.fb-sortable-item.is-drop-target:before{z-index:3;background:var(--color-primary);content:"";border-radius:3px;height:3px;position:absolute;top:-1px;left:.25rem;right:.25rem}.fb-field-row{border:1px solid var(--color-border);background:var(--color-surface);border-radius:0}.fb-field-row:first-child{border-radius:.35rem .35rem 0 0}.fb-field-row:last-child{border-radius:0 0 .35rem .35rem}.fb-field-row+.fb-field-row{border-top:0}.fb-field-row.is-expanded{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary);z-index:1}.fb-field-row__header{grid-template-columns:1.9rem 2.1rem minmax(160px,1.5fr) minmax(120px,1fr) minmax(120px,1fr) minmax(90px,.7fr) auto auto;align-items:center;min-height:3.9rem;display:grid}.fb-field-row__header:hover,.fb-field-row.is-expanded .fb-field-row__header{background:var(--color-primary-soft)}.fb-field-row__handle{width:1.9rem;color:var(--color-muted);cursor:grab;background:0 0;border:0;justify-content:center;align-self:stretch;align-items:center;display:flex}.fb-field-row__handle:hover{color:var(--color-primary-hover)}.fb-field-row__handle:active{cursor:grabbing}.fb-field-row__handle svg{width:1.05rem;height:1.05rem}.fb-field-row__toggle{cursor:pointer;text-align:left;color:var(--color-text);background:0 0;border:0;display:contents}.fb-field-row__order{background:var(--color-background);width:1.55rem;height:1.55rem;color:var(--color-muted);border-radius:50%;justify-content:center;align-items:center;margin-left:.35rem;font-size:.72rem;font-weight:700;display:inline-flex}.fb-field-row__label{align-items:center;gap:.55rem;min-width:0;padding-left:.6rem;display:inline-flex}.fb-field-row__label strong{color:var(--color-primary-hover);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:600;overflow:hidden}.fb-field-row__type-icon{width:1rem;height:1rem;color:var(--color-primary);flex:none}.fb-field-row__name,.fb-field-row__key{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.fb-field-row__type{color:var(--color-text);font-size:.8rem}.fb-field-row__actions{align-items:center;gap:.55rem;padding:0 .7rem;display:flex}.fb-field-row__chevron{color:var(--color-muted);cursor:pointer;background:0 0;border:0;padding:0 .6rem}.fb-field-row__chevron svg{width:1rem;height:1rem}.fb-field-row__body{border-top:1px solid var(--color-border);background:var(--color-surface);gap:1.25rem;padding:1.35rem;display:grid}.fb-settings-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.fb-setting{flex-direction:column;gap:.35rem;min-width:0;display:flex}.fb-setting--wide{grid-column:1/-1}.fb-setting--inline{flex-direction:row;align-items:center;gap:.6rem}.fb-setting__label{color:var(--color-text);font-size:.82rem;font-weight:600}.fb-setting__hint{color:var(--color-muted);font-size:.74rem}.fb-setting__hint code{background:var(--color-background);border-radius:var(--radius-sm);padding:0 .25rem}.fb-settings-grid textarea{resize:vertical}.fb-input-append-wrap{align-items:center;display:flex;position:relative}.fb-input-append-wrap .input{padding-right:2.2rem}.fb-append-suffix{color:var(--color-muted);pointer-events:none;font-size:.82rem;position:absolute;right:.65rem}.fb-switch{cursor:pointer;align-items:center;gap:.5rem;display:inline-flex}.fb-checkbox-grid{flex-wrap:wrap;gap:.55rem 1.1rem;display:flex}.fb-checkbox{align-items:center;gap:.4rem;font-size:.82rem;display:inline-flex}.fb-subfields{border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-background);padding:1rem}.fb-subfields--layout{margin-top:.75rem}.fb-subfields__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.fb-subfields__header h5{margin:0}.fb-layouts{border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-background);gap:.85rem;padding:1rem;display:grid}.fb-layout-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);gap:.85rem;padding:.9rem;display:grid}.fb-layout-card__header{align-items:center;gap:.6rem;display:flex}.fb-layout-card__header strong{color:var(--color-primary-hover)}.fb-layout-card__display{color:var(--color-muted);margin-left:auto;font-size:.75rem}.fb-layout-card__settings{padding:.25rem 0}.fb-empty-fields{text-align:center;color:var(--color-muted);padding:1.5rem .5rem .35rem}.fb-list-footer{justify-content:flex-end;margin-top:.85rem;display:flex}.fb-add-field{border:1px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-primary-hover);cursor:pointer;padding:.55rem .9rem;font-size:.85rem;font-weight:600}.fb-add-field:hover{background:var(--color-primary-soft)}.fb-rule-editor{gap:1rem;display:grid}.fb-rule-editor__toggle{cursor:pointer;align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.fb-rule-groups{gap:.75rem;display:grid}.fb-rule-group{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);gap:.55rem;padding:.85rem;display:grid}.fb-rule-group__connector{color:var(--color-muted);text-align:center;font-size:.75rem;font-weight:700}.fb-rule-group__header{color:var(--color-text);font-size:.8rem;font-weight:700}.fb-rule-group__actions{align-items:center;gap:.6rem;margin-top:.2rem;display:flex}.fb-rule-group__and{color:var(--color-muted);font-size:.72rem}.fb-rule-row{grid-template-columns:minmax(160px,1.2fr) minmax(140px,.9fr) minmax(160px,1.2fr) auto;align-items:center;gap:.55rem;display:grid}.fb-rule-row__spacer{display:block}.fb-rule-remove{color:var(--color-danger);cursor:pointer;background:0 0;border:0;font-size:1.1rem}.fb-rule-add-group{justify-self:start}.fb-modal-backdrop{z-index:1000;top:var(--admin-bar-h,46px);bottom:var(--admin-footer-h,48px);background:#0a0a0a80;place-items:center;padding:1rem;display:grid;position:fixed;left:0;right:0}.fb-browse-modal{border:1px solid var(--color-border);background:var(--color-surface);width:min(920px,100%);max-height:100%;box-shadow:var(--shadow-xl);border-radius:.55rem;grid-template-rows:auto auto auto 1fr auto;display:grid;overflow:hidden}.fb-browse-modal__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.1rem 1.35rem;display:flex}.fb-browse-modal__header h3{color:var(--color-ink);margin:.15rem 0 0}.fb-browse-modal__search{padding:.9rem 1.35rem .5rem}.fb-browse-modal__search .input{max-width:380px}.fb-browse-modal__tabs{border-bottom:1px solid var(--color-border);gap:1.1rem;padding:0 1.35rem;display:flex;overflow-x:auto}.fb-browse-modal__tabs button{color:var(--color-muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:.6rem 0 .55rem;position:relative}.fb-browse-modal__tabs button.is-active{color:var(--color-primary-hover);font-weight:600}.fb-browse-modal__tabs button.is-active:after{background:var(--color-primary);content:"";height:3px;position:absolute;bottom:-1px;left:0;right:0}.fb-browse-modal__body{grid-template-columns:minmax(0,1fr) 230px;min-height:300px;display:grid;overflow:auto}.fb-browse-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));align-content:start;gap:.75rem;padding:1.25rem;display:grid}.fb-browse-tile{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:108px;color:var(--color-text);text-align:center;cursor:pointer;place-items:center;gap:.35rem;padding:.8rem;transition:border-color .15s,background .15s,box-shadow .15s;display:grid}.fb-browse-tile:hover,.fb-browse-tile.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 1px var(--color-primary)}.fb-browse-tile__icon{border:1px solid var(--color-primary);width:2.1rem;height:2.1rem;color:var(--color-primary-hover);border-radius:.4rem;place-items:center;display:grid}.fb-browse-tile__icon svg{width:1.2rem;height:1.2rem}.fb-browse-tile small{color:var(--color-muted);font-size:.7rem}.fb-browse-preview{border-left:1px solid var(--color-border);background:var(--color-background);flex-direction:column;align-items:flex-start;gap:.6rem;padding:1.5rem 1.25rem;display:flex}.fb-browse-preview__icon{border:1px solid var(--color-primary);width:2.5rem;height:2.5rem;color:var(--color-primary-hover);border-radius:.45rem;place-items:center;display:grid}.fb-browse-preview__icon svg{width:1.4rem;height:1.4rem}.fb-browse-preview h4{color:var(--color-ink);margin:0}.fb-browse-empty{text-align:center;grid-column:1/-1;padding:2rem}.fb-browse-modal__footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:flex-end;gap:1rem;padding:1.1rem 1.35rem;display:flex}.fb-browse-modal__label{flex:1;gap:.3rem;max-width:340px;display:grid}.fb-page-header{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.fb-page-header__main{flex-direction:column;gap:.35rem;display:flex}.fb-page-header__main .fb-eyebrow{margin-bottom:.25rem}.fb-page-header__main h1{color:var(--color-ink);margin:.3rem 0 0;font-size:clamp(1.4rem,2vw,1.85rem);font-weight:600}.fb-page-header__main p{margin:.35rem 0 0}.fb-page-header__actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.fb-page-header__toolbar{border:1px solid var(--color-border);background:var(--color-surface);border-bottom:0;border-radius:.55rem .55rem 0 0;align-items:flex-end;gap:1rem;margin-bottom:1rem;padding:.9rem 1rem;display:flex}.fb-toolbar{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.fb-toolbar__filter{align-items:center;gap:.6rem;display:flex}.fb-toolbar__filter>span{color:var(--color-muted);white-space:nowrap;font-size:.8rem;font-weight:600}.fb-toolbar__search{max-width:320px;margin-left:auto}.fb-page-content{flex:1 0 auto;min-width:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.55rem;overflow:hidden}.card--padded{padding:0}@media (width<=900px){.fb-groups-table__head{display:none}.fb-groups-table__row{grid-template-columns:1fr 1fr;gap:.55rem}.fb-groups-table__title,.fb-groups-table__actions{grid-column:1/-1}.fb-groups-table__actions{justify-content:flex-start}.fb-field-row__header{grid-template-columns:1.9rem 2.1rem minmax(0,1fr) auto auto}.fb-field-row__name,.fb-field-row__key,.fb-field-row__type{display:none}.fb-rule-row,.fb-browse-modal__body{grid-template-columns:1fr}.fb-browse-preview{display:none}.fb-browse-modal__footer{flex-direction:column;align-items:stretch}.fb-browse-modal__label{width:100%;max-width:none}.fb-list__header,.fb-editor__header,.fb-list__toolbar{flex-direction:column;align-items:stretch}.fb-list__search{max-width:none;margin-left:0}.fb-page-header__toolbar{flex-direction:column;align-items:stretch}.fb-toolbar__search{max-width:none;margin-left:0}}.fb-list__header-actions{align-items:center;gap:.5rem;display:flex}.fb-import-btn{display:inline-flex}.fb-import-btn input{opacity:0;width:0;height:0;position:absolute}.fb-btn-icon{vertical-align:middle;width:1rem;height:1rem;margin-right:.35rem;display:inline-flex}.fb-modal{border:1px solid var(--color-border);background:var(--color-surface);width:min(560px,100%);max-height:100%;box-shadow:var(--shadow-xl);border-radius:.55rem;flex-direction:column;display:flex;overflow:hidden}.fb-modal__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.1rem 1.35rem;display:flex}.fb-modal__header h3{color:var(--color-ink);margin:0}.fb-modal__close{width:2rem;height:2rem;color:var(--color-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:flex}.fb-modal__close:hover{background:var(--color-primary-soft);color:var(--color-primary-hover)}.fb-modal__body{min-height:0;padding:1.35rem;overflow-y:auto}.fb-import-dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-background);min-height:140px;color:var(--color-text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;transition:border-color .15s,background .15s;display:flex}.fb-import-dropzone:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.fb-dropzone-icon{width:3rem;height:3rem;color:var(--color-primary)}.fb-import-hint{text-align:center;margin-top:.5rem;font-size:.8rem}.fb-modal__footer{border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:.5rem;padding:1rem 1.35rem;display:flex}
|