:root{--ink:#1b2721;--muted:#7d8981;--forest:#142e25;--forest2:#214738;--mint:#cbe9d5;--bg:#f6f8f5;--line:#e3eae4;--line2:#edf1ed;--white:#fff;--red:#c64b51;--red-bg:#fff0f0;--shadow:0 9px 30px rgba(22,49,31,.045)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;font-size:14px;line-height:1.5}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #6d9f79;outline-offset:2px}.visually-hidden{position:absolute;clip:rect(0,0,0,0);height:1px;width:1px;overflow:hidden}h1,h2,h3,p{margin:0}.topbar{height:76px;background:var(--forest);display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1152px)/2));gap:12px;color:white}.brand-mark{background:#29493a;border:1px solid #42624f;border-radius:14px;width:42px;height:42px;display:grid;place-items:center;color:#d1edda}.brand-copy{display:flex;flex-direction:column;line-height:1.28;flex:1}.brand-name{font-weight:800;letter-spacing:-.03em;font-size:16px}.brand-sub{color:#b2c8b9;font-size:11px;margin-top:4px;letter-spacing:.025em}.top-action{border:1px solid #506b5b;color:#dceadf;background:transparent;border-radius:12px;width:43px;height:43px;display:grid;place-items:center;transition:.2s}.top-action:hover{background:#284538}.shell{width:min(1100px,calc(100% - 44px));margin:0 auto;padding:38px 0 66px}.page-intro{padding-bottom:21px}.eyebrow{display:flex;align-items:center;gap:9px;color:#466d54;font-size:12px;font-weight:750;letter-spacing:.03em;margin-bottom:11px}.status-dot{height:7px;width:7px;background:#79b18c;border-radius:50%;box-shadow:0 0 0 4px #e2f3e8}h1{letter-spacing:-.055em;font-size:clamp(29px,3.6vw,41px);font-weight:850;line-height:1.23}.period-dot{color:#71ad88}.page-intro p{color:var(--muted);font-size:13px;margin-top:8px}.privacy-note{display:flex;align-items:flex-start;gap:8px;padding:10px 13px;margin-bottom:21px;color:#627d6b;background:#ebf2ed;border:1px solid #dbe7df;border-radius:9px;font-size:11px;line-height:1.65}.privacy-note svg{flex:none;margin-top:1px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.kpi-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:22px 19px 19px;min-height:145px;box-shadow:var(--shadow)}.kpi-main{background:var(--forest);color:#fff;border-color:var(--forest)}.kpi-label{display:flex;justify-content:space-between;gap:5px;font-size:12px;font-weight:700;color:#7c8981}.kpi-main .kpi-label{color:#bfcebf}.kpi-index{color:#bdc9be;font-size:10px}.kpi-main .kpi-index{color:#709784}.kpi-value{font-size:clamp(20px,2.4vw,29px);font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.045em;margin-top:15px;white-space:nowrap}.kpi-note{font-size:11px;color:#9ca6a0;margin-top:10px}.kpi-main .kpi-note{color:#b2cebb}.kpi-note strong{color:#426c52}.tabbar{display:flex;align-items:center;gap:4px;margin:31px 0 19px;border-bottom:1px solid #dce6de}.tab{border:0;background:none;font-weight:750;padding:14px 20px;color:#87938a;border-bottom:3px solid transparent;transition:color .2s;white-space:nowrap}.tab.active{color:var(--forest);border-bottom-color:var(--forest)}.tab:hover{color:var(--forest)}.filter-panel{border:1px solid var(--line);background:#fff;padding:18px;border-radius:17px;box-shadow:var(--shadow)}.searchbox{display:flex;align-items:center;gap:11px;height:54px;padding:0 15px;border:1px solid #dbe4de;border-radius:12px;color:#73917d;background:#fcfdfc}.searchbox:focus-within{border-color:#87ae95;box-shadow:0 0 0 3px #edf6ef}.searchbox input{border:0;outline:0!important;min-width:0;flex:1;font-size:14px;color:var(--ink);background:transparent}.searchbox input::placeholder{color:#acb7ae}.kbd{font-size:10px;color:#9eaca1;border:1px solid #e2eae3;border-radius:5px;padding:3px 6px}.filter-row{display:flex;align-items:center;gap:9px;margin-top:11px}.select-wrap{flex:1;min-width:0;position:relative}.select-wrap:after{content:"⌄";position:absolute;right:12px;top:8px;pointer-events:none;color:#93a198;font-size:20px}.select-wrap select,.heading-actions select{width:100%;height:42px;border:1px solid #e0e8e2;border-radius:9px;background:#fff;color:#526258;padding:0 29px 0 12px;font-size:12px;appearance:none;-webkit-appearance:none;overflow:hidden;text-overflow:ellipsis}.date-field{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:1;border:1px solid #e0e8e2;border-radius:9px;padding:0 8px 0 12px;height:40px;color:#8c9a90;font-size:11px;min-width:0}.date-field input{width:100%;min-width:0;color:var(--ink);font-size:12px;background:transparent;border:0;outline:0}.date-sep{color:#a6b2a8}.reset-btn{height:40px;min-width:64px;border:1px solid #dfe8e1;border-radius:9px;background:#f8faf7;color:#476450;font-size:12px;font-weight:700}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:15px;margin:28px 0 14px}.section-heading h2{font-size:18px;letter-spacing:-.04em}.section-heading p{font-size:12px;color:#91a096;margin-top:4px}.heading-actions{display:flex;align-items:center;gap:7px}.heading-actions select{border:1px solid #dfe9e0;border-radius:9px;padding:0 25px 0 11px;max-width:145px;background-color:white;height:38px}.icon-btn{display:grid;place-items:center;border:1px solid #dfe9e0;width:38px;height:38px;background:white;color:#597160;border-radius:9px}.record-list,.analysis-list{display:flex;flex-direction:column;gap:10px}.record-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 18px;padding:18px 19px;border-radius:13px;border:1px solid var(--line);background:var(--white);box-shadow:var(--shadow);text-align:left;color:inherit;width:100%;transition:transform .12s,border-color .15s}.record-card:hover{border-color:#a9c4b2;transform:translateY(-1px)}.record-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:11px;color:#91a097;margin-bottom:7px}.tag{font-size:10px;font-weight:700;padding:3px 7px;border-radius:5px;color:#416f4d;background:#eaf4ec}.tag.return{color:#b7525a;background:#fff0f1}.tag.gift{color:#926a20;background:#fcf3da}.record-name{font-weight:760;line-height:1.43;font-size:14px;letter-spacing:-.02em;overflow-wrap:anywhere}.record-footer{margin-top:11px;display:flex;flex-wrap:wrap;gap:13px;font-size:12px;color:#809084}.record-footer strong{font-weight:750;color:#4e6255}.record-total{text-align:right;min-width:105px}.record-total .amount{font-weight:850;letter-spacing:-.035em;white-space:nowrap;font-size:17px;font-variant-numeric:tabular-nums}.record-total .amount.negative,.negative{color:var(--red)}.record-total .profit{font-size:11px;color:#91a096;margin-top:5px;white-space:nowrap}.record-total .profit.red{color:var(--red)}.load-more{margin:16px auto 0;display:block;width:min(240px,100%);border-radius:10px;height:44px;border:1px solid #cbdcd0;background:white;color:var(--forest);font-weight:750}.load-more[hidden]{display:none}.empty{background:white;border:1px dashed #cadacc;border-radius:13px;padding:50px 22px;text-align:center;color:#8a9c8f}.empty h3{font-size:16px;color:#4b6452;margin-bottom:5px}.empty svg{margin-bottom:13px;color:#7baf88}.analysis-card{padding:18px 19px;background:white;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.analysis-top{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}.analysis-name{font-size:14px;font-weight:750;overflow-wrap:anywhere;line-height:1.42;letter-spacing:-.025em}.analysis-amount{font-size:16px;font-weight:850;white-space:nowrap;text-align:right;letter-spacing:-.03em}.analysis-sub{margin-top:7px;display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:#89998d}.analysis-sub strong{color:#435c49}.bar-track{height:5px;border-radius:10px;background:#eef4ef;margin-top:15px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#98c6a4,#3a7852);border-radius:10px;min-width:0}.analysis-footnote{font-size:11px;line-height:1.6;color:#8b9a8e;margin-top:14px}.footer-actions{display:flex;align-items:center;flex-direction:column;border-top:1px solid #e1e8e2;margin-top:44px;padding-top:32px}.update-btn{display:flex;align-items:center;justify-content:center;gap:9px;border-radius:11px;background:var(--forest);color:#fff;padding:13px 21px;border:0;font-weight:750}.footer-actions p{font-size:11px;color:#9caaa0;margin-top:12px;text-align:center}.text-link{margin-top:10px;color:#708e78;text-decoration:underline;text-underline-offset:3px;background:transparent;border:0;font-size:11px;padding:6px}.modal-layer{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.modal-layer[hidden]{display:none}.modal-backdrop{position:absolute;inset:0;background:rgba(11,26,16,.58)}.modal-panel{z-index:1;max-width:650px;width:100%;max-height:min(810px,91vh);display:flex;flex-direction:column;border-radius:19px;background:#fff;overflow:hidden;box-shadow:0 24px 70px rgba(2,16,8,.25)}.modal-head{display:flex;gap:12px;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line2)}.modal-head h2{font-size:18px;line-height:1.4;margin-top:7px;overflow-wrap:anywhere}.modal-eyebrow{color:#608568;font-size:11px;font-weight:800}.close-btn{flex:none;border:1px solid #e1e8e2;background:#f8faf8;width:35px;height:35px;font-size:25px;line-height:25px;border-radius:9px;color:#536a5b}.modal-body{overflow:auto;padding:20px 24px 29px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.detail-item{padding:0 0 12px;border-bottom:1px solid #eef2ee;min-width:0}.detail-label{font-size:11px;color:#91a196;margin-bottom:6px}.detail-value{font-size:13px;font-weight:720;overflow-wrap:anywhere}.modal-summary{display:grid;grid-template-columns:repeat(2,1fr);background:#eef5ef;border-radius:11px;padding:17px;gap:15px;margin-bottom:22px}.modal-summary label{font-size:11px;color:#667e6b;display:block;margin-bottom:5px}.modal-summary strong{font-size:20px;letter-spacing:-.04em;overflow-wrap:anywhere}.toast{position:fixed;z-index:300;left:50%;bottom:26px;transform:translateX(-50%);background:#203b2c;color:#fff;font-weight:600;border-radius:11px;padding:13px 17px;box-shadow:0 12px 35px rgba(0,0,0,.2);width:max-content;max-width:calc(100vw - 36px);text-align:center;font-size:12px}.toast[hidden]{display:none}
@media(max-width:800px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shell{width:min(640px,calc(100% - 30px));padding:26px 0 55px}.topbar{padding:0 15px;height:67px}.kpi-card{min-height:133px;padding:17px 15px}.kpi-value{font-size:clamp(19px,4.5vw,27px)}.tabbar{margin-top:26px}.tab{flex:1;padding:13px 5px;font-size:13px}.filter-panel{padding:13px}.kbd{display:none}.record-card{padding:15px}.record-total{min-width:93px}.record-total .amount{font-size:16px}.section-heading{align-items:center}}
@media(max-width:440px){.record-card{grid-template-columns:1fr}.record-total{min-width:0;display:flex;justify-content:space-between;align-items:center;text-align:left;padding-top:10px;border-top:1px solid #eff3ef}.record-total .profit{margin:0}.date-field{padding-left:8px;gap:5px}.date-field span{font-size:10px}.date-field input{font-size:10px}.filter-row{gap:6px}.select-wrap select{font-size:11px;padding-left:8px}.modal-panel{max-height:95vh;border-radius:15px}.modal-head{padding:17px}.modal-body{padding:16px}.detail-grid{gap:12px}.kpi-label{font-size:11px}.kpi-note{font-size:10px}.kpi-value{font-size:clamp(18px,5vw,23px)}.section-heading h2{font-size:16px}.heading-actions select{max-width:124px;font-size:11px}.analysis-top{flex-wrap:wrap}}

/* 설치 직후 데이터 가져오기 안내 */
.first-run{padding:34px 20px 30px;border:1px dashed #9ebca6;background:#f6faf7;border-radius:17px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.first-run[hidden]{display:none}.first-run-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;background:#e2f0e6;color:#345943;font-size:35px;font-weight:500}
.first-run h3{font-size:18px;letter-spacing:-.04em}.first-run p{color:#667c6b;font-size:13px;line-height:1.7;max-width:490px}.first-run small{color:#869c8b;font-size:11px;max-width:460px;line-height:1.6}

/* 음성 조회 모듈 */
.searchbox .voice-button { flex:none; width:40px; height:40px; border:0; border-radius:10px; display:grid; place-items:center; color:#316d48; background:#e8f2eb; cursor:pointer; transition:background-color .2s; }
.searchbox .voice-button:hover { background:#d4e9da; }
.searchbox .voice-button.listening { color:#fff; background:#b83842; animation:voice-pulse 1.25s ease-in-out infinite; }
.searchbox .voice-button[disabled]{opacity:.55;cursor:not-allowed}
@keyframes voice-pulse { 50%{box-shadow:0 0 0 7px rgba(184,56,66,.15)} }
.voice-help {font-size:11px;line-height:1.55;color:#788c7d;margin:9px 3px 0}
.voice-answer {margin-top:12px;border:1px solid #b6d7bf;border-radius:13px;background:#f3faf5;padding:15px 16px;}
.voice-answer[hidden]{display:none}
.voice-answer-head {display:flex;justify-content:space-between;align-items:start;gap:10px}
.voice-answer-kicker{color:#6b9073;font-size:10px;font-weight:800;letter-spacing:.01em;display:block;margin-bottom:5px}
.voice-heard{color:#244a31;font-size:13px;line-height:1.5;display:block;word-break:break-word}
.voice-answer p{font-size:13px;line-height:1.7;color:#365543;margin:12px 0}
.voice-close{border:none;background:none;color:#718f77;font-size:24px;line-height:1;width:28px;height:28px;cursor:pointer}
.voice-replay{display:inline-flex;align-items:center;gap:7px;border:1px solid #b6d7bf;background:#fff;color:#3b704b;border-radius:9px;padding:8px 11px;font-size:12px;font-weight:800;cursor:pointer}
@media(max-width:440px){.searchbox{padding:0 8px 0 12px;gap:8px}.searchbox input{font-size:13px}.searchbox .voice-button{width:40px;height:40px}}

/* v4: persistent personal ledger and import preview */
.data-manager{margin:25px 0 25px;padding:22px;border:1px solid #d5e4d8;background:#fdfefd;border-radius:16px;box-shadow:var(--shadow)}
.data-manager-head h2{font-size:18px;letter-spacing:-.035em;margin:3px 0 7px}.data-manager-head p{font-size:12px;color:#738579;line-height:1.6}
.eyebrow-secondary{font-size:10px;font-weight:800;letter-spacing:.13em;color:#719e7e}.version-tag{color:#688673;font-size:10px;font-weight:750;letter-spacing:0;background:#e8f3eb;border-radius:8px;padding:4px 7px;vertical-align:3px}
.data-saved-summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-top:17px}.data-saved-summary>div{background:#eef6ef;border-radius:10px;padding:11px 12px;min-width:0}.data-saved-summary span{display:block;font-size:10px;color:#839688}.data-saved-summary strong{display:block;font-size:12px;color:#2a4e36;margin-top:7px;overflow-wrap:anywhere}
.data-manager-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.manage-button{border:1px solid var(--forest);background:var(--forest);color:white;border-radius:10px;padding:10px 12px;font-size:12px;font-weight:750;cursor:pointer}.manage-button.outline{background:#fff;color:#456650;border-color:#c9dacf}.manage-button:disabled{opacity:.6;cursor:wait}
.history-block{border-top:1px solid #e3eae4;margin-top:18px;padding-top:15px}.history-block>strong{font-size:12px;color:#476650}.history-block ul{list-style:none;padding:0;margin:9px 0 0}.history-block li{display:flex;flex-direction:column;gap:3px;padding:8px 0;border-bottom:1px solid #f0f3f0;font-size:12px;overflow-wrap:anywhere}.history-block li strong{font-weight:700}.history-block li span{font-size:11px;color:#819487}.history-block .history-empty{color:#849689}
.local-warning{font-size:11px;color:#758478;line-height:1.7;margin-top:16px}.local-warning strong{color:#54715c}
.import-preview{white-space:pre-line;background:#f3f7f4;border-radius:10px;padding:13px;color:#486a53;font-size:12px;line-height:1.8;margin:0 0 15px}.import-options{display:grid;gap:10px}.mode-option{border:1px solid #d3e2d6;border-radius:11px;padding:14px 12px;display:flex;gap:11px;align-items:flex-start;cursor:pointer}.mode-option:has(input:checked){border-color:#477b59;background:#f2faf4}.mode-option input{margin-top:3px;accent-color:#43744e}.mode-option span{display:flex;flex-direction:column;gap:6px}.mode-option strong{font-size:13px;color:#30513c}.mode-option small{font-size:11px;line-height:1.6;color:#748b7b}.mode-option:has(input:disabled){opacity:.45;cursor:not-allowed}
.mode-result{font-size:12px;font-weight:750;color:#2c6b43;background:#e9f5ed;border-radius:9px;padding:11px 12px;margin-top:12px;line-height:1.6}.import-alert{font-size:11px;color:#8b6359;line-height:1.7;margin:13px 1px}.import-confirm{width:100%;cursor:pointer}
@media(max-width:520px){.data-manager{padding:17px}.data-saved-summary{grid-template-columns:1fr 1fr}.data-saved-summary>div:last-child{grid-column:span 2}.data-manager-buttons{display:grid;grid-template-columns:1fr 1fr}.data-manager-buttons button:first-child{grid-column:span 2}.manage-button{min-height:42px}}

/* v5: source sale amount blue; derived wholesale cost red */
:root{--sales-blue:#176ab9;--cost-red:#cc3446}
.blue-amount,.record-total .amount.blue-amount,.analysis-amount.blue-amount{color:var(--sales-blue)!important}
.red-amount,.record-total .cost.red-amount,.analysis-sub .red-amount,.modal-summary .red-amount{color:var(--cost-red)!important}
.record-total .cost{font-weight:760;white-space:nowrap;font-size:12px;margin-top:5px}
.kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi-cost .kpi-label{color:#a83a49}
.kpi-cost .kpi-value{letter-spacing:-.045em;font-size:clamp(19px,2.2vw,27px)}
.wholesale-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.wholesale-summary strong{font-size:clamp(15px,2.8vw,20px)}
.wholesale-note{font-size:11px;margin:-9px 0 21px;color:#76877b;line-height:1.6}
.wholesale-detail{border-color:#ffdbdf}
.search-hint{font-size:11px;color:#607c6c;margin:8px 2px 0;line-height:1.55}
@media(max-width:950px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-card{min-width:0}}
@media(max-width:440px){.record-total{flex-wrap:wrap;gap:5px}.record-total .amount{width:100%;font-size:16px}.record-total .cost{margin:0}.record-total .profit{margin:0}.wholesale-summary{grid-template-columns:1fr 1fr}.wholesale-summary>div:last-child{grid-column:1 / -1}}

/* v6: 전국 매장 필터는 전체 폭에서 줄바꿈되도록 */
.filter-row .select-wrap{min-width:112px;flex:1 1 112px;}
#storeScopeNote{font-size:11px;opacity:.88;margin-top:6px;}

.import-progress{position:fixed;inset:auto 12px 20px 12px;background:#182235;color:#fff;padding:14px 16px;border-radius:10px;z-index:10000;font-weight:600;box-shadow:0 6px 24px #0003;word-break:break-all;}
