@font-face{
    font-family:'Paperozi';
    src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-4Regular.woff2') format('woff2');
    font-weight:400;
    font-display:swap;
}
@font-face{
    font-family:'Paperozi';
    src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-5Medium.woff2') format('woff2');
    font-weight:500;
    font-display:swap;
}
@font-face{
    font-family:'Paperozi';
    src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-6SemiBold.woff2') format('woff2');
    font-weight:600;
    font-display:swap;
}
@font-face{
    font-family:'Escoredream';
    src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-4Regular.woff') format('woff');
    font-weight:400;
    font-display:swap;
}
@font-face{
    font-family:'Escoredream';
    src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-5Medium.woff') format('woff');
    font-weight:500;
    font-display:swap;
}
@font-face{
    font-family:'Escoredream';
    src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-6Bold.woff') format('woff');
    font-weight:600;
    font-display:swap;
}

:root{
    --bg:#f7f9fc;
    --bg-deep:#eef3fa;
    --card:#ffffff;
    --line:#dde5f0;
    --line-deep:#cfd8e6;
    --text:#1e2c3d;
    --muted:#66778b;
    --blue:#4b78ff;
    --blue-soft:#edf3ff;
    --violet:#7a66ff;
    --violet-soft:#f1eeff;
    --mint:#2fbfa3;
    --mint-soft:#eafbf6;
    --rose:#ff6f96;
    --rose-soft:#fff0f4;
    --amber:#f5ad3b;
    --amber-soft:#fff5df;
    --shadow:0 18px 42px rgba(31,57,105,.08);
    --shadow-soft:0 8px 22px rgba(31,57,105,.06);
    --radius-xl:28px;
    --radius-lg:22px;
    --radius-md:16px;
    --radius-sm:12px;
    --font-body:'Paperozi','Escoredream','Pretendard','Apple SD Gothic Neo',sans-serif;
    --font-display:'Paperozi','Escoredream','Pretendard','Apple SD Gothic Neo',sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{font-size:16px}
body{
    min-height:100%;
    /*background:
        radial-gradient(circle at 0% 0%, rgba(122,102,255,.08), transparent 26%),
        radial-gradient(circle at 100% 10%, rgba(75,120,255,.08), transparent 28%),
        linear-gradient(180deg, #fbfcfe 0%, var(--bg) 55%, #f2f6fb 100%);*/
    color:var(--text);
    font-family:var(--font-body);
    font-weight:400;
    letter-spacing:-0.01em;
}
button,input,select,textarea{font:inherit}
a{text-decoration:none;color:inherit}
h1,h2,h3,h4,p{margin:0}
strong,b{font-weight:600}

.csat-shell{
    position:relative;
    max-width:1700px;
    margin:0 auto;
    padding:22px 22px 44px;
}
.csat-orb{
    position:fixed;
    pointer-events:none;
    border-radius:999px;
    filter:blur(26px);
    opacity:.55;
    animation:floatOrb 16s ease-in-out infinite;
}
.csat-orb--a{width:280px;height:280px;left:-80px;top:120px;background:rgba(122,102,255,.12)}
.csat-orb--b{width:320px;height:320px;right:-120px;top:280px;background:rgba(75,120,255,.10);animation-duration:19s}

.csat-topbar,
.csat-filters,
.csat-kpi,
.csat-card,
.csat-login-panel{
    background:rgba(255,255,255,.84);
    border:1px solid rgba(221,229,240,.9);
    box-shadow:var(--shadow-soft);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.csat-topbar{
    position:sticky;
    top:14px;
    z-index:20;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    border-radius:999px;
    padding:10px 12px;
    margin-bottom:18px;
}
.csat-topbar__left{min-width:0;flex:1}
.csat-topbar__right{display:flex;align-items:center;gap:10px}
.csat-userchip{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    padding:0 16px;
    border-radius:999px;
    background:linear-gradient(135deg,#ffffff,#f5f8ff);
    border:1px solid var(--line);
    font-size:14px;
    font-weight:500;
}
.csat-ghost-btn{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    padding:0 16px;
    border-radius:999px;
    border:1px solid var(--line);
    background:#fff;
    font-size:14px;
    font-weight:500;
    transition:transform .24s ease, box-shadow .24s ease;
}
.csat-ghost-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft)}

.csat-mini-tabs{
    position:relative;
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
.csat-mini-tab{
    position:relative;
    z-index:2;
    min-height:46px;
    padding:0 18px;
    border:0;
    border-radius:999px;
    background:transparent;
    color:var(--muted);
    font-size:15px;
    font-weight:500;
    cursor:pointer;
    transition:color .24s ease, transform .24s ease;
}
.csat-mini-tab:hover{color:var(--text);transform:translateY(-1px)}
.csat-mini-tab.is-active{color:var(--text)}
.csat-mini-indicator{
    position:absolute;
    left:0; top:0;
    height:46px;
    border-radius:999px;
    background:linear-gradient(135deg,#ffffff,#eef4ff);
    border:1px solid #dbe5f7;
    box-shadow:var(--shadow-soft);
    transition:transform .35s cubic-bezier(.22,.61,.36,1), width .35s cubic-bezier(.22,.61,.36,1);
}

.csat-filters{
    display:grid;
    grid-template-columns:180px 180px 200px 220px minmax(300px,1fr);
    gap:14px;
    align-items:start;
    border-radius:24px;
    padding:18px;
}
.csat-field{display:flex;flex-direction:column;gap:8px}
.csat-field--wide{min-width:0}
.csat-field label{
    font-size:14px;
    color:var(--muted);
    font-weight:500;
}
.csat-field select,
.csat-field input,
.csat-text{
    width:100%;
    min-height:52px;
    border-radius:15px;
    border:1px solid var(--line);
    background:#fff;
    padding:0 16px;
    color:var(--text);
    font-size:15px;
    outline:none;
    transition:border-color .24s ease, box-shadow .24s ease, transform .24s ease;
}
.csat-field select:focus,
.csat-field input:focus,
.csat-text:focus{
    border-color:#afc4ff;
    box-shadow:0 0 0 4px rgba(75,120,255,.08);
}
.csat-chipbar{display:flex;flex-wrap:wrap;gap:8px;min-height:52px}
.csat-chip{
    border:1px solid var(--line);
    background:#fff;
    min-height:42px;
    padding:0 14px;
    border-radius:999px;
    color:var(--muted);
    font-size:14px;
    font-weight:500;
    cursor:pointer;
    transition:transform .2s ease, box-shadow .2s ease, color .2s ease, border-color .2s ease;
}
.csat-chip:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft);color:var(--text)}
.csat-chip.is-active{border-color:#abc2ff;color:var(--blue);background:#f7faff}

.csat-kpi-grid{
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    gap:14px;
    margin-top:18px;
}
.csat-kpi{
    position:relative;
    overflow:hidden;
    min-height:126px;
    padding:18px 18px 16px;
    border-radius:22px;
}
.csat-kpi:before{
    content:"";
    position:absolute;
    right:-24px;bottom:-34px;
    width:120px;height:120px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(75,120,255,.12), transparent 72%);
}
.csat-kpi--focus{
    background:linear-gradient(135deg,#f5f1ff,#ffffff 62%);
    border-color:#ddd3ff;
}
.csat-kpi span{
    position:relative;z-index:1;
    display:block;
    font-size:14px;
    color:var(--muted);
    font-weight:500;
}
.csat-kpi-head{
    position:relative;z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.csat-help-dot{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:24px;height:24px;
    border-radius:999px;
    border:1px solid #d7dfec;
    background:rgba(255,255,255,.92);
    color:#72839a;
    font-size:13px;
    font-weight:600;
    line-height:1;
    cursor:pointer;
    transition:transform .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
    box-shadow:0 8px 20px rgba(103,121,150,.08);
}
.csat-help-dot:hover,
.csat-help-dot:focus-visible{
    outline:0;
    color:#54657d;
    border-color:#bfcce2;
    transform:translateY(-1px);
}
.csat-help-pop{
    position:fixed;
    top:0;left:0;
    z-index:2000;
    width:min(360px, calc(100vw - 24px));
    padding:14px 15px;
    border-radius:18px;
    border:1px solid #dce4f1;
    background:rgba(255,255,255,.98);
    box-shadow:0 24px 60px rgba(95,112,140,.18);
    backdrop-filter:blur(10px);
    animation:helpPopIn .16s ease;
}
.csat-help-pop[hidden]{display:none !important}
.csat-help-pop__arrow{
    position:absolute;
    width:14px;height:14px;
    background:rgba(255,255,255,.98);
    border-left:1px solid #dce4f1;
    border-top:1px solid #dce4f1;
    transform:rotate(45deg);
    top:-8px;left:24px;
}
.csat-help-pop__body{
    position:relative;z-index:1;
    color:#4d5f74;
    font-size:14px;
    line-height:1.65;
    word-break:keep-all;
}
.csat-help-pop__body strong{display:block;margin-bottom:6px;color:#203245;font-size:15px;font-weight:600}
.csat-help-pop__body .is-soft{display:block;margin-top:8px;color:#7a889b;font-size:13px}
@keyframes helpPopIn{
    from{opacity:0;transform:translateY(6px) scale(.98)}
    to{opacity:1;transform:translateY(0) scale(1)}
}
.csat-kpi strong{
    position:relative;z-index:1;
    display:block;
    margin-top:14px;
    font-family:var(--font-display);
    font-size:21px;
    line-height:1.06;
    font-weight:600;
    letter-spacing:-0.04em;
}
.csat-kpi small{
    position:relative;z-index:1;
    display:block;
    margin-top:12px;
    min-height:22px;
    font-size:14px;
    color:#78889a;
    font-weight:400;
}

.csat-panels{margin-top:18px}
.csat-panel-page{display:none}
.csat-panel-page.is-active{display:block;animation:fadePanel .45s ease}
.csat-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.csat-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.csat-grid > *,
.csat-grid--two > *,
.csat-grid--scorehero > *{min-width:0}
.csat-card{
    border-radius:26px;
    padding:18px;
    min-width:0;
    overflow:hidden;
}
.csat-card--wide{grid-column:1 / -1}
.csat-card-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
}
.csat-card-head--space{align-items:flex-start;flex-wrap:wrap}
.csat-card-head h3{
    font-family:var(--font-display);
    font-size:22px;
    line-height:1.1;
    font-weight:500;
}
.csat-chart{width:100%;height:420px}
.chart-radar-fix{height:520px}
.csat-rank-wrap,
.csat-table-wrap{
    overflow:auto;
    min-height:280px;
    border-radius:18px;
    border:1px solid var(--line);
    background:#fff;
}
.csat-rank-table,
.csat-data-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    /*min-width:900px;*/
}
.csat-rank-table th,
.csat-rank-table td,
.csat-data-table th,
.csat-data-table td{
    padding:14px 16px;
    border-bottom:1px solid #edf1f6;
    font-size:14px;
}
.csat-rank-table thead th,
.csat-data-table thead th{
    top:0;
    z-index:2;
    background:#f8fafc;
    color:#5a6b7f;
    font-weight:500;
    text-align:left;
}
.csat-rank-table tbody tr:hover,
.csat-data-table tbody tr:hover{background:#fafcff}
.is-center{text-align:center}
.is-right{text-align:right}
.is-focus-row{background:#f7f3ff !important}
.is-compare-row{background:#f1fbf8 !important}

.csat-inline-switch{
    position:relative;
    display:inline-flex;
    gap:8px;
    padding:6px;
    background:#f4f7fb;
    border:1px solid var(--line);
    border-radius:999px;
}
.csat-inline-switch button{
    min-height:40px;
    padding:0 14px;
    border:0;
    border-radius:999px;
    background:transparent;
    color:var(--muted);
    font-size:14px;
    font-weight:500;
    cursor:pointer;
    transition:background .2s ease,color .2s ease;
}
.csat-inline-switch button.is-active{
    background:#fff;
    color:var(--text);
    box-shadow:var(--shadow-soft);
}
.csat-inline-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.csat-raw-summary{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:12px;
}
.csat-raw-summary span{
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:0 12px;
    border-radius:999px;
    background:#f6f9fc;
    border:1px solid var(--line);
    color:#556679;
    font-size:14px;
}
.csat-raw-guide{
    margin-bottom:12px;
    padding:14px 16px;
    border-radius:16px;
    background:#fbfcfe;
    border:1px dashed #d9e3f0;
    color:#647589;
    font-size:14px;
    line-height:1.6;
}

.csat-form-grid{
    display:grid;
    gap:14px;
}
.csat-grade-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.csat-form-actions{display:flex;justify-content:flex-end}
.csat-upload-stack{display:grid;gap:14px}
.csat-upload-form{
    display:grid;
    gap:12px;
    padding:14px;
    border-radius:18px;
    background:#fbfcfe;
    border:1px solid var(--line);
}
.csat-upload-title{
    font-size:16px;
    font-family:var(--font-display);
    font-weight:500;
}
.csat-check{
    display:flex;
    align-items:center;
    gap:8px;
    color:#657689;
    font-size:14px;
}
.csat-log-list{display:grid;gap:10px}
.csat-log-item{
    display:grid;
    gap:8px;
    padding:14px;
    border-radius:18px;
    background:#fbfcfe;
    border:1px solid var(--line);
}
.csat-log-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
}
.csat-log-badge{
    display:inline-flex;
    min-height:32px;
    align-items:center;
    padding:0 10px;
    border-radius:999px;
    font-size:13px;
    font-weight:500;
}
.csat-log-badge--ratio{background:#f1eeff;color:#6a55f7}
.csat-log-badge--score{background:#eafbf6;color:#188e78}
.csat-log-text{font-size:14px;color:#6a7b8f;line-height:1.7}

.csat-btn{
    min-height:48px;
    padding:0 18px;
    border:0;
    border-radius:16px;
    cursor:pointer;
    font-size:15px;
    font-weight:500;
    transition:transform .24s ease, box-shadow .24s ease, filter .24s ease;
}
.csat-btn:hover{transform:translateY(-1px)}
.csat-btn--primary{
    color:#fff;
    background:linear-gradient(135deg,var(--violet),var(--blue));
    box-shadow:0 14px 28px rgba(92,114,255,.22);
}
.csat-btn--soft{
    color:var(--text);
    background:#fff;
    border:1px solid var(--line);
}
.csat-btn--full{width:100%}

.csat-login-body{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
}
.csat-login-shell{width:min(460px,calc(100vw - 32px))}
.csat-login-panel{
    border-radius:30px;
    padding:28px;
}
.csat-login-mark{
    font-family:var(--font-display);
    font-size:28px;
    font-weight:500;
    margin-bottom:22px;
}
.csat-login-form{display:grid;gap:14px}
.csat-login-field{display:grid;gap:8px}
.csat-login-field label{font-size:14px;color:var(--muted)}
.csat-login-field input{
    width:100%;
    min-height:54px;
    border-radius:16px;
    border:1px solid var(--line);
    padding:0 16px;
    background:#fff;
    outline:none;
}
.csat-login-field input:focus{border-color:#afc4ff;box-shadow:0 0 0 4px rgba(75,120,255,.08)}
.csat-login-error{
    padding:12px 14px;
    border-radius:14px;
    background:#fff1f5;
    color:#cf4a73;
    font-size:14px;
}
.csat-login-note{
    margin-top:14px;
    font-size:14px;
    color:#6a7b8f;
    line-height:1.8;
}

.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease, transform .55s ease}
.reveal.is-show{opacity:1;transform:none}

@keyframes fadePanel{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes floatOrb{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-16px,0)}}

@media (max-width:1440px){
    .csat-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
    .csat-filters{grid-template-columns:repeat(4,minmax(0,1fr))}
    .csat-field--wide{grid-column:1 / -1}
}
@media (max-width:1040px){
    .csat-grid,
    .csat-grid--two{grid-template-columns:1fr}
    .csat-chart,
    .chart-radar-fix{height:420px}
}
@media (max-width:820px){
    .csat-shell{padding:16px}
    .csat-topbar{border-radius:24px;align-items:flex-start;flex-direction:column}
    .csat-topbar__right{width:100%;justify-content:space-between}
    .csat-filters{grid-template-columns:1fr 1fr}
    .csat-kpi-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
    html{font-size:15px}
    .csat-filters{grid-template-columns:1fr}
    .csat-kpi-grid{grid-template-columns:1fr}
    .csat-mini-tab{padding:0 14px}
    .csat-chart,.chart-radar-fix{height:360px}
}
.csat-data-table tbody tr.is-focus-raw{background:rgba(122,102,255,.06)}
.csat-data-table tbody tr.is-national-raw{background:rgba(75,120,255,.05)}


/* score menu */
.csat-grid--scorehero{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);align-items:start}
.csat-score-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.csat-score-caption{font-size:15px;color:var(--muted);font-weight:500;line-height:1.55}
.csat-score-table-wrap{width:100%;overflow:auto;max-height:620px;border-radius:18px;border:1px solid #e4ebf4;background:#fff}
.csat-data-table--score{width:100%;min-width:860px;table-layout:auto}
.csat-data-table--score thead th{position:sticky;top:0;z-index:2;white-space:nowrap;background:#f7faff}
.csat-data-table--score tbody td{white-space:nowrap}
.csat-data-table tbody tr.is-integrated-raw{background:rgba(47,191,163,.06)}
.csat-score-mini{font-size:14px;color:#6f7f95;font-weight:500;line-height:1.5}
.csat-score-insight{display:flex;flex-direction:column;gap:14px;min-height:420px}
.csat-score-insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.csat-score-chip{padding:16px 18px;border-radius:18px;background:linear-gradient(180deg,#fbfcff,#f4f7fc);border:1px solid #e2e9f3}
.csat-score-chip span{display:block;font-size:14px;color:#7b8aa1;margin-bottom:8px}
.csat-score-chip strong{display:block;font-size:24px;line-height:1.2;color:#2a3b50;font-family:var(--font-display);font-weight:600}
.csat-score-note{display:flex;flex-direction:column;gap:10px}
.csat-score-note__item{padding:14px 16px;border-radius:16px;background:#fff;border:1px solid #e4ebf4;color:#425466;font-size:15px;line-height:1.7;box-shadow:0 6px 16px rgba(41,63,99,.04)}
.csat-chart--score-main{height:620px}
#scoreTab .csat-card-head h3{font-size:20px}
#scoreTab .csat-chart{height:400px}
#scoreTab .csat-grid--scorehero .csat-card:first-child{display:flex;flex-direction:column}
#scoreTab .csat-grid--scorehero .csat-card:first-child .csat-score-table-wrap{flex:1 1 auto}

@media (max-width: 1480px){
    .csat-grid--scorehero{grid-template-columns:1fr}
    .csat-chart--score-main{height:520px}
}
@media (max-width: 1200px){
    #scoreTab .csat-grid--two{grid-template-columns:1fr}
}
@media (max-width: 720px){
    .csat-score-insight-grid{grid-template-columns:1fr}
    .csat-score-toolbar{flex-direction:column;align-items:stretch}
    .csat-data-table--score{min-width:780px}
    .csat-chart--score-main{height:460px}
    #scoreTab .csat-chart{height:360px}
}


/* v12 score chart readability */
#scoreTab .csat-score-toolbar{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:center}
#scoreTab .csat-card-head--space{gap:12px}
#scoreTab .csat-score-chart-note{font-size:14px;color:#7a8ba2}
#scoreTab .csat-grid--scorehero{grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);align-items:start}
#scoreTab .csat-grid--scorehero > .csat-card{min-width:0;overflow:hidden}
#scoreTab .csat-score-table-wrap{max-width:100%;overflow:auto}
#scoreTab .csat-chart--score-main{height:760px}
#scoreTab .csat-grid--scorehero .csat-card:last-child .csat-card-head{padding-bottom:10px}
#scoreTab .csat-grid--scorehero .csat-card:last-child .csat-chart{margin-top:2px}

@media (max-width: 1280px){
    #scoreTab .csat-chart--score-main{height:680px}
}
@media (max-width: 1024px){
    #scoreTab .csat-grid--scorehero{grid-template-columns:1fr}
    #scoreTab .csat-chart--score-main{height:560px}
}
@media (max-width: 640px){
    #scoreTab .csat-chart--score-main{height:500px}
    #scoreTab .csat-score-toolbar{gap:10px}
}
