:root{--bg: #f1f4f9;--card: #ffffff;--border: #e4e8f0;--border-soft: #eef1f6;--text: #1a2233;--muted: #6b7686;--primary: #3457d5;--primary-dark: #2643b0;--primary-soft: #eaf0ff;--accent: #7c5cff;--success: #16a34a;--success-soft: #e9f9ef;--danger: #dc2626;--danger-soft: #fdeceb;--shadow-sm: 0 1px 2px rgba(20, 30, 60, .05), 0 1px 1px rgba(20, 30, 60, .03);--shadow-md: 0 4px 14px rgba(30, 41, 82, .07), 0 1px 3px rgba(30, 41, 82, .05);--radius: 12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Pretendard,Malgun Gothic,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app-shell{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.75rem;background:linear-gradient(135deg,#1c2b6b,#3457d5 55%,#5b7cf0);color:#fff;position:sticky;top:0;z-index:20;box-shadow:var(--shadow-md)}.brand{font-weight:800;color:#fff;text-decoration:none;font-size:1.08rem;letter-spacing:-.01em}.topbar nav a{margin-left:1.4rem;text-decoration:none;color:#ffffffbf;font-weight:600;font-size:.92rem;padding-bottom:4px;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.topbar nav a:hover{color:#fff}.topbar nav a.active{color:#fff;border-bottom-color:#fff}main{max-width:1180px;margin:0 auto;padding:1.75rem 1.5rem 4rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.35rem 1.5rem;margin-bottom:1.25rem;box-shadow:var(--shadow-sm)}.card.narrow{max-width:400px;margin:3rem auto}.card h3{font-size:1rem;letter-spacing:-.01em}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.1rem;margin-bottom:1.25rem}.upload-box{background:var(--card);border:1.5px dashed #c9d3ea;border-radius:var(--radius);padding:1.3rem;transition:border-color .15s ease,background .15s ease}.upload-box.drag{border-color:var(--primary);background:var(--primary-soft)}.upload-box h3{margin:0 0 .3rem}.file-btn{display:inline-block;margin-top:.6rem;padding:.55rem 1.1rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600;box-shadow:var(--shadow-sm)}.file-btn input{display:none}.status-log{margin-top:.75rem;padding-left:1rem;font-size:.82rem;color:var(--muted);max-height:140px;overflow-y:auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}form{display:flex;flex-direction:column;gap:.9rem}label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted)}input,select{padding:.55rem .7rem;border:1px solid var(--border);border-radius:8px;font-size:.95rem;background:#fff;color:var(--text)}input:focus,select:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}button{padding:.55rem 1.1rem;border:none;border-radius:8px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-weight:600;cursor:pointer;font-size:.88rem;box-shadow:var(--shadow-sm);transition:transform .06s ease,box-shadow .15s ease,opacity .15s ease}button:hover{box-shadow:var(--shadow-md)}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}button.secondary{background:#fff;color:var(--text);border:1px solid var(--border);box-shadow:none}button.secondary:hover{background:#f6f8fc;border-color:#cdd6ea}.error{color:var(--danger);font-size:.9rem}.muted{color:var(--muted)}.muted.small,.small{font-size:.82rem}.simple-table,.data-table,.mini-table{width:100%;border-collapse:collapse;font-size:.88rem}.simple-table th,.simple-table td,.data-table th,.data-table td,.mini-table th,.mini-table td{padding:.6rem .65rem;border-bottom:1px solid var(--border-soft);text-align:left}.data-table th{color:var(--muted);font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;background:#fafbfe;border-bottom:1px solid var(--border)}.data-table tbody tr:hover{background:#f7f9fd}.num{text-align:right;font-variant-numeric:tabular-nums}.pro-table .center,.pro-table th.center,.pro-table td.center{text-align:center!important}.num.strong{font-weight:700;color:var(--text)}tr.clickable{cursor:pointer}tr.clickable:hover{background:#fafbfc}.expand-toggle{text-align:center;color:var(--muted);width:2rem}.detail-row td{background:#f8f9fd;padding:.85rem 1.1rem}.mini-table{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden}.mini-table th{background:#fafbfe;font-size:.76rem;color:var(--muted);text-transform:uppercase}.tabs{display:flex;gap:.5rem;margin-bottom:1.1rem}.tab{background:#fff;color:var(--muted);border:1px solid var(--border);padding:.55rem 1.2rem;font-weight:600;box-shadow:none}.tab.active{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-color:transparent;box-shadow:var(--shadow-sm)}.summary-line{font-size:.98rem;margin-bottom:.9rem}.summary-line.small{font-size:.85rem;color:var(--muted);margin-top:.6rem;margin-bottom:0}.summary-line b{color:var(--primary-dark)}.group-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.4rem}.group-buttons.sub{margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--border)}.chip{background:#fff;color:var(--text);border:1px solid var(--border);padding:.42rem 1.05rem;border-radius:999px;font-size:.85rem;font-weight:600;box-shadow:none}.chip:hover{border-color:var(--primary);color:var(--primary-dark)}.chip.small{padding:.32rem .8rem;font-size:.8rem}.chip.active{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-color:transparent;box-shadow:var(--shadow-sm)}.chip.active:hover{color:#fff}.special-filter-buttons{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border)}.chip.warn{border-color:#e8b34a;color:#a3690b}.chip.warn:hover{border-color:#d99a1f;color:#8a5806}.chip.warn.active{background:linear-gradient(135deg,#f0a93a,#d97f0a);color:#fff;border-color:transparent}.chip.warn.active:hover{color:#fff}.date-range-card{position:relative}.date-range-popover{position:relative;display:inline-block}.date-range-trigger{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:.55rem 1rem;font-size:.88rem;font-weight:600;color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm)}.date-range-trigger:hover{border-color:var(--primary)}.date-range-trigger-icon{font-size:.95rem}.date-range-trigger-caret{font-size:.65rem;color:var(--muted);margin-left:.2rem}.date-range-popover-panel{position:absolute;top:calc(100% + .5rem);left:0;z-index:20;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:.9rem;min-width:320px}.hold-controls{display:flex;align-items:center;gap:.6rem;margin:.8rem 0;flex-wrap:wrap}.stat-summary-card{background:linear-gradient(180deg,#fbfcff,#fff)}.summary-table{width:100%;border-collapse:collapse;table-layout:fixed}.summary-table th{font-size:.76rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em;text-align:center;padding-bottom:.5rem}.summary-table td{text-align:center;font-weight:800;font-size:1.5rem;color:var(--primary-dark);padding:.6rem .6rem .2rem;border-right:1px solid var(--border-soft)}.summary-table td:last-child{border-right:none}.summary-table .unit{font-size:.85rem;font-weight:600;color:var(--muted);margin-left:.2rem}.range-calendar{max-width:360px}.range-calendar-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem;flex-wrap:wrap}.cal-nav{background:#fff;color:var(--text);border:1px solid var(--border);width:2rem;height:2rem;padding:0;border-radius:8px;box-shadow:none;font-size:1rem;line-height:1}.cal-nav:hover{border-color:var(--primary);color:var(--primary)}.cal-month-label{font-weight:700;font-size:.92rem;min-width:6.5rem;text-align:center}.cal-presets{display:flex;gap:.4rem;margin-left:auto}.cal-grid{width:100%;border-collapse:collapse;table-layout:fixed}.cal-grid th{font-size:.72rem;color:var(--muted);font-weight:700;padding:.3rem 0;text-align:center}.cal-grid td{padding:1px;text-align:center}.cal-empty{background:transparent}.cal-day{width:2.15rem;height:2.15rem;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:.83rem;font-weight:600;cursor:pointer;box-shadow:none}.cal-day:hover:not(.disabled):not(.endpoint){background:var(--primary-soft)}.cal-day.disabled{color:#cbd2e0;cursor:not-allowed}.cal-day.in-range{background:var(--primary-soft);border-radius:0;color:var(--primary-dark)}.cal-day.endpoint{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-radius:8px}.cal-selection{margin:.6rem 0 0;font-weight:600}.daily-table-wrap{overflow-x:auto;margin-top:.5rem;border-radius:8px}.daily-table{border-collapse:collapse;font-size:.85rem;white-space:nowrap}.daily-table th,.daily-table td{padding:.45rem .75rem;border-bottom:1px solid var(--border-soft);text-align:right}.daily-table th{color:var(--muted);font-weight:700;background:#fafbfe;position:sticky;top:0;font-size:.74rem;text-transform:uppercase}.daily-row-label{text-align:left!important;font-weight:700;position:sticky;left:0;background:#fff;z-index:1}.detail-row .daily-row-label{background:#f8f9fd}.small-btn{padding:.32rem .75rem;font-size:.78rem}.hold-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.table-card{padding:.9rem}.table-scroll-top{overflow-x:auto;overflow-y:hidden;height:18px;margin-bottom:.4rem;border:1px solid var(--border);border-radius:999px;background:#f4f6fb}.table-scroll-top::-webkit-scrollbar{height:10px}.table-scroll-top::-webkit-scrollbar-track{background:#f4f6fb;border-radius:999px}.table-scroll-top::-webkit-scrollbar-thumb{background:#c3ccdd;border-radius:999px}.table-scroll-top::-webkit-scrollbar-thumb:hover{background:var(--primary)}.table-scroll{overflow-x:auto}.table-scroll::-webkit-scrollbar{height:10px}.table-scroll::-webkit-scrollbar-track{background:#f4f6fb;border-radius:999px}.table-scroll::-webkit-scrollbar-thumb{background:#c3ccdd;border-radius:999px}.table-scroll::-webkit-scrollbar-thumb:hover{background:var(--primary)}.pro-table{border-collapse:separate;border-spacing:0;min-width:100%}.pro-table thead tr:first-child th{border-top:none}.pro-table th,.pro-table td{white-space:nowrap}.pro-table .dealer-name-cell{white-space:normal;max-width:220px;font-weight:600}.sticky-col{position:sticky;background:#fff;z-index:3}.sticky-col.col-1{left:0;min-width:92px}.sticky-col.col-2{left:92px;min-width:200px}.sticky-col.col-3{left:292px;min-width:100px}.sticky-col.col-4{left:392px;min-width:120px;box-shadow:2px 0 4px #141e3c0a}thead .sticky-col{background:#fafbfe;z-index:4}.sub-header th{border-top:none;padding-top:0;padding-bottom:.4rem;text-align:center}.date-col-header{text-align:center!important;background:#fafbfe;font-weight:700;border-left:1px solid var(--border)}.date-sub-header{text-align:center;background:#fafbfe;border-left:1px solid var(--border)}.date-data-cell{border-left:1px solid var(--border)}.date-sub-header-inner{display:flex;gap:.5rem;justify-content:center;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.01em}.date-sub-header-inner .d-sales{color:var(--text)}.date-sub-header-inner .d-in{color:var(--success)}.date-sub-header-inner .d-out{color:var(--danger)}.date-data-cell{padding:0!important}.daily-cell-group{display:flex;gap:.5rem;justify-content:center;padding:.55rem .5rem;font-variant-numeric:tabular-nums;font-size:.82rem}.daily-cell-group .d-sales{color:var(--text);font-weight:700;min-width:1.4em}.daily-cell-group .d-in{color:var(--success);min-width:1.6em}.daily-cell-group .d-out{color:var(--danger);min-width:1.6em}
