.wpt-bg-primary{background-color: var(--wpt-color-primary,   #FF6B35);}
.wpt-bg-secondary{background-color: var(--wpt-color-secondary, #004E89);}
.wpt-bg-accent{background-color: var(--wpt-color-accent,    #FFD23F);}
.wpt-bg-dark{background-color: var(--wpt-color-dark,      #1A1A1D);}
.wpt-bg-light{background-color: var(--wpt-color-light,     #FFFFFF);}
.wpt-bg-surface{background-color: var(--wpt-color-surface,   #F8F9FA);}
.wpt-bg-muted{background-color: var(--wpt-color-muted,     #6C757D);}
.wpt-text-primary{color: var(--wpt-color-primary,   #FF6B35);}
.wpt-text-secondary{color: var(--wpt-color-secondary, #004E89);}
.wpt-text-dark{color: var(--wpt-color-dark,      #1A1A1D);}
.wpt-text-light{color: var(--wpt-color-light,     #FFFFFF);}
.wpt-text-muted{color: var(--wpt-color-muted,     #6C757D);}
.wpt-radius-none{border-radius: 0;}
.wpt-radius-sm{border-radius: var(--wpt-radius-sm,   0.25rem);}
.wpt-radius-md{border-radius: var(--wpt-radius-md,   0.375rem);}
.wpt-radius-lg{border-radius: var(--wpt-radius-lg,   0.5rem);}
.wpt-radius-xl{border-radius: var(--wpt-radius-xl,   0.75rem);}
.wpt-radius-full{border-radius: var(--wpt-radius-full, 9999px);}
.wpt-shadow-none{box-shadow: none;}
.wpt-shadow-sm{box-shadow: var(--wpt-shadow-sm, 0 1px 2px rgba(0,0,0,0.05));}
.wpt-shadow-md{box-shadow: var(--wpt-shadow-md, 0 4px 6px -1px rgba(0,0,0,0.1));}
.wpt-shadow-lg{box-shadow: var(--wpt-shadow-lg, 0 10px 15px -3px rgba(0,0,0,0.1));}
.wpt-shadow-xl{box-shadow: var(--wpt-shadow-xl, 0 20px 25px -5px rgba(0,0,0,0.1));}
.wpt-pad-xs{padding-top: var(--wpt-spacing-xs,  0.25rem);padding-bottom: var(--wpt-spacing-xs,  0.25rem);}
.wpt-pad-sm{padding-top: var(--wpt-spacing-sm,  0.5rem);padding-bottom: var(--wpt-spacing-sm,  0.5rem);}
.wpt-pad-md{padding-top: var(--wpt-spacing-md,  1rem);padding-bottom: var(--wpt-spacing-md,  1rem);}
.wpt-pad-lg{padding-top: var(--wpt-spacing-lg,  1.5rem);padding-bottom: var(--wpt-spacing-lg,  1.5rem);}
.wpt-pad-xl{padding-top: var(--wpt-spacing-xl,  2rem);padding-bottom: var(--wpt-spacing-xl,  2rem);}
.wpt-pad-2xl{padding-top: var(--wpt-spacing-2xl, 3rem);padding-bottom: var(--wpt-spacing-2xl, 3rem);}
.wpt-pad-3xl{padding-top: var(--wpt-spacing-3xl, 4rem);padding-bottom: var(--wpt-spacing-3xl, 4rem);}
.wpt-pad-4xl{padding-top: var(--wpt-spacing-4xl, 6rem);padding-bottom: var(--wpt-spacing-4xl, 6rem);}
.wpt-text-left{text-align: left;}
.wpt-text-center{text-align: center;}
.wpt-text-right{text-align: right;}
.wpt-container{
width: 100%;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
padding-left:  var(--wpt-spacing-lg, 1.5rem);
padding-right: var(--wpt-spacing-lg, 1.5rem);
box-sizing: border-box;
}
.wpt-btn{
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--wpt-spacing-xs, 0.25rem);
font-family: var(--wpt-font-body, sans-serif);
font-weight: var(--wpt-font-semibold, 600);
text-decoration: none;
border: 2px solid transparent;
cursor: pointer;
border-radius: var(--wpt-radius-md, 0.375rem);
line-height: 1;
box-sizing: border-box;
}
.wpt-btn--sm{padding: var(--wpt-spacing-xs, 0.25rem) var(--wpt-spacing-sm, 0.5rem);font-size: var(--wpt-text-sm, 0.875rem);}
.wpt-btn--md{padding: var(--wpt-spacing-sm, 0.5rem)  var(--wpt-spacing-md, 1rem);font-size: var(--wpt-text-base, 1rem);}
.wpt-btn--lg{padding: var(--wpt-spacing-md, 1rem)    var(--wpt-spacing-xl, 2rem);font-size: var(--wpt-text-lg, 1.125rem);}
.wpt-btn--primary{background: var(--wpt-color-primary,   #FF6B35);color: #fff;}
.wpt-btn--secondary{background: var(--wpt-color-secondary, #004E89);color: #fff;}
.wpt-btn--outline{background: transparent;border-color: currentColor;}
.wpt-glass{
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.2);
}
.wpt-grid{display: grid;}
.wpt-grid--2col{grid-template-columns: repeat(2, 1fr);gap: var(--wpt-spacing-lg, 1.5rem);}
.wpt-grid--3col{grid-template-columns: repeat(3, 1fr);gap: var(--wpt-spacing-lg, 1.5rem);}
.wpt-grid--4col{grid-template-columns: repeat(4, 1fr);gap: var(--wpt-spacing-lg, 1.5rem);}
@media (max-width: 1024px){
.wpt-grid--4col,.wpt-grid--3col{grid-template-columns: repeat(2,1fr);}
}
@media (max-width: 640px){
.wpt-grid--2col,.wpt-grid--3col,.wpt-grid--4col{grid-template-columns: 1fr;}
}
@media (max-width: 640px){
.wpt-hide-mobile{display: none !important;}
}
@media (min-width: 641px) and (max-width: 1024px){
.wpt-hide-tablet{display: none !important;}
}
@media (min-width: 1025px){
.wpt-hide-desktop{display: none !important;}
}
@media (max-width: 640px){
.wpt-mobile-stack{flex-direction: column !important;}
.wpt-mobile-row{flex-direction: row    !important;flex-wrap: wrap;}
}
@media (min-width: 641px) and (max-width: 1024px){
.wpt-tablet-stack{flex-direction: column !important;}
.wpt-tablet-row{flex-direction: row    !important;flex-wrap: wrap;}
}
@media (min-width: 1025px){
.wpt-desktop-stack{flex-direction: column !important;}
.wpt-desktop-row{flex-direction: row    !important;flex-wrap: wrap;}
}
.wpt-sr-only{
position: absolute;width: 1px;height: 1px;
padding: 0;margin: -1px;overflow: hidden;
clip: rect(0,0,0,0);white-space: nowrap;border: 0;
}
#wpt-ip-wrap{
position:        fixed;
inset:           0;
z-index:         999999;
background:      rgba(0, 0, 0, 0.75);
display:         flex;
align-items:     center;
justify-content: center;
padding:         20px;
box-sizing:      border-box;
backdrop-filter: blur(2px);
}
#wpt-ip-modal{
width:            720px;
max-width:        100%;
max-height:       90vh;
background:       #1a2130;
border:           1px solid #2e3a4e;
border-radius:    14px;
box-shadow:       0 24px 80px rgba(0,0,0,0.6);
display:          flex;
flex-direction:   column;
overflow:         hidden;
font-family:      -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.wpt-ip-topbar{
display:         flex;
align-items:     center;
justify-content: space-between;
padding:         14px 16px 12px;
background:      #151c28;
border-bottom:   1px solid #2e3a4e;
flex-shrink:     0;
}
.wpt-ip-topbar-title{
display:     flex;
align-items: center;
gap:         8px;
font-size:   14px;
font-weight: 600;
color:       #e2e8f0;
}
.wpt-ip-close-btn{
display:         flex;
align-items:     center;
justify-content: center;
width:           30px;
height:          30px;
background:      none;
border:          1px solid #2e3a4e;
border-radius:   6px;
color:           #64748b;
cursor:          pointer;
padding:         0;
font-size:       14px;
line-height:     1;
}
.wpt-ip-close-btn:hover{color: #e2e8f0;background: #2e3a4e;border-color: #3d4f66;}
.wpt-ip-cat-bar{
background:    #151c28;
border-bottom: 1px solid #2e3a4e;
flex-shrink:   0;
}
.wpt-ip-cat-tabs{
display:         flex;
padding:         8px 12px 0;
overflow-x:      auto;
scrollbar-width: none;
}
.wpt-ip-cat-tabs::-webkit-scrollbar{display: none;}
.wpt-ip-ctab{
background:     none;
border:         none;
border-bottom:  2px solid transparent;
color:          #4a5568;
cursor:         pointer;
font-size:      12px;
font-weight:    600;
padding:        6px 12px 8px;
white-space:    nowrap;
letter-spacing: 0.02em;
text-transform: capitalize;
border-radius:  4px 4px 0 0;
margin-right:   2px;
}
.wpt-ip-ctab:hover{color: #94a3b8;background: rgba(255,255,255,0.04);}
.wpt-ip-ctab--on{
color:               #ff6b35 !important;
border-bottom-color: #ff6b35;
background:          rgba(255,107,53,0.08);
}
.wpt-ip-search-row{
display:       flex;
align-items:   center;
gap:           10px;
padding:       10px 14px;
background:    #1a2130;
border-bottom: 1px solid #2e3a4e;
flex-shrink:   0;
}
.wpt-ip-search-box{
flex:        1;
position:    relative;
display:     flex;
align-items: center;
}
.wpt-ip-search-svg{
position:       absolute;
left:           10px;
color:          #4a5568;
pointer-events: none;
}
#wpt-ip-search{
width:         100%;
background:    #1e2a3a;
border:        1px solid #2e3a4e;
border-radius: 7px;
padding:       8px 12px 8px 34px;
color:         #e2e8f0;
font-size:     13px;
outline:       none;
}
#wpt-ip-search::placeholder{
color: #4a5568;
}
#wpt-ip-search:focus{
border-color: #ff6b35;
box-shadow: 0 0 0 2px rgba(255, 107, 53, 0.15);
}
.wpt-ip-count{
font-size:   12px;
color:       #4a5568;
white-space: nowrap;
min-width:   60px;
text-align:  right;
}
.wpt-ip-grid-area{
flex:            1;
overflow-y:      auto;
min-height:      0;
padding:         10px;
background:      #1a2130;
scrollbar-width: thin;
scrollbar-color: #2e3a4e #1a2130;
}
.wpt-ip-grid-area::-webkit-scrollbar{width: 5px;}
.wpt-ip-grid-area::-webkit-scrollbar-track{background: #1a2130;}
.wpt-ip-grid-area::-webkit-scrollbar-thumb{background: #2e3a4e;border-radius: 3px;}
.wpt-ip-loading-state{
display:         flex;
flex-direction:  column;
align-items:     center;
justify-content: center;
gap:             12px;
padding:         50px 20px;
color:           #4a5568;
font-size:       13px;
}
.wpt-ip-spinner{
width:            28px;
height:           28px;
border:           3px solid #2e3a4e;
border-top-color: #ff6b35;
border-radius:    50%;
animation: wpt-spin 0.7s linear infinite;
}
@keyframes wpt-spin{
to{
transform: rotate(360deg);
}
}
.wpt-ip-empty-state{
text-align: center;
padding:    50px 20px;
color:      #4a5568;
font-size:  13px;
}
.wpt-ip-grid{
display:               grid;
grid-template-columns: repeat( auto-fill, minmax(46px, 1fr) );
gap:                   4px;
}
.wpt-ip-item{
display:         flex;
align-items:     center;
justify-content: center;
aspect-ratio:    1;
background:      #1e2a3a;
border:          1px solid transparent;
border-radius:   7px;
color:           #64748b;
cursor:          pointer;
padding:         0;
position:        relative;
}
.wpt-ip-item:hover{background: #263347;color: #e2e8f0;border-color: #3d4f66;}
.wpt-ip-item--on{
background:   rgba(255, 107, 53, 0.15) !important;
border-color: #ff6b35 !important;
color:        #ff6b35 !important;
}
.wpt-ip-item--pending{
background:   rgba(255, 107, 53, 0.28) !important;
border-color: #ff6b35 !important;
color:        #ff6b35 !important;
box-shadow:   0 0 0 2px rgba(255, 107, 53, 0.4) !important;
}
.wpt-ip-item:hover::after{
content:        attr(title);
position:       absolute;
top:            calc(100% + 5px);
left:           50%;
transform:      translateX(-50%);
background:     #0f1520;
border:         1px solid #2e3a4e;
color:          #e2e8f0;
font-size:      10px;
line-height:    1.2;
padding:        3px 7px;
border-radius:  4px;
white-space:    nowrap;
pointer-events: none;
z-index:        10;
max-width:      180px;
overflow:       hidden;
text-overflow:  ellipsis;
}
.wpt-ip-footer{
display:        flex;
flex-direction: column;
padding:        0;
background:     #151c28;
border-top:     1px solid #2e3a4e;
flex-shrink:    0;
}
.wpt-ip-size-row{
display:       flex;
align-items:   center;
gap:           8px;
padding:       8px 14px;
border-bottom: 1px solid #2e3a4e;
background:    #131a26;
}
.wpt-ip-size-label{
font-size:      10px;
font-weight:    700;
color:          #4a5568;
text-transform: uppercase;
letter-spacing: 0.05em;
flex-shrink:    0;
}
.wpt-ip-size-btns{
display:         flex;
gap:             4px;
flex-wrap:       wrap;
flex:            1;
min-width:       0;
}
.wpt-ip-size-btn{
background:    none;
border:        1px solid #2e3a4e;
border-radius: 5px;
color:         #64748b;
cursor:        pointer;
font-size:     10px;
font-weight:   600;
padding:       4px 8px;
white-space:   nowrap;
flex-shrink:   0;
line-height:   1;
}
.wpt-ip-size-btn:hover{color: #e2e8f0;border-color: #3d4f66;background: #263347;}
.wpt-ip-size-btn--on{
background:   rgba(255, 107, 53, 0.18) !important;
border-color: #ff6b35 !important;
color:        #ff6b35 !important;
}
.wpt-ip-size-px{
font-size:   10px;
color:       #ff6b35;
font-family: monospace;
font-weight: 700;
flex-shrink: 0;
min-width:   30px;
text-align:  right;
}
.wpt-ip-footer-main{
display:         flex;
align-items:     center;
justify-content: space-between;
padding:         10px 14px;
gap:             10px;
}
.wpt-ip-footer-left{
display:     flex;
align-items: center;
gap:         10px;
min-width:   0;
flex-shrink: 1;
}
.wpt-ip-footer-thumb{
display:         flex;
align-items:     center;
justify-content: center;
width:           38px;
height:          38px;
background:      #1e2a3a;
border:          1px solid #2e3a4e;
border-radius:   8px;
flex-shrink:     0;
}
.wpt-ip-footer-name{
font-size:     13px;
font-weight:   500;
color:         #e2e8f0;
font-family:   monospace;
overflow:      hidden;
text-overflow: ellipsis;
white-space:   nowrap;
max-width:     180px;
}
.wpt-ip-footer-hint{
font-size:  11px;
color:      #4a5568;
margin-top: 1px;
}
.wpt-ip-footer-actions{
display:     flex;
align-items: center;
gap:         8px;
flex-shrink: 0;
}
.wpt-ip-insert-btn{
display:       inline-flex;
align-items:   center;
background:    #1e2a3a;
border:        1px solid #2e3a4e;
border-radius: 6px;
color:         #4a5568;
cursor:        default;
font-size:     12px;
font-weight:   600;
padding:       7px 14px;
white-space:   nowrap;
opacity:       0.5;
}
.wpt-ip-insert-btn--ready{
background:   #ff6b35;
border-color: #e85a22;
color:        #ffffff;
cursor:       pointer;
opacity:      1;
}
.wpt-ip-insert-btn--ready:hover{
background:   #e85a22;
border-color: #cc4d1a;
}
.wpt-ip-insert-btn--ready:focus-visible{
outline:        2px solid #ff6b35;
outline-offset: 2px;
}
.wpt-ip-clear-btn{
background:    none;
border:        1px solid #2e3a4e;
border-radius: 6px;
color:         #64748b;
cursor:        pointer;
font-size:     12px;
padding:       6px 12px;
white-space:   nowrap;
flex-shrink:   0;
}
.wpt-ip-clear-btn:hover{color: #e2e8f0;border-color: #3d4f66;background: #2e3a4e;}
.wpt-ip-trigger{
display:       inline-flex;
align-items:   center;
gap:           8px;
padding:       7px 10px;
background:    #1e2a3a;
border:        1px solid #2e3a4e;
border-radius: 7px;
color:         #94a3b8;
cursor:        pointer;
font-size:     12px;
min-width:     150px;
max-width:     100%;
user-select:   none;
}
.wpt-ip-trigger:hover{border-color: #ff6b35;background: #263347;}
.wpt-ip-trigger-icon{
display:         flex;
align-items:     center;
justify-content: center;
width:           26px;
height:          26px;
background:      #ff6b35;
border-radius:   5px;
flex-shrink:     0;
}
.wpt-ip-trigger-label{
flex:          1;
overflow:      hidden;
text-overflow: ellipsis;
white-space:   nowrap;
font-family:   monospace;
}
#wpt-ip-modal *,
#wpt-ip-modal *::before,
#wpt-ip-modal *::after{
box-sizing: border-box;
}
#wpt-ip-modal button:focus-visible{
outline: 2px solid #ff6b35;
outline-offset: 2px;
}
#wpt-ip-modal p{
margin: 0;
}
.wpt-icon-mask{
display:               inline-block;
flex-shrink:           0;
vertical-align:        middle;
background-color:      currentColor;
-webkit-mask-image:    var(--tp-icon-src);
mask-image:    var(--tp-icon-src);
-webkit-mask-size:     contain;
mask-size:     contain;
-webkit-mask-repeat:   no-repeat;
mask-repeat:   no-repeat;
-webkit-mask-position: center;
mask-position: center;
}
.wpt-icon-mask--xs{
width:  var(--tp-icon-size-xs, 16px);
height: var(--tp-icon-size-xs, 16px);
}
.wpt-icon-mask--sm{
width:  var(--tp-icon-size-sm, 20px);
height: var(--tp-icon-size-sm, 20px);
}
.wpt-icon-mask--md{
width:  var(--tp-icon-size-md, 24px);
height: var(--tp-icon-size-md, 24px);
}
.wpt-icon-mask--lg{
width:  var(--tp-icon-size-lg, 28px);
height: var(--tp-icon-size-lg, 28px);
}
.wpt-icon-mask--xl{
width:  var(--tp-icon-size-xl, 32px);
height: var(--tp-icon-size-xl, 32px);
}
.wpt-icon-mask--2xl{
width:  var(--tp-icon-size-2xl, 40px);
height: var(--tp-icon-size-2xl, 40px);
}
.wpt-icon-mask--3xl{
width:  var(--tp-icon-size-3xl, 48px);
height: var(--tp-icon-size-3xl, 48px);
}
.wpt-icon-mask--4xl{
width:  var(--tp-icon-size-4xl, 56px);
height: var(--tp-icon-size-4xl, 56px);
}
.wpt-icon-mask--5xl{
width:  var(--tp-icon-size-5xl, 64px);
height: var(--tp-icon-size-5xl, 64px);
}
.wpt-ip-cat-bar--searching .wpt-ip-ctab{
opacity:        0.35;
cursor:         default;
pointer-events: none;
}
.wpt-ip-search-clear{
position:    absolute;
right:       8px;
background:  none;
border:      none;
color:       #4a5568;
cursor:      pointer;
font-size:   12px;
line-height: 1;
padding:     2px 4px;
}
.wpt-ip-search-clear:hover{color: #e2e8f0;}
.wpt-ip-grid--search{
grid-template-columns: repeat( auto-fill, minmax(52px, 1fr) );
gap: 4px;
}
.wpt-ip-item--search{
flex-direction: column;
gap:            2px;
aspect-ratio:   unset;
padding:        6px 2px 4px;
height:         60px;
}
.wpt-ip-item-cat{
display:       block;
font-size:     8px;
line-height:   1.1;
color:         #4a5568;
text-align:    center;
overflow:      hidden;
text-overflow: ellipsis;
white-space:   nowrap;
width:         100%;
padding:       0 2px;
}
.wpt-ip-item--search:hover .wpt-ip-item-cat{color: #94a3b8;}
.wpt-ip-item--on .wpt-ip-item-cat{color: #ff6b35 !important;}
.wpt-ip-item--pending .wpt-ip-item-cat{color: #ff6b35 !important;}