.gg{--bg:#F2F4F8; --surface:#FFFFFF; --ink:#1C2333; --muted:#5E6778; --line:#DCE1EA;
  --blue:#2F5496; --blue-soft:#E4EBF7; --in:#FFF4CC; --in-line:#E8CF7A;
  --out:#EEF5EA; --out-line:#CFE3C6; --green:#2E7D4F; --red:#C0392F; --red-soft:#FBE7E5; --orange:#C26A12;
  --on-blue:#FFFFFF; --bar:#8EA9DB; --bar-t:#F2C94C;
  box-sizing:border-box; --page-w:1600px;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);}
.gg{scroll-padding-top:calc(76px + env(safe-area-inset-top,0px))}
.gg *, .gg *::before, .gg *::after{box-sizing:inherit}
.gg{margin:0;background:var(--bg);color:var(--ink);
  font-family:'IBM Plex Sans KR','Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR',sans-serif;
  font-size:15px;line-height:1.5;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
.gg button, .gg input, .gg select, .gg textarea{font:inherit;color:inherit}
.gg :focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.gg [hidden]{display:none!important}
.gg .brand{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.gg header h1{margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em}
.gg .views{display:inline-flex;border:1px solid var(--line);border-radius:9px;padding:3px;background:var(--bg)}
.gg .views button{border:0;background:none;padding:6px 14px;border-radius:7px;cursor:pointer;font-size:14px;color:var(--muted)}
.gg .views button[aria-pressed="true"]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 0 0 1px var(--line)}
.gg .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.gg .status{font-size:12.5px;color:var(--muted)}
.gg .btn{border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.gg .btn:hover{border-color:var(--blue)}
.gg .btn.primary{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}
.gg .btn.sm{padding:5px 10px;font-size:13px}
.gg .link{border:0;background:none;color:var(--blue);cursor:pointer;padding:0;font-size:inherit;text-decoration:underline;text-underline-offset:2px}
.gg main{max-width:var(--page-w);margin:0 auto;padding:20px 16px 130px;display:flex;flex-direction:column;gap:18px}
.gg .legend{display:flex;gap:14px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}
.gg .legend i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin-right:5px}
.gg .layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}
.gg .stack{display:flex;flex-direction:column;gap:22px;min-width:0}
.gg .months{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.gg .months .tabs{display:flex;gap:6px;overflow-x:auto;padding:2px}
.gg .mtab{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 14px;font-size:14px;cursor:pointer;white-space:nowrap}
.gg .mtab small{color:var(--muted);margin-left:5px;font-size:12px}
.gg .mtab[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg);font-weight:600}
.gg .mtab[aria-pressed="true"] small{color:inherit;opacity:.7}
.gg .madd{border:1px dashed var(--blue);color:var(--blue);background:none;border-radius:999px;padding:6px 14px;font-size:14px;cursor:pointer;white-space:nowrap}
.gg .mdel{margin-left:auto;border:0;background:none;color:var(--muted);font-size:12.5px;cursor:pointer;padding:6px 8px;border-radius:6px}
.gg .mdel:hover{color:var(--red);background:var(--red-soft)}
.gg .list{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;position:sticky;top:calc(84px + env(safe-area-inset-top,0px))}
.gg .list h2{font-size:13px;font-weight:600;color:var(--muted);margin:0;padding:12px 14px;border-bottom:1px solid var(--line)}
.gg .item{display:grid;grid-template-columns:1fr auto;gap:2px 8px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:11px 14px;cursor:pointer}
.gg .item:last-child{border-bottom:0}
.gg .item:hover{background:var(--bg)}
.gg .item[aria-current="true"]{background:var(--blue-soft);box-shadow:inset 3px 0 0 var(--blue)}
.gg .item .nm{font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gg .item .sub{grid-column:1;font-size:12px;color:var(--muted)}
.gg .item .pf{grid-row:1/span 2;grid-column:2;align-self:center;text-align:right;font-size:13px;font-weight:600}
.gg .item .pf small{display:block;font-weight:400;color:var(--muted);font-size:11px}
.gg .card.flash{outline:2px solid var(--blue);outline-offset:2px}
.gg .card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.gg .c-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--bg)}
.gg .c-head .name{flex:1 1 200px;font-size:18px;font-weight:700;border:1px solid var(--in-line);background:var(--in);border-radius:8px;padding:6px 12px;min-width:0}
.gg .meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.gg .chip{display:flex;align-items:center;gap:6px;border:1px solid var(--in-line);background:var(--in);border-radius:8px;padding:5px 9px;font-size:13px}
.gg .chip span{color:var(--muted);white-space:nowrap}
.gg .chip input, .gg .chip select{border:0;background:none;font-weight:600;padding:0;min-width:0}
.gg .chip input:focus, .gg .chip select:focus{outline:none}
.gg .chip:focus-within{outline:2px solid var(--blue);outline-offset:1px}
.gg .chip.ro{background:var(--surface);border-color:var(--line)}
.gg .del{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;padding:6px 10px;border-radius:8px;font-size:13px}
.gg .del:hover{color:var(--red);border-color:var(--red)}
.gg .sec{padding:18px}
.gg .sec + .sec{border-top:1px solid var(--line)}
.gg .sec h3{margin:0 0 12px;font-size:14.5px;font-weight:700}
.gg .fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media (max-width:720px){
.gg .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.gg .f label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:5px}
.gg .box{display:flex;align-items:center;border:1px solid var(--in-line);background:var(--in);border-radius:8px;padding:0 10px}
.gg .box input, .gg .box select, .gg .box textarea{border:0;background:none;width:100%;padding:9px 0;text-align:right;font-weight:600;min-width:0}
.gg .box select, .gg .box textarea{text-align:left}
.gg .box textarea{resize:vertical;font-weight:400;font-size:13.5px;min-height:40px}
.gg .box input:focus, .gg .box select:focus, .gg .box textarea:focus{outline:none}
.gg .box:focus-within{outline:2px solid var(--blue);outline-offset:1px}
.gg .box em{font-style:normal;color:var(--muted);font-size:13px;margin-left:6px}
.gg .hint{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.45}
.gg .hint b{color:var(--ink);font-weight:600}
.gg .reco{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.gg .strip{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:0 18px 16px}
.gg .strip .l, .gg .strip .r{display:flex;gap:24px;flex-wrap:wrap}
.gg .strip .r{border-left:1px solid var(--line);padding-left:20px}
.gg .kv span{display:block;font-size:12px;color:var(--muted)}
.gg .kv b{font-weight:600}
.gg .kv.big b{font-size:19px;color:var(--blue);font-weight:700}
.gg .mk{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:720px){
.gg .mk{grid-template-columns:1fr}
}
.gg .rates{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.gg .rates button{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 11px;font-size:13px;font-weight:600;cursor:pointer}
.gg .rates button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}
.gg .rates .box{width:96px}
.gg .rates .box input{padding:6px 0}
.gg .apply{display:flex;flex-direction:column;gap:6px}
.gg .apply label{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:9px 11px;cursor:pointer;font-size:13.5px}
.gg .apply label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}
.gg .apply input{margin-top:3px;accent-color:var(--blue)}
.gg .apply small{display:block;color:var(--muted);font-size:12px}
.gg .res{background:var(--out);border-top:1px solid var(--out-line);padding:18px;display:flex;flex-direction:column;gap:16px}
.gg .res-top{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.gg .res-top h3{margin:0;font-size:14.5px;font-weight:700}
.gg .res-top h3 span{font-weight:400;color:var(--muted);font-size:12.5px;margin-left:4px}
.gg .kpi{display:flex;background:var(--surface);border:1px solid var(--out-line);border-radius:10px;overflow:hidden}
.gg .kpi div{padding:8px 14px;text-align:right}
.gg .kpi div + div{border-left:1px solid var(--out-line)}
.gg .kpi span{display:block;font-size:11px;font-weight:600;color:var(--muted)}
.gg .kpi b{font-size:15px;color:var(--orange)}
.gg .grid5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
@media (max-width:760px){
.gg .grid5{grid-template-columns:repeat(2,minmax(0,1fr))}
.gg .grid5 .fin{grid-column:1/-1;text-align:left!important;align-items:flex-start!important}
}
.gg .grid5 > div{display:flex;flex-direction:column}
.gg .grid5 span{font-size:12px;color:var(--muted)}
.gg .grid5 b{font-weight:600}
.gg .grid5 .ap{border-left:1px solid var(--out-line);padding-left:14px}
.gg .grid5 .ap span{color:var(--blue);font-weight:600}
.gg .grid5 .ap b{color:var(--blue);font-weight:700}
.gg .grid5 .fin{border-left:1px solid var(--out-line);padding-left:14px;align-items:flex-end;text-align:right}
.gg .grid5 .fin span{font-weight:600}
.gg .grid5 .fin b{font-size:20px;font-weight:700;color:var(--green);white-space:nowrap}
@media (max-width:760px){
.gg .grid5 .ap, .gg .grid5 .fin{border-left:0;padding-left:0}
}
.gg .sub4{display:flex;gap:22px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.gg .sub4 b{color:var(--ink);font-weight:600}
.gg .foot{font-size:11.5px;color:var(--muted);border-top:1px solid var(--out-line);padding-top:12px;display:flex;flex-direction:column;gap:3px}
.gg .foot b{color:var(--ink);font-weight:600}
.gg .neg{color:var(--red)!important}
/* 직전 대비 증감(2026-10-26 요청): + 빨강 ▲ · − 초록 ▼ */
.gg .gup{color:var(--red)!important;font-weight:600}.gg .gdown{color:var(--green)!important;font-weight:600}
/* 프로모션 표시(2026-10-22 요청): 혜택/이벤트가 적힌 회차 행과 프로모션 기간의 일별 행은 음영 */
.gg .rtable tr.promo td{background:var(--amber-soft)}.gg .rtable tr.promo+tr.brow td{background:var(--amber-soft)}
.gg .dblock tr.promo td{background:var(--amber-soft)}
.gg .promo-tag{display:inline-block;font-size:10.5px;padding:1px 6px;border-radius:99px;background:var(--amber-soft);color:#9a6412;margin-left:6px;vertical-align:middle}
.gg .live{border-top:1px solid var(--line)}
.gg .live > summary{list-style:none;cursor:pointer;padding:14px 18px;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.gg .live > summary::-webkit-details-marker{display:none}
.gg .live > summary h3{margin:0;font-size:14.5px;font-weight:700}
.gg .live > summary h3::before{content:'▸';display:inline-block;margin-right:6px;color:var(--muted);transition:transform .15s}
.gg .live[open] > summary h3::before{transform:rotate(90deg)}
.gg .live .sumline{font-size:13px;color:var(--muted)}
.gg .live .sumline b{color:var(--ink)}
.gg .live .body{padding:0 18px 18px;display:flex;flex-direction:column;gap:16px}
.gg .prog{height:10px;border-radius:99px;background:var(--line);overflow:hidden}
.gg .prog div{height:100%;background:var(--green);transition:width .25s}
@media (prefers-reduced-motion:reduce){
.gg .prog div, .gg .live > summary h3::before{transition:none}
}
.gg .tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.gg table{border-collapse:collapse;width:100%;font-size:13.5px}
.gg th, .gg td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.gg th{background:var(--bg);font-size:12px;color:var(--muted);font-weight:600;text-align:center}
.gg tr:last-child td{border-bottom:0}
.gg td.l{text-align:left}
.gg td.c{text-align:center}
.gg tfoot td{background:var(--bg);font-weight:700}
.gg .we{color:var(--red)}
.gg td .cell{border:1px solid var(--in-line);background:var(--in);border-radius:6px;padding:4px 7px;text-align:right;font-weight:600;width:120px}
.gg td textarea.cell{width:260px;text-align:left;font-weight:400;font-size:12.5px;resize:vertical;min-height:32px;white-space:pre-wrap}
.gg td .cell:focus{outline:2px solid var(--blue);outline-offset:0}
.gg .rec{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.5fr);gap:12px;align-items:start}
@media (max-width:1100px){
.gg .rec{grid-template-columns:repeat(2,minmax(0,1fr))}
.gg .rec .f:last-child{grid-column:1/-1}
}
@media (max-width:760px){
.gg .rec{grid-template-columns:1fr 1fr}
}
.gg .recbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.gg .badge{display:inline-block;font-size:12px;font-weight:600;border-radius:99px;padding:2px 9px;background:var(--blue-soft);color:var(--blue)}
.gg .badge.done{background:var(--out);color:var(--green)}
.gg .badge.warn{background:var(--red-soft);color:var(--red)}
.gg .cat{display:inline-block;font-size:11.5px;font-weight:600;border-radius:5px;padding:1px 7px;margin-left:6px;vertical-align:1px;background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.gg .cat[data-c="리빙"]{background:#E8F1FB;color:#2B5C8F;border-color:#C9DDF3}
.gg .cat[data-c="키친"]{background:#FFF0E3;color:#A3551B;border-color:#F4D6BC}
.gg .cat[data-c="헬시"]{background:#E6F4EC;color:#23704A;border-color:#C4E3D1}
.gg .cat[data-c="푸드"]{background:#FDF3D8;color:#8A6410;border-color:#EFDDA6}
.gg .cat[data-c="뷰티"]{background:#FBEAF1;color:#A23D6B;border-color:#F1CADB}
.gg .cat[data-c="패션"]{background:#EEEAFB;color:#5A45A8;border-color:#D6CEF3}
.gg .rtable{table-layout:fixed;width:100%}
.gg .rtable th{position:relative;white-space:normal;line-height:1.3;padding:8px 6px}
.gg .rtable td{padding:6px;white-space:normal;vertical-align:top}
.gg .rtable td .cell{width:100%}
.gg .rtable td.dates .cell{margin-bottom:4px}
.gg .rtable td.dates .cell:last-of-type{margin-bottom:0}
.gg .rtable td.calc{padding-top:11px;font-size:13px}
.gg .rtable td textarea.cell{width:100%;min-height:62px;resize:vertical}
.gg .rtable .grip{position:absolute;right:-3px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:1}
.gg .rtable .grip:hover, .gg .rtable .grip.on{background:var(--blue);opacity:.35}
.gg .cell.days{width:100%}
.gg .rtable tfoot td{font-size:12.5px;padding:9px 6px}
.gg .rtable tfoot td#rG{padding-left:10px}
.gg .usedmark{display:block;font-size:10.5px;font-weight:600;color:var(--green);text-align:center;margin-top:3px;white-space:nowrap}
.gg .usedmark:empty{display:none}
.gg .rtable tr[data-i] td{border-bottom:0;padding-bottom:2px}
.gg .rtable .brow td{padding:2px 6px 10px}
.gg .bwrap{display:flex;gap:10px;align-items:flex-start}
.gg .bwrap span{font-size:12px;color:var(--muted);white-space:nowrap;padding-top:6px;min-width:104px}
.gg .rtable td .bwrap textarea.cell{min-height:36px;resize:vertical;flex:1}
@media (max-width:760px){
.gg .rwrap .rtable{min-width:760px}
}
.gg .dblock .tbl-wrap{margin:0 18px}
.gg .dblock table td .cell{width:130px}
.gg .dsum{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;padding:16px 18px 18px}
@media (max-width:760px){
.gg .dsum{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.gg .dsum span{display:block;font-size:12px;color:var(--muted)}
.gg .dsum b{font-size:16px;font-weight:700}
.gg .kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
@media (max-width:1100px){
.gg .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
.gg .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.gg .kpit{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0}
.gg .kpit span{display:block;font-size:12.5px;color:var(--muted);font-weight:600}
.gg .kpit b{display:block;font-size:22px;font-weight:700;letter-spacing:-.01em;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gg .kpit small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.gg .kpit .mini{height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:8px}
.gg .kpit .mini div{height:100%;background:var(--green)}
.gg .dgrid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:1000px){
.gg .dgrid{grid-template-columns:1fr}
}
.gg .dcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;min-width:0}
.gg .dcard h3{margin:0 0 12px;font-size:15px;font-weight:700;display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}
.gg .dcard h3 small{font-weight:400;color:var(--muted);font-size:12.5px}
.gg .ptable{width:100%;border-collapse:collapse;font-size:13.5px}
.gg .ptable th{background:none;border-bottom:1px solid var(--line);text-align:right;padding:6px 8px;font-size:12px}
.gg .ptable th:first-child, .gg .ptable td:first-child{text-align:left}
.gg .ptable td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.gg .ptable tbody tr{cursor:pointer}
.gg .ptable tbody tr:hover td{background:var(--bg)}
.gg .ptable .nm{font-weight:600}
.gg .ptable .sub{display:block;font-size:11.5px;color:var(--muted);font-weight:400}
.gg .bar2{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.gg .bar2 .t{width:90px;height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.gg .bar2 .t div{height:100%;background:var(--green)}
.gg .bar2 .t div.over{background:var(--blue)}
.gg .st{display:inline-block;font-size:11.5px;font-weight:600;border-radius:99px;padding:1px 8px}
.gg .st.plan{background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.gg .st.live{background:#FFF1D6;color:#9A5B00}
.gg .st.end{background:var(--red-soft);color:var(--red)}
.gg .st.done{background:var(--out);color:var(--green)}
.gg .hbar{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:13px;margin-bottom:10px}
.gg .hbar .tr{height:14px;border-radius:4px;background:var(--bg);overflow:hidden;position:relative}
.gg .hbar .tr div{position:absolute;left:0;top:0;bottom:0;border-radius:4px}
.gg .hbar .tr div.tg{border:1.5px dashed var(--muted);background:none}
.gg .dchart{overflow-x:auto}
.gg .dchart svg{width:100%;min-width:640px;max-width:1200px;margin:0 auto;height:auto;display:block}
@media (max-width:640px){
.gg .views{max-width:100%;overflow-x:auto}
.gg .views button{white-space:nowrap;padding:6px 10px;font-size:13px}
}
.gg .dchart text{font-family:inherit;font-size:11px;fill:var(--muted)}
.gg .dchart .vl{fill:var(--ink);font-weight:600}
.gg .pm{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;margin-bottom:6px;opacity:.55}
.gg .pm.on{opacity:1}
.gg .pm > label{display:flex;gap:5px;align-items:center;font-size:12px;cursor:pointer;white-space:nowrap;min-width:0}
.gg .pm > label input{accent-color:var(--blue);margin:0}
.gg .pm .box input{padding:6px 0}
.gg .pm.on .box{border-color:var(--blue)}
.gg .list h2{display:flex;justify-content:space-between;align-items:center;gap:8px}
.gg .ordtog{border:1px solid var(--line);background:var(--surface);color:var(--blue);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600;cursor:pointer}
.gg .ordtog[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}
.gg .item .ord{display:none;grid-row:1/span 2;grid-column:3;align-self:center;flex-direction:column;gap:2px}
.gg .list.editing .item{grid-template-columns:1fr auto auto}
.gg .list.editing .item .ord{display:flex}
.gg .list.editing .item{cursor:grab}
.gg .obtn{border:1px solid var(--line);background:var(--surface);border-radius:5px;width:26px;height:20px;font-size:10px;line-height:1;cursor:pointer;color:var(--muted)}
.gg .obtn:hover:not(:disabled){color:var(--blue);border-color:var(--blue)}
.gg .obtn:disabled{opacity:.35;cursor:default}
.gg .item.dragging{opacity:.4}
.gg .item.drop-before{box-shadow:inset 0 3px 0 var(--blue)!important}
.gg .item.drop-after{box-shadow:inset 0 -3px 0 var(--blue)!important}
@media (max-width:900px){
.gg .list h2{display:none}
}
.gg #hlayout.wide{grid-template-columns:minmax(0,1fr)}
.gg #hlayout.wide #plist{display:none}
.gg #hlayout.wide .rtable td .cell{font-size:14px}
.gg .chart{padding:8px 18px 0}
.gg .chart svg{width:100%;max-width:1000px;height:auto;display:block;margin:0 auto}
.gg .chart text{font-family:inherit;font-size:11px;fill:var(--muted)}
.gg .chart .vl{fill:var(--ink);font-weight:600}
.gg .next{background:var(--out);border-top:1px solid var(--out-line);padding:18px;display:flex;flex-direction:column;gap:14px}
.gg .next .grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media (max-width:720px){
.gg .next .grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.gg .next .grid4 span{display:block;font-size:12px;color:var(--muted)}
.gg .next .grid4 b{font-size:17px;font-weight:700}
.gg .next .grid4 .key b{color:var(--green);font-size:20px}
.gg .why{font-size:13.5px;background:var(--surface);border:1px solid var(--out-line);border-radius:8px;padding:10px 12px}
.gg .xbtn{border:0;background:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px;border-radius:5px}
.gg .xbtn:hover{color:var(--red);background:var(--red-soft)}
.gg .total{position:fixed;left:0;right:0;bottom:0;background:var(--ink);color:var(--bg);padding-bottom:env(safe-area-inset-bottom,0px);z-index:5}
.gg .total .in{max-width:var(--page-w);margin:0 auto;padding:12px 16px;display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.gg .total .t{font-size:12px;opacity:.75;display:block}
.gg .total b{font-size:15.5px}
.gg .total .grow{flex:1}
.gg .total .hl{text-align:right}
.gg .total .hl b{font-size:20px;color:#8FE0AE}
.gg .total .hl b.neg{color:#FF9A90!important}
.gg .empty{padding:40px 24px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:12px}
.gg .empty .btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}
@media (max-width:900px){
.gg .layout{grid-template-columns:1fr}
.gg .list{position:static;display:flex;overflow-x:auto}
.gg .list h2{display:none}
.gg .item{min-width:180px;border-bottom:0;border-right:1px solid var(--line)}
.gg .item[aria-current="true"]{box-shadow:inset 0 -3px 0 var(--blue)}
}
@media (max-width:640px){
.gg .total .opt{display:none}
.gg .strip .r{border-left:0;padding-left:0}
}
.gg{--bg:#f6f5f0; --surface:#fdfcf8; --ink:#292a24; --muted:#6f7067; --line:#e4e3da;
  --blue:#6f7447; --blue-soft:#eceedd; --in:#f8f3e2; --in-line:#e6dcb8; --out:#f1f2e6; --out-line:#dcdfc6;
  --green:#4f6b3a; --red:#a8452f; --red-soft:#f7e6df; --orange:#9a6a1e; --on-blue:#fff; --bar:#3d3e35; --bar-t:#c5c8a2;
  --page-w:1320px;}
.gg{scroll-padding-top:12px}
.gg{font-family:'Pretendard','Pretendard Variable',-apple-system,'Segoe UI',sans-serif;font-size:14px;background:var(--bg);color:var(--ink)}
.gg main{padding:22px 28px 110px;gap:20px}
.gg #loadingMsg{padding:40px 0;color:var(--muted)}
.gg .btn{border-radius:7px;font-size:13px;font-weight:600;padding:7px 13px}
.gg .btn:hover{border-color:var(--ink)}
.gg .btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}
.gg .btn.primary:hover{background:#3d3e35}
.gg .link{color:var(--blue)}
.gg :focus-visible{outline-color:var(--blue)}
.gg .kpis{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.gg .kpit{background:transparent;border:0;border-radius:0;border-left:1px solid var(--line);padding:14px 20px;flex:1 1 30%;min-width:0}
.gg .kpit:nth-child(3n+1){border-left:0;padding-left:20px}/* 2026-10-26 요청: 첫 열 타일 앞 여백 */
.gg .kpit:nth-child(-n+3){flex:0 0 33.3333%;padding-top:22px;padding-bottom:22px}
.gg .kpit:nth-child(n+4){border-top:1px solid var(--line)}
.gg .kpit span{font-size:12px;font-weight:500}
.gg .kpit b{font-size:19px;font-weight:600;margin-top:6px}
.gg .kpit:nth-child(-n+3) b{font-size:clamp(24px,2.4vw,36px);font-weight:500;letter-spacing:-.03em;margin-top:12px}
.gg .kpit small{margin-top:6px}
.gg .kpit .mini{height:4px;background:var(--line)}
.gg .kpit .mini div{background:var(--ink)}
.gg .dcard{border-radius:10px;padding:20px 24px}
.gg .dcard h3{font-size:16px;font-weight:600}
.gg .card{border-radius:10px;border-color:var(--line)}
.gg .c-head{background:transparent;padding:16px 20px}
.gg .c-head .name{background:var(--in);border-color:var(--in-line)}
.gg .sec{padding:20px}
.gg .res, .gg .next{background:var(--out);border-top-color:var(--out-line)}
.gg .kpi{background:var(--surface);border-color:var(--out-line)}
.gg .mtab{font-size:13px;padding:5px 13px}
.gg .madd{border-color:var(--blue);color:var(--blue)}
.gg .list{border-radius:10px;top:12px}
.gg .item[aria-current="true"]{background:var(--blue-soft);box-shadow:inset 3px 0 0 var(--blue)}
.gg .apply label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}
.gg .prog div{background:var(--blue)}
.gg .bar2 .t div{background:var(--blue)}
.gg .bar2 .t div.over{background:var(--ink)}
.gg .st.live{background:#f6efd9;color:#8a6a1e}
.gg .cat[data-c="리빙"]{background:#e9eef0;color:#4f6c7d;border-color:#cbd8de}
.gg .cat[data-c="키친"]{background:#f4e8dc;color:#8f4f26;border-color:#e6cfb4}
.gg .cat[data-c="헬시"]{background:#eaefdd;color:#4a6b3a;border-color:#cfd8b8}
.gg .cat[data-c="푸드"]{background:#f6efd9;color:#8a6a1e;border-color:#e6d9b0}
.gg .cat[data-c="뷰티"]{background:#f3e7ec;color:#8f5169;border-color:#e4cdd7}
.gg .cat[data-c="패션"]{background:#ece9f2;color:#5f5683;border-color:#d8d3e4}
.gg .grid5 .fin b, .gg .next .grid4 .key b{color:var(--green)}
.gg .kv.big b{color:var(--ink)}
.gg th{background:transparent;font-weight:500}
.gg tfoot td{background:var(--bg)}
.gg .total{background:var(--ink)}
.gg .total .hl b{color:#c9d6a8}
.gg .total .in{max-width:var(--page-w);padding:11px 28px}
.gg .chart svg{max-width:760px}
.gg .dchart svg{max-width:1100px}
.gg #hlayout #plist{display:none}
.gg #hlayout{grid-template-columns:minmax(0,1fr)}
.gg.pf #dayView .layout{grid-template-columns:minmax(0,1fr)}
.gg.pf #dlist{display:none}
@media (max-width:900px){
.gg main{padding:16px 14px 110px}
.gg .kpit:nth-child(-n+3){flex:1 1 100%}
}
.gg .sc-sum{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.gg .sc-sum > div{flex:1;padding:16px 22px;border-left:1px solid var(--line)}
.gg .sc-sum > div:first-child{border-left:0;padding-left:4px}
.gg .sc-sum span{display:block;font-size:12px;color:var(--muted)}
.gg .sc-sum b{display:block;font-size:26px;font-weight:500;letter-spacing:-.03em;margin-top:6px}
.gg .sc-cal{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.gg .sc-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--bg)}
.gg .sc-dow div{padding:8px 10px;font-size:12px;color:var(--muted);text-align:left}
.gg .sc-dow .we, .gg .sc-day.we span{color:var(--red)}
.gg .sc-week{border-bottom:1px solid var(--line);padding-bottom:6px}
.gg .sc-week:last-child{border-bottom:0}
.gg .sc-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.gg .sc-day{padding:6px 10px 4px;min-height:30px;border-left:1px solid var(--line);font-size:12px;color:var(--muted)}
.gg .sc-day:first-child{border-left:0}
.gg .sc-day.out{opacity:.4}
.gg .sc-day.today span{background:var(--ink);color:#fff;border-radius:99px;padding:1px 7px;font-weight:600}
.gg .sc-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:3px;padding:0 4px}
.gg .sc-bar{display:flex;gap:6px;align-items:baseline;min-width:0;text-align:left;cursor:pointer;border:1px solid var(--line);border-left:3px solid var(--c);border-radius:5px;background:var(--c);padding:4px 8px;font-size:12.5px;overflow:hidden}
.gg .sc-bar b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gg .sc-bar small{color:var(--muted);font-size:11px;white-space:nowrap}
.gg .sc-bar:hover{border-color:var(--c)}
.gg .sc-bar.st-done{opacity:.6}
@media (max-width:760px){
.gg .sc-sum b{font-size:20px}
.gg .sc-bar small{display:none}
}
/* ── 1차안 보정: 쉘(사이드바) 안에서 쓰기 위한 덮어쓰기 ── */
.gg{background:transparent}
.gg main{padding:0 0 96px;max-width:none}
.gg .total{left:var(--sb-w);transition:left .25s}
body.sb-collapsed .gg .total{left:var(--sb-w-collapsed)}
@media (max-width:960px){.gg .total{left:0}}
.gg .list{top:calc(var(--top-h) + 12px)}

/* ── 테마 블록: 변수만 갈아끼우고 몇 군데만 덮어쓴다(기본 = 민트 다크, 다른 테마는 css/themes.css 가 .gg 변수를 덮어씀) ── */
.gg{--bg:transparent;--surface:#ffffff;--ink:#1f2a37;--muted:#6b7a8a;--line:#e6ebf0;--blue:#17b9a4;--blue-soft:rgba(23,185,164,.12);--in:rgba(23,185,164,.07);--in-line:rgba(23,185,164,.4);--out:#f5f8fa;--out-line:#e6ebf0;--green:#0f9d8c;--red:#ef4d6e;--red-soft:rgba(239,77,110,.12);--orange:#d9901a;--on-blue:#ffffff;--bar:#17b9a4;--bar-t:#f0a63a;--gg-base:#ffffff;--gg-inset:#ffffff;--gg-btn-bg:#ffffff;--gg-btn-line:#d5dde5;--gg-track:#e9eef2;--gg-total-bg:rgba(31,42,55,.96);--gg-total-ink:#ffffff;--gg-tint:rgba(23,185,164,.06);--gg-orange-soft:rgba(240,166,58,.16);--gg-veil:rgba(255,255,255,.72);--gg-veil2:rgba(255,255,255,.6);font-family:Pretendard,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}
.gg .card,.gg .dcard,.gg .list,.gg .sc-cal,.gg .kpit,.gg .empty{background:var(--surface);border-color:var(--line);border-radius:12px}
.gg .card{overflow:hidden}
.gg .c-head{background:var(--gg-btn-bg)}
.gg .btn{border-radius:999px;background:var(--gg-btn-bg);border-color:var(--gg-btn-line);color:var(--ink)}
.gg .btn:hover{border-color:var(--blue)}
.gg .btn.primary,.gg .btn.primary:hover{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}
.gg .mtab{background:var(--gg-btn-bg);border-color:var(--gg-btn-line);color:var(--ink)}
.gg .mtab[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}
.gg .mtab[aria-pressed="true"] small{color:var(--on-blue);opacity:.7}
.gg .madd{border-color:var(--blue);color:var(--blue)}
.gg .mdel:hover{color:var(--red);background:var(--red-soft)}
.gg .item{color:var(--ink)}
.gg .item:hover{background:var(--gg-btn-bg)}
.gg .item[aria-current="true"]{background:var(--blue-soft);box-shadow:inset 3px 0 0 var(--blue)}
.gg .chip{background:var(--in);border-color:var(--in-line)}
.gg .chip.ro{background:var(--gg-btn-bg);border-color:var(--line)}
.gg .chip input,.gg .chip select,.gg .box input,.gg .box select,.gg .box textarea,.gg .c-head .name,.gg td .cell{color:var(--ink)}
.gg .c-head .name{background:var(--in);border-color:var(--in-line)}
.gg td .cell{background:var(--in);border-color:var(--in-line)}
.gg .del{background:var(--gg-btn-bg);border-color:var(--line);color:var(--muted)}
.gg .rates button{background:var(--gg-btn-bg);border-color:var(--gg-btn-line);color:var(--ink)}
.gg .rates button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}
.gg .apply label{border-color:var(--line)}
.gg .apply label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}
.gg .apply input,.gg .pm > label input,.gg input[type=checkbox]{accent-color:var(--blue)}
.gg .res,.gg .next{background:var(--gg-tint);border-top-color:var(--out-line)}
.gg .kpi{background:var(--gg-inset);border-color:var(--out-line)}
.gg .kpi b{color:var(--orange)}
.gg .grid5 .fin b,.gg .next .grid4 .key b{color:var(--green)}
.gg .kv.big b{color:var(--ink)}
.gg .why{background:var(--gg-inset);border-color:var(--out-line)}
.gg th{color:var(--muted);background:transparent}
.gg th,.gg td{border-bottom-color:var(--line)}
.gg tfoot td{background:var(--gg-btn-bg)}
.gg .tbl-wrap{border-color:var(--line);border-radius:12px}
.gg .ptable tbody tr:hover td{background:var(--gg-btn-bg)}
.gg .kpis{border-color:var(--line)}
.gg .kpit{border-left-color:var(--line)}
.gg .kpit b{font-weight:800}
.gg .kpit .mini{background:var(--gg-track)}
.gg .kpit .mini div{background:var(--blue)}
.gg .prog{background:var(--gg-track)}
.gg .prog div{background:var(--blue)}
.gg .bar2 .t{background:var(--gg-track)}
.gg .bar2 .t div{background:var(--blue)}
.gg .bar2 .t div.over{background:var(--orange)}
.gg .hbar .tr{background:var(--gg-track)}
.gg .st.plan{background:var(--gg-btn-bg);color:var(--muted);border-color:var(--line)}
.gg .st.live{background:var(--gg-orange-soft);color:var(--orange)}
.gg .st.end{background:var(--red-soft);color:var(--red)}
.gg .st.done{background:var(--blue-soft);color:var(--blue)}
.gg .badge{background:var(--blue-soft);color:var(--blue)}
.gg .badge.done{background:var(--blue-soft);color:var(--blue)}
.gg .badge.warn{background:var(--red-soft);color:var(--red)}
.gg .cat{background:var(--gg-btn-bg);color:var(--muted);border-color:var(--line)}
.gg .cat[data-c="리빙"]{background:#e8f1fb;color:#2b5c8f;border-color:#c9ddf3}
.gg .cat[data-c="키친"]{background:#fff0e3;color:#a3551b;border-color:#f4d6bc}
.gg .cat[data-c="헬시"]{background:#e6f4ec;color:#23704a;border-color:#c4e3d1}
.gg .cat[data-c="푸드"]{background:#fdf3d8;color:#8a6410;border-color:#efdda6}
.gg .cat[data-c="뷰티"]{background:#fbeaf1;color:#a23d6b;border-color:#f1cadb}
.gg .cat[data-c="패션"]{background:#eeeafb;color:#5a45a8;border-color:#d6cef3}
.gg .ordtog{background:var(--gg-btn-bg);border-color:var(--line);color:var(--blue)}
.gg .obtn{background:var(--gg-btn-bg);border-color:var(--line);color:var(--muted)}
.gg .xbtn:hover{color:var(--red);background:var(--red-soft)}
.gg .sc-sum{border-color:var(--line)}
.gg .sc-sum > div{border-left-color:var(--line)}
.gg .sc-dow{background:var(--gg-btn-bg);border-bottom-color:var(--line)}
.gg .sc-week,.gg .sc-day{border-color:var(--line)}
.gg .sc-day.today span{background:var(--blue);color:var(--on-blue)}
.gg .sc-bar{background:linear-gradient(var(--gg-veil),var(--gg-veil)),var(--c);color:var(--ink)}
.gg .sc-bar:hover{background:linear-gradient(var(--gg-veil2),var(--gg-veil2)),var(--c)}
.gg .total{background:var(--gg-total-bg);color:var(--gg-total-ink);border-top:1px solid var(--line)}
.gg .total .t{opacity:.6}
.gg .total .hl b{color:var(--blue)}
.gg .total .hl b.neg{color:var(--red)!important}
.gg .usedmark{color:var(--blue)}
.gg .link{color:var(--blue)}
.gg .hint b{color:var(--ink)}
.gg select option{background:var(--gg-base);color:var(--ink)}
.gg .dchart text,.gg .chart text{fill:var(--muted)}
.gg .dchart .vl,.gg .chart .vl{fill:var(--ink)}
.gg .card.flash{outline:2px solid var(--blue);outline-offset:2px;animation:ggFlash .9s cubic-bezier(.32,.72,0,1)}
@keyframes ggFlash{0%{box-shadow:0 0 0 0 var(--blue-soft)}100%{box-shadow:0 0 0 18px transparent}}
.gg .card,.gg .dcard,.gg .kpit{animation:ggIn .55s cubic-bezier(.32,.72,0,1) both}
@keyframes ggIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.gg .card,.gg .dcard,.gg .kpit,.gg .card.flash{animation:none}}
