@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');

* { box-sizing: border-box; }
body { font-family: "Pretendard", system-ui, sans-serif; }

.surface {
    border: 1px solid rgb(226 232 240);
    border-radius: 1rem;
    background: white;
    box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
}

.kpi-card {
    position: relative;
    min-height: 150px;
    overflow: hidden;
    border: 1px solid rgb(226 232 240);
    border-radius: 1rem;
    background: white;
    padding: 1.25rem;
    box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
}
.kpi-card.compact { min-height: 112px; }
.kpi-icon {
    position: absolute; right: 1rem; top: 1rem;
    display: flex; height: 2.75rem; width: 2.75rem;
    align-items: center; justify-content: center; border-radius: 9999px;
}
.kpi-icon svg { height: 1.25rem; width: 1.25rem; }
.kpi-label { font-size: .78rem; font-weight: 800; color: rgb(71 85 105); }
.kpi-value { display: block; margin-top: .65rem; font-size: 1.55rem; font-weight: 900; letter-spacing: -.03em; }
.kpi-sub { margin-top: .65rem; font-size: .7rem; font-weight: 700; color: rgb(148 163 184); }
.progress-track { height: .45rem; margin-top: .7rem; overflow: hidden; border-radius: 9999px; background: rgb(254 226 226); }
.progress-bar { height: 100%; width: 0; border-radius: 9999px; background: #e61328; transition: width .25s ease; }

.segmented {
    display: inline-flex; gap: .25rem; border-radius: .8rem;
    background: rgb(241 245 249); padding: .25rem;
}
.segmented button {
    border-radius: .65rem; padding: .68rem 1.15rem;
    font-size: .75rem; font-weight: 800; color: rgb(71 85 105);
}
.segmented.small button { padding: .6rem 1rem; }
.segmented button.active {
    background: #e61328; color: white;
    box-shadow: 0 3px 10px rgb(230 19 40 / .18);
}

.table-scroll { overflow-x: auto; }
.ranking-table { width: 100%; min-width: 1280px; border-collapse: separate; border-spacing: 0; font-size: .72rem; }
.ranking-table th {
    height: 48px; border-bottom: 1px solid rgb(226 232 240);
    border-right: 1px solid rgb(226 232 240); background: rgb(248 250 252);
    padding: .7rem .8rem; text-align: center; font-weight: 900; color: rgb(51 65 85);
}
.ranking-table td {
    height: 62px; border-bottom: 1px solid rgb(241 245 249);
    border-right: 1px solid rgb(241 245 249); padding: .6rem .8rem; text-align: center;
    background: white;
}
.ranking-table tbody tr:hover td { background: rgb(248 250 252); }
.ranking-table .sticky-rank { position: sticky; left: 0; z-index: 5; width: 64px; min-width: 64px; }
.ranking-table .sticky-product { position: sticky; left: 64px; z-index: 4; width: 220px; min-width: 220px; text-align: left; }
.ranking-table td.sticky-rank, .ranking-table td.sticky-product { background: white; }
.value-main { font-weight: 900; color: rgb(15 23 42); white-space: nowrap; }
.rank-up { color: #e61328; font-weight: 900; }
.rank-down { color: #2563eb; font-weight: 900; }
.rank-same { color: rgb(148 163 184); font-weight: 800; }
.new-badge {
    display: inline-flex; align-items: center; gap: .2rem; margin-top: .25rem;
    border-radius: 9999px; background: rgb(254 243 199); color: rgb(180 83 9);
    padding: .15rem .45rem; font-size: .58rem; font-weight: 900;
}
.manager-badge {
    display: inline-flex; align-items: center; gap: .35rem;
    border-radius: 9999px; padding: .3rem .55rem;
    font-size: .65rem; font-weight: 900;
}

.admin-nav {
    display: flex; width: 100%; align-items: center; gap: .75rem;
    border-radius: .8rem; padding: .85rem .9rem;
    text-align: left; font-size: .78rem; font-weight: 800; color: rgb(71 85 105);
}
.admin-nav svg { width: 1.05rem; height: 1.05rem; }
.admin-nav:hover { background: rgb(248 250 252); }
.admin-nav.active { background: #e61328; color: white; }

.section-title { display: flex; align-items: center; gap: .5rem; font-size: .95rem; font-weight: 900; color: rgb(15 23 42); }
.section-title svg { width: 1rem; height: 1rem; color: #e61328; }

.form-label { display: block; font-size: .72rem; font-weight: 800; color: rgb(71 85 105); }
.form-input, .input-file {
    margin-top: .45rem; width: 100%; border: 1px solid rgb(226 232 240);
    border-radius: .75rem; background: rgb(248 250 252);
    padding: .75rem .9rem; font-size: .78rem; outline: none;
}
.form-input:focus, .input-file:focus { border-color: #e61328; }

.simple-table { width: 100%; font-size: .72rem; }
.simple-table th { background: rgb(248 250 252); padding: .8rem 1rem; text-align: left; font-weight: 900; color: rgb(71 85 105); }
.simple-table td { border-top: 1px solid rgb(241 245 249); padding: .8rem 1rem; font-weight: 600; color: rgb(51 65 85); }

.modal {
    position: fixed; inset: 0; z-index: 60; align-items: center; justify-content: center;
    background: rgb(15 23 42 / .4); padding: 1rem; backdrop-filter: blur(6px);
}
.modal:not(.hidden) { display: flex; }
.modal-card { width: 100%; max-width: 420px; border-radius: 1rem; background: white; padding: 1.5rem; box-shadow: 0 24px 70px rgb(15 23 42 / .25); }

@media (max-width: 900px) {
    .ranking-table .sticky-product { width: 220px; min-width: 220px; }
}

.product-name-clamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    line-height: 1.35;
    word-break: break-all;
}


/* v2.3 sales-goal signals: orange = expected goal product, yellow = strong goal product */
@keyframes salesGoalBlink {
    0%, 100% { opacity: 1; box-shadow: inset 0 0 0 2px rgb(255 255 255 / .25); }
    50% { opacity: .58; box-shadow: inset 0 0 0 2px rgb(15 23 42 / .08); }
}
.sales-goal-orange {
    background: #fb923c !important;
    color: #431407 !important;
    animation: salesGoalBlink 1.25s ease-in-out infinite;
}
.sales-goal-yellow {
    background: #fde047 !important;
    color: #422006 !important;
    animation: salesGoalBlink 1.05s ease-in-out infinite;
}
.sales-goal-orange .value-main, .sales-goal-yellow .value-main,
.sales-goal-orange .rank-same, .sales-goal-yellow .rank-same,
.sales-goal-orange .rank-up, .sales-goal-yellow .rank-up,
.sales-goal-orange .rank-down, .sales-goal-yellow .rank-down { color: inherit !important; }
@media (prefers-reduced-motion: reduce) {
    .sales-goal-orange, .sales-goal-yellow { animation: none; }
}

/* v2.7 기준일 탐색 · 상세 팝업 */
.date-navigator{display:inline-flex;align-items:center;gap:.25rem;border:1px solid rgb(226 232 240);border-radius:1rem;background:#fff;padding:.3rem;box-shadow:0 1px 2px rgba(15,23,42,.04);cursor:pointer;transition:border-color .18s,box-shadow .18s}.date-navigator:hover{border-color:#cbd5e1;box-shadow:0 4px 14px rgba(15,23,42,.08)}
.nav-arrow{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:.6rem;color:rgb(71 85 105)}
.nav-arrow:hover{background:rgb(241 245 249)}.nav-arrow:disabled{opacity:.3;cursor:not-allowed}.nav-arrow svg{width:16px;height:16px}
.anchor-picker{height:36px;min-width:142px;border:0;outline:0;padding:0 .65rem;font-size:.78rem;font-weight:900;color:rgb(30 41 59);background:white;cursor:pointer;border-radius:.65rem}.anchor-picker::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.75;padding:.45rem;margin-left:.35rem;border-radius:.5rem}.anchor-picker::-webkit-calendar-picker-indicator:hover{background:#f1f5f9;opacity:1}
.period-head{min-width:132px}.period-title{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;white-space:nowrap;font-weight:900}.period-title:hover{color:#e61328}.period-sub{margin-top:.15rem;font-size:10px;color:rgb(148 163 184)}
.base-badge{display:inline-flex;border-radius:9999px;background:#e61328;color:white;padding:.12rem .38rem;font-size:.55rem;font-weight:900}
.ranking-table .sticky-product{width:285px;min-width:285px}.admin-ranking-table .sticky-product{width:310px;min-width:310px}.product-click{cursor:pointer}.product-click:hover .product-name-clamp{color:#e61328}
.modal-card-wide{max-width:720px}.modal-card-xl{max-width:980px;max-height:88vh;overflow:auto}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.modal-close{font-size:1.6rem;line-height:1;color:rgb(100 116 139);padding:.2rem .45rem}
.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.summary-card{border:1px solid rgb(226 232 240);border-radius:.85rem;background:rgb(248 250 252);padding:1rem}.summary-card span{display:block;font-size:.68rem;font-weight:800;color:rgb(100 116 139)}.summary-card strong{display:block;margin-top:.4rem;font-size:1.05rem;font-weight:900;color:rgb(15 23 42)}.summary-card-expectation{padding-bottom:.85rem}.trend-message{margin-top:.7rem;padding-top:.65rem;border-top:1px solid rgb(226 232 240);font-size:.72rem;font-weight:850;line-height:1.45}.trend-message small{display:block;margin-top:.18rem;font-size:.64rem;font-weight:750;opacity:.78}.trend-up{color:rgb(21 128 61)}.trend-stable{color:rgb(71 85 105)}.trend-down{color:rgb(185 28 28)}
.detail-title{margin-top:1.35rem;margin-bottom:.65rem;font-size:.82rem;font-weight:900;color:rgb(15 23 42)}.detail-list{overflow:hidden;border:1px solid rgb(226 232 240);border-radius:.85rem}.detail-list>div{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid rgb(241 245 249);padding:.7rem .85rem;font-size:.72rem}.detail-list>div:first-child{border-top:0}.detail-list span{color:rgb(100 116 139);text-align:right}
@media(max-width:900px){.ranking-table .sticky-product,.admin-ranking-table .sticky-product{width:250px;min-width:250px}.summary-grid{grid-template-columns:1fr}.period-head{min-width:120px}}

.nav-arrow:disabled{opacity:.28;cursor:not-allowed;background:#f8fafc}.nav-arrow:disabled:hover{background:#f8fafc}

/* v2.8.0 랭킹 UI 개선 */
.ranking-table td { background: #fff; }
.ranking-table tbody tr:hover td { background: rgb(248 250 252); }
.value-main {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: .18rem .45rem;
    border-radius: .55rem;
    font-size: .94rem;
    line-height: 1.1;
    letter-spacing: -.025em;
}
.sales-goal-orange,
.sales-goal-yellow {
    animation: none !important;
    box-shadow: none !important;
}
.sales-goal-orange {
    background: #fff0e4 !important;
    color: #c2410c !important;
    outline: 1px solid #fed7aa;
}
.sales-goal-yellow {
    background: #fff8cc !important;
    color: #9a6500 !important;
    outline: 1px solid #fde68a;
}
.ranking-table .rank-up,
.ranking-table .rank-down,
.ranking-table .rank-same { font-size: .66rem; }

.analysis-period-tabs { flex-shrink: 0; }
.analysis-period-btn { min-width: 64px; }
.analysis-period-btn.active { background: #e61328; color: #fff; box-shadow: 0 5px 14px rgba(230,19,40,.2); }
.analysis-panel { border: 1px solid rgb(226 232 240); border-radius: 1rem; background: #fff; padding: 1rem; min-width: 0; }
.analysis-panel-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.analysis-panel-head strong { font-size:.82rem; font-weight:900; color:rgb(15 23 42); }
.analysis-panel-head span { font-size:.67rem; font-weight:700; color:rgb(100 116 139); }
.analysis-chart-wrap { height: 410px; }
.product-share-layout { display:grid; grid-template-columns:minmax(210px,.9fr) minmax(230px,1.1fr); align-items:center; gap:1rem; min-height:410px; }
.share-chart-wrap { height:310px; min-width:0; }
.share-legend { min-width:0; max-height:360px; overflow:auto; padding-right:.25rem; }
.share-total { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; border-bottom:1px solid rgb(226 232 240); padding:0 .2rem .7rem; margin-bottom:.35rem; }
.share-total span { font-size:.65rem; font-weight:800; color:rgb(100 116 139); }
.share-total strong { font-size:.9rem; font-weight:900; color:rgb(15 23 42); }
.share-legend-row { display:grid; grid-template-columns:10px minmax(0,1fr) 46px 82px; align-items:center; gap:.45rem; padding:.46rem .2rem; border-bottom:1px solid rgb(241 245 249); }
.share-dot { width:9px; height:9px; border-radius:50%; }
.share-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.67rem; font-weight:800; color:rgb(51 65 85); }
.share-legend-row strong { text-align:right; font-size:.68rem; font-weight:900; color:rgb(15 23 42); }
.share-legend-row small { text-align:right; font-size:.62rem; font-weight:700; color:rgb(100 116 139); }
.share-empty { display:flex; min-height:260px; align-items:center; justify-content:center; color:rgb(148 163 184); font-size:.75rem; font-weight:700; }
@media(max-width:1280px){.product-share-layout{grid-template-columns:1fr}.share-chart-wrap{height:280px}.share-legend{max-height:280px}}
@media(max-width:720px){.value-main{font-size:.84rem}.analysis-chart-wrap{height:340px}.share-legend-row{grid-template-columns:10px minmax(0,1fr) 42px}.share-legend-row small{display:none}}


/* v2.8.0 최종 랭킹 레이아웃 */
.ranking-table { min-width: 1380px; }
.ranking-table .sticky-rank {
    width: 52px;
    min-width: 52px;
    font-size: .66rem;
    font-weight: 900;
}
.ranking-table .sticky-product {
    left: 52px;
    width: 340px;
    min-width: 340px;
}
.admin-ranking-table .sticky-product {
    width: 365px;
    min-width: 365px;
}
.product-name-clamp {
    line-height: 1.42;
    word-break: keep-all;
    overflow-wrap: anywhere;
}
.value-main {
    min-height: 32px;
    padding: .22rem .52rem;
    font-size: 1rem;
    border-radius: .62rem;
}
.ranking-table td.sticky-rank {
    font-size: .68rem;
}
@media (max-width: 900px) {
    .ranking-table .sticky-product,
    .admin-ranking-table .sticky-product {
        left: 52px;
        width: 280px;
        min-width: 280px;
    }
    .value-main { font-size: .9rem; }
}

/* v2.8.1 랭킹 가독성 및 기준 열 강조 */
.ranking-table { font-size: .80rem; }
.ranking-table th { font-size: .78rem; padding: .78rem .85rem; }
.ranking-table td { height: 68px; padding: .68rem .85rem; }
.ranking-table .sticky-rank,
.ranking-table td.sticky-rank { font-size: .76rem; }
.product-name-clamp { font-size: .80rem; line-height: 1.45; }
.ranking-table .sticky-product .text-\[10px\] { font-size: .68rem; }
.value-row { display:flex; align-items:center; justify-content:center; gap:.38rem; min-height:34px; white-space:nowrap; }
.value-main { display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:.20rem .48rem; font-size:.80rem; line-height:1; }
.ranking-table .rank-up,
.ranking-table .rank-down,
.ranking-table .rank-same { margin-top:0 !important; font-size:.68rem; line-height:1; white-space:nowrap; }
.value-row .new-badge { margin-top:0; font-size:.56rem; }
.insight-slot { min-height:14px; margin-top:.18rem; display:flex; align-items:center; justify-content:center; gap:.22rem; }
.ranking-table th.base-period { border-left:3px solid #111827; border-right:3px solid #111827; border-top:3px solid #111827; background:#fff7d6; }
.ranking-table td.base-period { border-left:3px solid #111827; border-right:3px solid #111827; background:#fffdf0; }
.ranking-table tbody tr:hover td.base-period { background:#fff8d8; }
.ranking-table tbody tr:last-child td.base-period { border-bottom:3px solid #111827; }
.ranking-table th.base-period .period-title { font-size:.94rem; font-weight:950; color:#0f172a; }
.ranking-table td.base-period .value-main { font-size:.96rem; font-weight:950; }
.ranking-table td.base-period .rank-up,
.ranking-table td.base-period .rank-down,
.ranking-table td.base-period .rank-same { font-size:.72rem; font-weight:900; }
@media(max-width:900px){
  .ranking-table{font-size:.75rem}.ranking-table th{font-size:.73rem}.product-name-clamp{font-size:.76rem}
  .value-main{font-size:.76rem}.ranking-table td.base-period .value-main{font-size:.90rem}
}


/* v2.8.3 상품 운영 상태 말풍선 */
.value-main{padding:0!important;border-radius:0!important;background:transparent!important;outline:0!important;color:#0f172a!important;min-height:auto}
.insight-slot{min-height:25px;margin-top:.30rem;overflow:visible}
.status-bubble{--status-bg:#f1f5f9;--status-fg:#475569;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.26rem;min-height:22px;padding:.18rem .58rem;border-radius:999px;background:var(--status-bg);color:var(--status-fg);font-size:.62rem;font-weight:700;line-height:1;white-space:nowrap;box-shadow:0 1px 2px rgba(15,23,42,.06);cursor:help;transform:translateY(0);z-index:3}
.status-bubble::before{content:"";position:absolute;left:50%;top:-5px;transform:translateX(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:6px solid var(--status-bg)}
.status-bubble .status-icon{font-size:.76rem;line-height:1}.status-bubble strong{font-weight:950}.status-bubble>span:last-child{opacity:.82;font-weight:750}
.status-achieved{--status-bg:#e7f8ed;--status-fg:#15803d}.status-near{--status-bg:#f1e8ff;--status-fg:#7e22ce}.status-growth{--status-bg:#e5f1ff;--status-fg:#1d4ed8}.status-watch{--status-bg:#fff5cf;--status-fg:#a16207}.status-stagnant{--status-bg:#ffeadb;--status-fg:#c2410c}.status-new{--status-bg:#e5f7ff;--status-fg:#0369a1}
@keyframes statusBubbleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.status-float{animation:statusBubbleFloat 3.5s ease-in-out infinite}.status-growth.status-float,.status-new.status-float{animation-duration:4.2s}.status-bubble:hover{animation-play-state:paused}
.status-bubble::after{display:none!important}
.status-tooltip-portal{position:fixed;z-index:9999;max-width:280px;padding:.58rem .68rem;border-radius:.58rem;background:#0f172a;color:#fff;font-size:.66rem;font-weight:650;line-height:1.48;white-space:normal;text-align:left;box-shadow:0 12px 32px rgba(15,23,42,.28);pointer-events:none;opacity:0;visibility:hidden;transform:translateY(5px);transition:opacity .14s ease,transform .14s ease,visibility .14s ease}
.status-tooltip-portal.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.status-tooltip-portal::after{content:"";position:absolute;left:var(--tooltip-arrow-left,50%);bottom:-6px;transform:translateX(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #0f172a}
.status-tooltip-portal.is-below::after{top:-6px;bottom:auto;border-top:0;border-bottom:6px solid #0f172a}
.status-modal{margin:.15rem 0 1rem .1rem;animation:none!important;font-size:.70rem;min-height:25px;padding:.25rem .68rem}
.ranking-table td.base-period{overflow:visible}
@media(prefers-reduced-motion:reduce){.status-float{animation:none}}


/* v2.8.3 fixed7: 담당자 표시 및 관리자 랭킹 열 너비 개선 */
.product-name-line{display:flex;align-items:baseline;gap:.42rem;min-width:0}
.product-name-line .product-name-clamp{min-width:0}
.front-manager-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:9999px;padding:.22rem .48rem;font-size:.62rem;font-weight:900;line-height:1;white-space:nowrap;box-shadow:0 1px 2px rgba(15,23,42,.08)}
.admin-ranking-table .admin-manager-head,
.admin-ranking-table .admin-manager-cell{width:82px;min-width:82px;max-width:82px;text-align:center;white-space:nowrap}
.admin-ranking-table .admin-manager-cell>*{white-space:nowrap}
.admin-ranking-table .admin-manage-head,
.admin-ranking-table .admin-manage-cell{width:102px;min-width:102px;max-width:102px;text-align:center}
.admin-manage-actions{display:flex;flex-direction:column;align-items:stretch;gap:.35rem}
.admin-manage-actions button{width:100%;margin-left:0!important;white-space:nowrap}
@media(max-width:900px){
  .front-manager-badge{font-size:.59rem;padding:.20rem .44rem}
  .admin-ranking-table .admin-manager-head,.admin-ranking-table .admin-manager-cell{width:76px;min-width:76px;max-width:76px}
  .admin-ranking-table .admin-manage-head,.admin-ranking-table .admin-manage-cell{width:96px;min-width:96px;max-width:96px}
}

/* v2.8.3 fixed9: 프론트 담당자명을 관리자와 동일한 색상 배지로 표시 */

/* v2.8.3 fixed10: 상품 상세 담당자 배지 및 30일 추이 스크롤 */
#productDetailTitle{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem}
.detail-manager-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;padding:.3rem .65rem;font-size:.72rem;font-weight:900;line-height:1;white-space:nowrap;box-shadow:0 1px 3px rgba(15,23,42,.10)}
.daily-trend-scroll{max-height:520px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
@media(max-width:640px){.detail-manager-badge{font-size:.68rem;padding:.28rem .58rem}.daily-trend-scroll{max-height:440px}}


/* v2.8.3 fixed12: ranking product search */
.ranking-search-row{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #e2e8f0}
.ranking-search-box{position:relative;display:flex;align-items:center;width:min(520px,100%)}
.ranking-search-box>svg{position:absolute;left:14px;width:17px;height:17px;color:#94a3b8;pointer-events:none}
.ranking-search-box input{width:100%;height:42px;border:1px solid #cbd5e1;border-radius:13px;background:#fff;padding:0 42px 0 42px;font-size:13px;font-weight:700;color:#0f172a;outline:none;transition:.18s ease}
.ranking-search-box input::placeholder{color:#94a3b8;font-weight:600}
.ranking-search-box input:focus{border-color:#ef233c;box-shadow:0 0 0 3px rgba(239,35,60,.10)}
.ranking-search-clear{position:absolute;right:9px;width:28px;height:28px;border:0;border-radius:9px;background:#f1f5f9;color:#64748b;font-size:19px;line-height:1;cursor:pointer}
.ranking-search-clear:hover{background:#e2e8f0;color:#0f172a}
.ranking-search-hint{font-size:11px;font-weight:600;color:#94a3b8}
@media(max-width:760px){.ranking-search-row{align-items:stretch;flex-direction:column}.ranking-search-box{width:100%}.ranking-search-hint{padding-left:2px}}

/* fixed13: ranking controls + centered product search */
.ranking-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,430px) minmax(0,1fr);align-items:center;gap:18px}
.ranking-toolbar-left,.ranking-toolbar-right{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.ranking-toolbar-right{justify-content:flex-end}
.ranking-toolbar-search{display:flex;justify-content:center;min-width:0}
.ranking-toolbar-search .ranking-search-box{width:100%;max-width:430px}
@media(max-width:1280px){.ranking-toolbar{grid-template-columns:1fr 1fr}.ranking-toolbar-search{grid-column:1/-1;grid-row:2}.ranking-toolbar-search .ranking-search-box{max-width:560px}.ranking-toolbar-right{justify-content:flex-end}}
@media(max-width:760px){.ranking-toolbar{display:flex;flex-direction:column;align-items:stretch}.ranking-toolbar-left,.ranking-toolbar-right{justify-content:center}.ranking-toolbar-search{order:2}.ranking-toolbar-right{order:3}.ranking-toolbar-search .ranking-search-box{max-width:none}}

/* v2.8.3-fixed15: sales analysis sub-navigation and monthly achievers */
.analysis-subnav{display:flex;flex-wrap:wrap;gap:.55rem}.analysis-view-btn{display:inline-flex;align-items:center;gap:.45rem;border:1px solid rgb(226 232 240);border-radius:.75rem;background:#fff;padding:.72rem 1rem;font-size:.78rem;font-weight:900;color:rgb(71 85 105);transition:.18s ease}.analysis-view-btn svg{width:1rem;height:1rem}.analysis-view-btn:hover{border-color:rgb(203 213 225);background:rgb(248 250 252)}.analysis-view-btn.active{border-color:#e61328;background:#e61328;color:#fff;box-shadow:0 7px 18px rgba(230,19,40,.16)}
.achiever-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr)) auto;gap:.8rem;align-items:end}.achiever-search-wrap{min-width:210px}.achiever-submit{height:2.78rem;border-radius:.75rem;background:#0f172a;padding:0 1.35rem;font-size:.78rem;font-weight:900;color:#fff}.achiever-submit:hover{background:#1e293b}
.achiever-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.achiever-summary-card{border:1px solid rgb(226 232 240);border-radius:1rem;background:rgb(248 250 252);padding:1rem}.achiever-summary-card span{display:block;font-size:.7rem;font-weight:850;color:rgb(100 116 139)}.achiever-summary-card strong{display:block;margin-top:.35rem;font-size:1.25rem;font-weight:950;color:rgb(15 23 42)}.achiever-summary-card small{display:block;margin-top:.3rem;font-size:.65rem;font-weight:750;color:rgb(148 163 184)}
.achiever-table-wrap{max-width:100%;overflow:auto}.achiever-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:.72rem}.achiever-table th,.achiever-table td{min-width:118px;border-bottom:1px solid rgb(241 245 249);border-right:1px solid rgb(241 245 249);padding:.72rem .75rem;text-align:right;white-space:nowrap;vertical-align:middle}.achiever-table th{position:sticky;top:0;z-index:4;background:rgb(248 250 252);font-size:.67rem;font-weight:900;color:rgb(71 85 105)}.achiever-table td strong{display:block;font-size:.73rem;font-weight:900;color:rgb(15 23 42)}.achiever-table td small{display:block;margin-top:.18rem;font-size:.61rem;font-weight:750;color:rgb(148 163 184)}.achiever-table .achiever-rank{min-width:56px;text-align:center;font-weight:950;color:rgb(100 116 139)}.achiever-table .sticky-product{position:sticky;left:0;z-index:3;min-width:285px;max-width:285px;text-align:left;background:#fff}.achiever-table thead .sticky-product{z-index:6;background:rgb(248 250 252)}.achiever-product button{display:block;width:100%;text-align:left}.achiever-product strong{overflow:hidden;text-overflow:ellipsis}.achiever-month-cell.achieved{background:rgba(230,19,40,.055)}.achiever-month-cell.achieved strong{color:#e61328}.achiever-month-cell.achieved small{color:#e61328;font-weight:900}.achiever-table tbody tr:hover td{background:rgb(248 250 252)}.achiever-table tbody tr:hover .sticky-product{background:rgb(248 250 252)}
@media(max-width:1500px){.achiever-filter-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}.achiever-submit{width:100%}}
@media(max-width:900px){.analysis-subnav{display:grid;grid-template-columns:1fr 1fr}.analysis-view-btn{justify-content:center}.achiever-filter-grid{grid-template-columns:1fr 1fr}.achiever-summary-grid{grid-template-columns:1fr 1fr}.achiever-table .sticky-product{min-width:230px;max-width:230px}}
@media(max-width:560px){.achiever-filter-grid,.achiever-summary-grid{grid-template-columns:1fr}.analysis-view-btn{padding:.68rem .55rem;font-size:.7rem}}

/* v2.8.3-fixed17: AI operations home */
.home-shell{max-width:1540px;margin:0 auto;padding:16px 20px 22px}.home-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 24px}.home-brand{font-size:1.5rem;font-weight:950;letter-spacing:-.035em;color:#0f172a}.home-brand span{color:#e61328}.home-header p{margin-top:4px;font-size:.72rem;font-weight:700;color:#64748b}.home-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.home-data-date{display:inline-flex;align-items:center;gap:7px;font-size:.72rem;font-weight:800;color:#64748b}.home-data-date svg{width:15px;height:15px}.home-header-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;padding:10px 14px;font-size:.72rem;font-weight:900;color:#334155;transition:.18s ease}.home-header-btn svg{width:15px;height:15px}.home-header-btn:hover{background:#f8fafc;border-color:#94a3b8}.home-header-btn.primary{border-color:#0f172a;background:#0f172a;color:#fff}.home-header-btn.is-loading svg{animation:homeSpin .8s linear infinite}@keyframes homeSpin{to{transform:rotate(360deg)}}
.home-summary-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.home-summary-panel{padding:16px 20px}.home-panel-title{display:flex;align-items:center;gap:8px;font-size:.82rem;color:#0f172a}.home-panel-title svg{width:16px;height:16px;color:#e61328}.home-panel-title>span{font-size:.66rem;font-weight:800;color:#94a3b8}.home-summary-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:15px;border-top:1px solid #eef2f7;padding-top:14px}.home-summary-stats>div{padding:0 16px;border-left:1px solid #eef2f7}.home-summary-stats>div:first-child{padding-left:0;border-left:0}.home-summary-stats span{display:block;font-size:.66rem;font-weight:800;color:#94a3b8}.home-summary-stats strong{display:block;margin-top:5px;font-size:1.08rem;font-weight:950;color:#0f172a}.home-notice-list{margin-top:12px}.home-notice-list>div{display:flex;align-items:center;gap:9px;min-height:31px;border-top:1px solid #f1f5f9;font-size:.69rem}.home-notice-list>div:first-child{border-top:0}.home-notice-list p{font-weight:750;color:#475569}.notice-dot{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:.58rem;font-weight:950}.notice-dot.red{background:#fff1f2;color:#e11d48}.notice-dot.orange{background:#fff7ed;color:#ea580c}.notice-dot.blue{background:#eff6ff;color:#2563eb}
.home-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:center;gap:32px;margin-top:14px;overflow:hidden;padding:42px 48px}.home-eyebrow{font-size:.68rem;font-weight:950;letter-spacing:.12em;color:#64748b}.home-hero h2{margin-top:9px;font-size:3rem;line-height:1.08;font-weight:950;letter-spacing:-.055em;color:#172033}.home-hero h2 em{font-style:normal;color:#e61328}.home-hero-desc{margin-top:14px;max-width:690px;font-size:.92rem;font-weight:650;line-height:1.75;color:#64748b}.ai-chat-box{margin-top:24px;max-width:760px;border:1px solid #e2e8f0;border-radius:20px;background:linear-gradient(180deg,#fff,#fbfdff);padding:15px;box-shadow:0 10px 30px rgba(15,23,42,.05)}.ai-chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 4px 10px}.ai-chat-head>span{display:flex;align-items:center;gap:7px;font-size:.76rem;font-weight:950;color:#0f172a}.ai-chat-head svg{width:16px;height:16px;color:#e61328}.ai-chat-head small{font-size:.61rem;font-weight:850;color:#f97316}.ai-chat-head small.connected{color:#16a34a}.ai-chat-input-row{display:grid;grid-template-columns:1fr 44px 44px;gap:8px}.ai-chat-input-row input{height:48px;border:1px solid #dbe3ed;border-radius:14px;background:#fff;padding:0 15px;font-size:.78rem;font-weight:700;color:#0f172a;outline:none}.ai-chat-input-row input:focus{border-color:#e61328;box-shadow:0 0 0 3px rgba(230,19,40,.08)}.ai-icon-btn,.ai-send-btn{display:flex;align-items:center;justify-content:center;border-radius:14px}.ai-icon-btn{border:1px solid #dbe3ed;background:#fff;color:#475569}.ai-send-btn{background:#e61328;color:#fff}.ai-icon-btn svg,.ai-send-btn svg{width:18px;height:18px}.ai-suggestions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.ai-suggestions button{border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;padding:6px 10px;font-size:.62rem;font-weight:800;color:#64748b}.ai-suggestions button:hover{background:#fff;color:#e61328;border-color:#fecdd3}.ai-placeholder-message{margin-top:11px;border-radius:12px;background:#f8fafc;padding:11px 13px;font-size:.69rem;font-weight:700;line-height:1.6;color:#475569}.home-hero-visual{position:relative;min-height:310px;display:flex;align-items:center;justify-content:center}.home-hero-visual:before{content:"";position:absolute;width:330px;height:250px;border-radius:50%;background:radial-gradient(circle at center,rgba(230,19,40,.12),rgba(230,19,40,0) 70%)}.visual-window{position:relative;width:380px;height:245px;border:1px solid #e5e7eb;border-radius:20px;background:rgba(255,255,255,.92);box-shadow:0 25px 60px rgba(15,23,42,.1);padding:18px}.visual-dots{display:flex;gap:6px}.visual-dots span{width:8px;height:8px;border-radius:50%;background:#cbd5e1}.visual-chart{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:34px}.visual-chart svg{width:100%;height:90px;color:#94a3b8;stroke-width:1.3}.visual-chart svg:first-child{color:#e61328}.visual-search{position:absolute;right:25px;bottom:15px;display:flex;align-items:center;justify-content:center;width:110px;height:110px;border-radius:50%;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.12)}.visual-search svg{width:64px;height:64px;color:#334155;stroke-width:1.6}
.operation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.operation-card{position:relative;display:block;min-height:190px;overflow:hidden;border:1px solid rgba(226,232,240,.9);border-radius:20px;padding:20px;text-align:left;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.operation-card:hover{transform:translateY(-2px);box-shadow:0 14px 35px rgba(15,23,42,.08);border-color:#cbd5e1}.operation-icon{display:flex;width:52px;height:52px;align-items:center;justify-content:center;border-radius:16px;background:rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}.operation-icon svg{width:27px;height:27px}.operation-count{position:absolute;top:19px;left:63px;display:inline-flex;align-items:center;min-height:23px;border-radius:999px;padding:3px 8px;background:rgba(255,255,255,.82);font-size:.61rem;font-weight:950}.operation-card strong{display:block;margin-top:17px;font-size:1rem;font-weight:950;color:#0f172a}.operation-card p{max-width:85%;margin-top:7px;font-size:.7rem;font-weight:700;line-height:1.55;color:#64748b}.operation-arrow{position:absolute;right:18px;bottom:18px;display:flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.82);font-size:1rem;font-weight:900;color:#334155}.card-red{background:#fff4f5}.card-red .operation-icon,.card-red .operation-count{color:#e61328}.card-green{background:#f0fbf4}.card-green .operation-icon,.card-green .operation-count{color:#16a34a}.card-orange{background:#fff7ed}.card-orange .operation-icon,.card-orange .operation-count{color:#ea580c}.card-purple{background:#f7f4ff}.card-purple .operation-icon,.card-purple .operation-count{color:#7c3aed}.card-yellow{background:#fffbea}.card-yellow .operation-icon,.card-yellow .operation-count{color:#d97706}.card-blue{background:#f0f7ff}.card-blue .operation-icon,.card-blue .operation-count{color:#2563eb}.card-teal{background:#eefcfb}.card-teal .operation-icon,.card-teal .operation-count{color:#0f766e}.card-slate{background:#f7f9fc}.card-slate .operation-icon,.card-slate .operation-count{color:#475569}.card-indigo{background:#f2f5ff}.card-indigo .operation-icon,.card-indigo .operation-count{color:#3157c8}.home-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 5px 0;font-size:.65rem;font-weight:750;color:#94a3b8}.home-footer>div{display:flex;gap:18px}.home-footer a:hover{color:#475569}
.admin-nav-sub{margin-left:16px;width:calc(100% - 16px);padding:.68rem .8rem;font-size:.72rem;background:#f8fafc}.admin-nav-sub:before{content:"↳";font-weight:900;color:#94a3b8}.admin-nav-sub.active:before{color:#fff}.secret-input-wrap{position:relative}.secret-toggle{position:absolute;right:8px;top:50%;transform:translateY(-32%);border-radius:9px;background:#e2e8f0;padding:6px 10px;font-size:.64rem;font-weight:900;color:#475569}
@media(max-width:1100px){.home-header{align-items:flex-start;flex-direction:column}.home-header-actions{justify-content:flex-start}.home-summary-row{grid-template-columns:1fr}.home-hero{grid-template-columns:1fr;padding:34px}.home-hero-visual{display:none}.operation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.home-shell{padding:10px}.home-header{padding:16px}.home-data-date{width:100%}.home-summary-stats{grid-template-columns:1fr;gap:10px}.home-summary-stats>div{padding:10px 0;border-left:0;border-top:1px solid #f1f5f9}.home-summary-stats>div:first-child{border-top:0}.home-hero{padding:25px 20px}.home-hero h2{font-size:2.2rem}.ai-chat-head{align-items:flex-start;flex-direction:column}.operation-grid{grid-template-columns:1fr}.operation-card{min-height:170px}.home-footer{align-items:flex-start;flex-direction:column}.home-footer>div{flex-wrap:wrap;gap:10px}}

/* =========================================================
   v3.0.0 - JL AI Assistant /new-home
   PC: ChatGPT-style sidebar + conversation
   Mobile: briefing-first AI conversation UI
   ========================================================= */
.ai3-app{--ai3-sidebar:292px;display:grid;grid-template-columns:var(--ai3-sidebar) minmax(0,1fr);height:100dvh;min-height:620px;background:#fff;color:#171717;overflow:hidden}.ai3-sidebar{position:relative;z-index:40;display:flex;min-width:0;flex-direction:column;border-right:1px solid #e8e8e8;background:#f7f7f5;padding:12px 10px;transition:transform .22s ease,width .22s ease}.ai3-sidebar-head{display:flex;min-height:44px;align-items:center;justify-content:space-between;padding:0 6px 7px}.ai3-logo{display:flex;align-items:center;gap:8px;min-width:0}.ai3-logo>span{display:flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:10px;background:#e61328;color:white;font-size:.74rem;font-weight:950}.ai3-logo strong{font-size:.88rem;font-weight:900;letter-spacing:-.025em;white-space:nowrap}.ai3-logo small{border-radius:999px;background:#e7e7e5;padding:2px 6px;font-size:.55rem;font-weight:900;color:#6b6b68}.ai3-icon-button{position:relative;display:inline-flex;width:36px;height:36px;flex:none;align-items:center;justify-content:center;border:0;border-radius:10px;background:transparent;color:#5f5f5c;transition:.15s}.ai3-icon-button:hover{background:#e9e9e6;color:#171717}.ai3-icon-button svg{width:18px;height:18px}.ai3-new-chat{display:flex;align-items:center;gap:10px;border:0;border-radius:10px;background:transparent;padding:10px 10px;font-size:.78rem;font-weight:850;color:#252523;text-align:left}.ai3-new-chat:hover{background:#ececea}.ai3-new-chat svg{width:17px;height:17px}.ai3-nav-block{margin-top:15px}.ai3-nav-label{padding:0 10px 5px;font-size:.62rem;font-weight:900;color:#8b8b87}.ai3-nav-item{position:relative;display:flex;width:100%;align-items:center;gap:10px;border:0;border-radius:9px;background:transparent;padding:8px 10px;text-align:left;font-size:.72rem;font-weight:760;color:#3d3d3a;transition:.13s}.ai3-nav-item:hover,.ai3-nav-item.active{background:#e9e9e6;color:#171717}.ai3-nav-item svg{width:16px;height:16px;flex:none}.ai3-nav-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai3-nav-item .ai3-external{margin-left:auto;width:13px;height:13px;color:#9a9a96}.ai3-history-wrap{min-height:0;flex:1;margin-top:18px;overflow:hidden}.ai3-history{height:calc(100% - 24px);overflow-y:auto;padding-bottom:8px}.ai3-history-item{display:flex;width:100%;align-items:center;gap:9px;border:0;border-radius:8px;background:transparent;padding:7px 10px;text-align:left;font-size:.68rem;font-weight:650;color:#595956}.ai3-history-item:hover{background:#ececea}.ai3-history-item svg{width:14px;height:14px;flex:none;color:#888884}.ai3-history-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai3-empty-history{padding:7px 10px;font-size:.64rem;color:#9a9a96}.ai3-sidebar-footer{display:grid;grid-template-columns:34px minmax(0,1fr) 36px;align-items:center;gap:9px;border-top:1px solid #e6e6e3;padding:11px 5px 1px}.ai3-profile-dot{display:flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;background:#252523;color:#fff;font-size:.66rem;font-weight:900}.ai3-sidebar-footer strong,.ai3-sidebar-footer span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai3-sidebar-footer strong{font-size:.69rem}.ai3-sidebar-footer span{margin-top:2px;font-size:.56rem;color:#8b8b87}.ai3-sidebar-footer span.connected{color:#168348}.ai3-main{position:relative;display:grid;min-width:0;grid-template-rows:58px minmax(0,1fr) auto;background:#fff}.ai3-topbar{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(232,232,232,.78);background:rgba(255,255,255,.94);padding:0 18px;backdrop-filter:blur(12px)}.ai3-title-wrap{display:flex;align-items:baseline;gap:10px}.ai3-title-wrap strong{font-size:.84rem;font-weight:900}.ai3-title-wrap span{font-size:.59rem;font-weight:700;color:#9a9a96}.ai3-top-actions{display:flex;align-items:center;gap:2px}.ai3-notification-dot{position:absolute;right:8px;top:7px;width:6px;height:6px;border-radius:50%;background:#e61328;border:1px solid #fff}.ai3-icon-button.spinning svg{animation:ai3spin .8s linear infinite}@keyframes ai3spin{to{transform:rotate(360deg)}}.ai3-conversation{min-height:0;overflow-y:auto;overscroll-behavior:contain}.ai3-welcome{width:min(900px,calc(100% - 36px));margin:0 auto;padding:clamp(60px,10vh,120px) 0 50px}.ai3-welcome-copy{text-align:center}.ai3-orb{display:flex;width:48px;height:48px;align-items:center;justify-content:center;margin:0 auto 17px;border-radius:16px;background:#171717;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.09)}.ai3-orb svg{width:22px;height:22px}.ai3-welcome-copy h1{font-size:clamp(1.8rem,3.2vw,2.65rem);font-weight:850;letter-spacing:-.052em;color:#1f1f1f}.ai3-welcome-copy p{max-width:610px;margin:13px auto 0;font-size:.82rem;font-weight:600;line-height:1.75;color:#797975}.ai3-mobile-brief{display:none}.ai3-prompt-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:720px;margin:34px auto 0}.ai3-prompt-grid button{display:flex;align-items:flex-start;gap:12px;border:1px solid #e5e5e3;border-radius:16px;background:#fff;padding:16px;text-align:left;transition:.15s}.ai3-prompt-grid button:hover{border-color:#cececa;background:#fafaf9;transform:translateY(-1px)}.ai3-prompt-grid button>svg{width:19px;height:19px;flex:none;color:#666663}.ai3-prompt-grid strong,.ai3-prompt-grid small{display:block}.ai3-prompt-grid strong{font-size:.74rem;font-weight:850;color:#2f2f2d}.ai3-prompt-grid small{margin-top:4px;font-size:.61rem;font-weight:650;line-height:1.45;color:#90908c}.ai3-message-list{width:min(780px,calc(100% - 40px));margin:0 auto;padding:34px 0 100px}.ai3-message-row{display:flex;width:100%;margin:0 0 30px}.ai3-message-row.user{justify-content:flex-end}.ai3-user-message{max-width:min(78%,620px);border-radius:20px 20px 5px 20px;background:#f2f2f0;padding:12px 16px;font-size:.79rem;font-weight:650;line-height:1.65;color:#292927}.ai3-message-row.assistant{align-items:flex-start;gap:12px}.ai3-assistant-mark{display:flex;width:30px;height:30px;flex:none;align-items:center;justify-content:center;border-radius:10px;background:#171717;color:#fff}.ai3-assistant-mark svg{width:15px;height:15px}.ai3-assistant-message{min-width:0;max-width:700px;padding-top:2px;font-size:.8rem;font-weight:600;line-height:1.82;color:#30302e}.ai3-assistant-message h3{margin-bottom:9px;font-size:.91rem;font-weight:900;color:#191917}.ai3-assistant-message p{margin:0 0 11px}.ai3-inline-status{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:14px;font-size:.58rem;font-weight:750;color:#979793}.ai3-status-pill{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:.57rem;font-weight:850}.ai3-status-pill.ok{background:#ecf9f0;color:#168348}.ai3-status-pill.warn{background:#fff5e8;color:#bc6c17}.ai3-message-actions{display:flex;align-items:center;gap:5px;margin-top:11px}.ai3-message-actions button,.ai3-message-actions a{display:inline-flex;align-items:center;gap:5px;border:0;border-radius:8px;background:transparent;padding:6px;color:#8a8a86;font-size:.6rem;font-weight:800}.ai3-message-actions button:hover,.ai3-message-actions a:hover{background:#f2f2f0;color:#3f3f3c}.ai3-message-actions svg{width:15px;height:15px}.ai3-thinking{display:flex;align-items:center;gap:4px;height:30px;padding:0 6px}.ai3-thinking span{width:5px;height:5px;border-radius:50%;background:#a3a39f;animation:ai3pulse 1s infinite ease-in-out}.ai3-thinking span:nth-child(2){animation-delay:.13s}.ai3-thinking span:nth-child(3){animation-delay:.26s}@keyframes ai3pulse{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.ai3-composer-zone{position:relative;z-index:22;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 18%,#fff);padding:16px 18px 12px}.ai3-composer{display:grid;grid-template-columns:36px minmax(0,1fr) 36px 36px;align-items:end;gap:4px;width:min(780px,100%);margin:0 auto;border:1px solid #dededb;border-radius:25px;background:#fff;padding:7px 8px;box-shadow:0 3px 14px rgba(0,0,0,.055)}.ai3-composer:focus-within{border-color:#c8c8c4;box-shadow:0 5px 18px rgba(0,0,0,.075)}.ai3-composer textarea{width:100%;max-height:140px;min-height:34px;resize:none;border:0;background:transparent;padding:7px 5px 6px;font-size:.78rem;font-weight:600;line-height:1.45;color:#252523;outline:0}.ai3-composer textarea::placeholder{color:#999995}.ai3-composer-plus,.ai3-voice-btn,.ai3-send-btn{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border:0;border-radius:50%;background:transparent;color:#656561}.ai3-composer-plus:hover,.ai3-voice-btn:hover{background:#f0f0ee}.ai3-composer-plus svg,.ai3-voice-btn svg,.ai3-send-btn svg{width:17px;height:17px}.ai3-send-btn{background:#171717;color:#fff}.ai3-send-btn:hover{background:#333330}.ai3-disclaimer{text-align:center;margin-top:7px;font-size:.54rem;font-weight:650;color:#a0a09c}.ai3-overlay{display:none}.mobile-only{display:none}.sidebar-collapsed{--ai3-sidebar:72px}.sidebar-collapsed .ai3-sidebar{padding-left:8px;padding-right:8px}.sidebar-collapsed .ai3-logo strong,.sidebar-collapsed .ai3-logo small,.sidebar-collapsed .ai3-new-chat span,.sidebar-collapsed .ai3-nav-label,.sidebar-collapsed .ai3-nav-item span,.sidebar-collapsed .ai3-nav-item .ai3-external,.sidebar-collapsed .ai3-history-wrap,.sidebar-collapsed .ai3-sidebar-footer>div:not(.ai3-profile-dot),.sidebar-collapsed .ai3-sidebar-footer>a{display:none}.sidebar-collapsed .ai3-sidebar-head{justify-content:center}.sidebar-collapsed .ai3-sidebar-head .desktop-only{position:absolute;top:58px}.sidebar-collapsed .ai3-new-chat{justify-content:center;margin-top:45px}.sidebar-collapsed .ai3-nav-item{justify-content:center}.sidebar-collapsed .ai3-sidebar-footer{display:flex;justify-content:center}.sidebar-collapsed .ai3-logo>span{width:34px;height:34px}

@media(max-width:760px){body{background:#fff!important}.desktop-only{display:none!important}.mobile-only{display:inline-flex}.ai3-app{display:block;height:100dvh;min-height:0}.ai3-sidebar{position:fixed;inset:0 auto 0 0;width:min(86vw,330px);transform:translateX(-105%);box-shadow:12px 0 35px rgba(0,0,0,.12)}.mobile-sidebar-open .ai3-sidebar{transform:translateX(0)}.ai3-overlay{position:fixed;z-index:35;inset:0;display:block;background:rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:.2s}.mobile-sidebar-open .ai3-overlay{opacity:1;pointer-events:auto}.ai3-main{height:100dvh;grid-template-rows:54px minmax(0,1fr) auto}.ai3-topbar{padding:0 9px;border-bottom-color:#efefed}.ai3-title-wrap{display:block;text-align:center}.ai3-title-wrap strong{display:block;font-size:.76rem}.ai3-title-wrap span{display:block;margin-top:1px;font-size:.5rem}.ai3-top-actions{gap:0}.ai3-top-actions .ai3-icon-button{width:34px}.ai3-conversation{scroll-padding-bottom:90px}.ai3-welcome{width:100%;padding:21px 14px 22px}.ai3-mobile-brief{display:block}.ai3-greeting{margin:5px 2px 13px;font-size:1.04rem;font-weight:850;letter-spacing:-.035em;color:#20201e}.ai3-brief-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ai3-brief-grid article{min-height:91px;border:1px solid #e8e8e5;border-radius:15px;background:#fafaf9;padding:13px}.ai3-brief-grid span,.ai3-brief-grid strong,.ai3-brief-grid small{display:block}.ai3-brief-grid span{font-size:.57rem;font-weight:800;color:#858581}.ai3-brief-grid strong{margin-top:6px;font-size:1rem;font-weight:900;letter-spacing:-.025em;color:#222220}.ai3-brief-grid small{margin-top:4px;font-size:.52rem;font-weight:700;color:#a0a09c}.ai3-welcome-copy{margin-top:29px;text-align:left}.ai3-orb{display:none}.ai3-welcome-copy h1{font-size:1.47rem;line-height:1.2}.ai3-welcome-copy p{margin-top:9px;font-size:.69rem;line-height:1.65}.ai3-prompt-grid{display:flex;overflow-x:auto;gap:8px;margin-top:17px;padding-bottom:4px;scrollbar-width:none}.ai3-prompt-grid::-webkit-scrollbar{display:none}.ai3-prompt-grid button{min-width:224px;padding:13px;border-radius:14px}.ai3-prompt-grid button>svg{width:18px;height:18px}.ai3-prompt-grid strong{font-size:.69rem}.ai3-prompt-grid small{font-size:.56rem}.ai3-message-list{width:100%;padding:21px 14px 92px}.ai3-message-row{margin-bottom:24px}.ai3-user-message{max-width:86%;padding:10px 13px;font-size:.74rem}.ai3-message-row.assistant{gap:9px}.ai3-assistant-mark{width:27px;height:27px;border-radius:9px}.ai3-assistant-message{font-size:.74rem;line-height:1.75}.ai3-assistant-message h3{font-size:.82rem}.ai3-composer-zone{padding:8px 9px calc(8px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #f0f0ee}.ai3-composer{grid-template-columns:32px minmax(0,1fr) 32px 32px;border-radius:23px;padding:6px}.ai3-composer textarea{min-height:32px;font-size:.74rem;padding-top:7px}.ai3-composer-plus,.ai3-voice-btn,.ai3-send-btn{width:32px;height:32px}.ai3-disclaimer{display:none}}

/* ===== v3.0.1 AI UI polish: clarity, composer focus, color accents, dark mode ===== */
.ai3-app{
    --ai3-bg:#ffffff;--ai3-panel:#f7f7f5;--ai3-text:#000000;--ai3-muted:#5f5f5b;--ai3-faint:#7b7b76;
    --ai3-border:#deded9;--ai3-hover:#ececea;--ai3-card:#ffffff;--ai3-user:#f2f2f0;--ai3-shadow:rgba(0,0,0,.08);
    color:var(--ai3-text);background:var(--ai3-bg);
    font-size:16px;
}
.ai3-sidebar{background:var(--ai3-panel);border-right-color:var(--ai3-border)}
.ai3-logo strong,.ai3-new-chat,.ai3-nav-item,.ai3-sidebar-footer strong,.ai3-title-wrap strong,.ai3-welcome-copy h1,.ai3-greeting,.ai3-brief-grid strong,.ai3-prompt-grid strong,.ai3-assistant-message,.ai3-assistant-message h3{color:var(--ai3-text)}
.ai3-logo strong{font-size:1rem}.ai3-new-chat{font-size:.9rem}.ai3-nav-item{font-size:.86rem}.ai3-nav-label{font-size:.72rem;color:var(--ai3-muted)}
.ai3-history-item{font-size:.8rem;color:var(--ai3-muted)}.ai3-empty-history{font-size:.74rem;color:var(--ai3-faint)}
.ai3-sidebar-footer strong{font-size:.8rem}.ai3-sidebar-footer span{font-size:.66rem;color:var(--ai3-faint)}
.ai3-topbar{background:color-mix(in srgb,var(--ai3-bg) 94%, transparent);border-bottom-color:var(--ai3-border)}
.ai3-title-wrap strong{font-size:.95rem}.ai3-title-wrap span{font-size:.68rem;color:var(--ai3-muted)}
.ai3-icon-button{color:var(--ai3-muted)}.ai3-icon-button:hover{background:var(--ai3-hover);color:var(--ai3-text)}
.ai3-welcome-copy p{font-size:.96rem;color:var(--ai3-muted);line-height:1.7}
.ai3-prompt-grid button{background:var(--ai3-card);border-color:var(--ai3-border)}.ai3-prompt-grid button:hover{background:var(--ai3-hover)}
.ai3-prompt-grid strong{font-size:.9rem}.ai3-prompt-grid small{font-size:.75rem;color:var(--ai3-muted)}
.ai3-user-message{font-size:.96rem;color:var(--ai3-text);background:var(--ai3-user)}
.ai3-assistant-message{font-size:1rem;color:var(--ai3-text);line-height:1.75}.ai3-assistant-message h3{font-size:1.08rem}
.ai3-inline-status,.ai3-message-actions button,.ai3-message-actions a{color:var(--ai3-muted)}
.ai3-composer-zone{background:linear-gradient(180deg,transparent,var(--ai3-bg) 18%,var(--ai3-bg));padding-top:20px}
.ai3-composer{width:min(820px,100%);grid-template-columns:42px minmax(0,1fr) 42px 42px;gap:5px;border:1.5px solid #aeadA8;border-radius:30px;background:var(--ai3-card);padding:9px 10px;box-shadow:0 5px 22px var(--ai3-shadow);transition:border-color .2s,box-shadow .2s,transform .2s}
.ai3-composer:focus-within{border-color:#6b6b66;box-shadow:0 8px 28px rgba(0,0,0,.11)}
.ai3-composer textarea{min-height:42px;padding:10px 7px 8px;font-size:1rem;font-weight:560;color:var(--ai3-text);line-height:1.5}
.ai3-composer textarea::placeholder{color:#6f6f6a;opacity:1}
.ai3-composer-plus,.ai3-voice-btn,.ai3-send-btn{width:40px;height:40px}.ai3-composer-plus svg,.ai3-voice-btn svg,.ai3-send-btn svg{width:20px;height:20px}
.ai3-voice-btn{color:#1f6feb}.ai3-voice-btn:hover{background:#eef5ff;color:#1459bd}.ai3-send-btn{background:#111;color:#fff}
.ai3-composer-hint{position:absolute;left:50%;top:-23px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;color:#e61328;font-size:.78rem;font-weight:850;opacity:0;pointer-events:none;white-space:nowrap}
.ai3-composer-hint svg{width:17px;height:17px}
.ai3-composer-zone.composer-attention .ai3-composer-hint{opacity:1;animation:ai3HintFade 5.2s ease forwards}
.ai3-composer-zone.composer-attention .ai3-composer{animation:ai3ComposerGlow 2.2s ease-in-out 2}
.ai3-composer-zone.composer-attention .ai3-composer-hint svg{animation:ai3ArrowBounce .75s ease-in-out infinite alternate}
@keyframes ai3ArrowBounce{from{transform:translateY(-2px)}to{transform:translateY(5px)}}
@keyframes ai3ComposerGlow{0%,100%{box-shadow:0 5px 22px var(--ai3-shadow)}50%{box-shadow:0 8px 32px rgba(230,19,40,.2);border-color:rgba(230,19,40,.65)}}
@keyframes ai3HintFade{0%{opacity:0}8%,75%{opacity:1}100%{opacity:0}}
/* Functional color accents without coloring ordinary text */
.ai3-nav-block:first-of-type .ai3-nav-item:nth-of-type(1) svg{color:#8b5cf6}.ai3-nav-block:first-of-type .ai3-nav-item:nth-of-type(2) svg{color:#e61328}.ai3-nav-block:first-of-type .ai3-nav-item:nth-of-type(3) svg{color:#ef4444}.ai3-nav-block:first-of-type .ai3-nav-item:nth-of-type(4) svg{color:#16a34a}.ai3-nav-block:first-of-type .ai3-nav-item:nth-of-type(5) svg{color:#7c3aed}
.ai3-nav-block:nth-of-type(2) .ai3-nav-item:nth-of-type(1)>svg:first-child{color:#2563eb}.ai3-nav-block:nth-of-type(2) .ai3-nav-item:nth-of-type(2)>svg:first-child{color:#0f766e}.ai3-nav-block:nth-of-type(2) .ai3-nav-item:nth-of-type(3)>svg:first-child{color:#d97706}
.ai3-prompt-grid button:nth-child(1)>svg{color:#2563eb}.ai3-prompt-grid button:nth-child(2)>svg{color:#e61328}.ai3-prompt-grid button:nth-child(3)>svg{color:#ef4444}.ai3-prompt-grid button:nth-child(4)>svg{color:#7c3aed}
.ai3-theme-toggle svg{transition:transform .25s ease}.ai3-theme-toggle:hover svg{transform:rotate(-12deg)}
/* Dark mode, scoped only to the v3 AI interface */
.ai3-app.dark-mode{--ai3-bg:#171717;--ai3-panel:#202020;--ai3-text:#f7f7f7;--ai3-muted:#c2c2be;--ai3-faint:#9a9a95;--ai3-border:#3a3a37;--ai3-hover:#2b2b29;--ai3-card:#212121;--ai3-user:#2f2f2f;--ai3-shadow:rgba(0,0,0,.34);color-scheme:dark}
.ai3-app.dark-mode .ai3-main,.ai3-app.dark-mode .ai3-conversation{background:var(--ai3-bg)}
.ai3-app.dark-mode .ai3-topbar{background:rgba(23,23,23,.94)}
.ai3-app.dark-mode .ai3-logo small{background:#353533;color:#d3d3cf}.ai3-app.dark-mode .ai3-orb,.ai3-app.dark-mode .ai3-assistant-mark,.ai3-app.dark-mode .ai3-send-btn{background:#f3f3f3;color:#171717}
.ai3-app.dark-mode .ai3-prompt-grid button:hover{border-color:#555550}.ai3-app.dark-mode .ai3-composer{border-color:#555550}.ai3-app.dark-mode .ai3-composer:focus-within{border-color:#8a8a84}
.ai3-app.dark-mode .ai3-composer textarea::placeholder{color:#aaa9a4}.ai3-app.dark-mode .ai3-voice-btn:hover{background:#26374b}.ai3-app.dark-mode .ai3-message-actions button:hover,.ai3-app.dark-mode .ai3-message-actions a:hover{background:#2b2b29;color:#fff}
.ai3-app.dark-mode .ai3-notification-dot{border-color:#171717}

@media(max-width:760px){
  .ai3-app{font-size:16px}
  .ai3-title-wrap strong{font-size:.9rem}.ai3-title-wrap span{font-size:.64rem}
  .ai3-greeting{font-size:1.18rem;color:var(--ai3-text)}
  .ai3-brief-grid article{min-height:102px;background:var(--ai3-card);border-color:var(--ai3-border);padding:15px}
  .ai3-brief-grid span{font-size:.7rem;color:var(--ai3-muted)}.ai3-brief-grid strong{font-size:1.18rem}.ai3-brief-grid small{font-size:.65rem;color:var(--ai3-faint)}
  .ai3-welcome-copy h1{font-size:1.62rem;color:var(--ai3-text)}.ai3-welcome-copy p{font-size:.88rem;color:var(--ai3-muted)}
  .ai3-prompt-grid button{min-width:242px;padding:15px}.ai3-prompt-grid strong{font-size:.86rem}.ai3-prompt-grid small{font-size:.7rem}
  .ai3-message-list{padding-bottom:112px}.ai3-user-message{font-size:.94rem}.ai3-assistant-message{font-size:.95rem}.ai3-assistant-message h3{font-size:1.02rem}
  .ai3-composer-zone{padding:16px 10px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--ai3-border);background:var(--ai3-bg)}
  .ai3-composer{grid-template-columns:38px minmax(0,1fr) 38px 38px;border-radius:29px;padding:8px;min-height:62px}
  .ai3-composer textarea{min-height:40px;font-size:1rem;padding:9px 6px}.ai3-composer-plus,.ai3-voice-btn,.ai3-send-btn{width:38px;height:38px}
  .ai3-composer-hint{top:-13px;font-size:.75rem;background:var(--ai3-bg);padding:1px 8px;border-radius:999px}
  .ai3-disclaimer{display:none}
  .ai3-app.dark-mode .ai3-overlay{background:rgba(0,0,0,.55)}
}
