:root{color:#1d2421;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f7f9f6;font-family:Helvetica Neue,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#app{min-height:100vh;margin:0}body{color:#212529;background:#f7f9f6}button,input,select{font:inherit}.page-shell{min-height:100vh}.login-page{background:#f7f9f6;justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.login-card{text-align:center;background:#fff;border:1px solid #e1e7e0;border-radius:12px;width:100%;max-width:420px;padding:40px 30px;box-shadow:0 8px 24px #28a74514}.login-icon{margin-bottom:8px;font-size:3.5rem;line-height:1}.login-card h1{color:#2b8a3e;margin:0 0 24px;font-size:2rem;font-weight:800;line-height:1.4}.field-label{text-align:left;color:#6c757d;margin-bottom:8px;font-weight:700;display:block}.login-card input,.search-keyword-field input,.manual-date input,.search-date-field input,.qty-control input,.table-wrap input,.table-toolbar select{color:#212529;background:#fff;border:1px solid #dfe5e1;border-radius:8px;width:100%;padding:.75rem .9rem}.password-wrap{margin-bottom:16px}.remember-label{color:#6c757d;align-items:center;gap:8px;margin:0 0 20px;font-size:.85rem;font-weight:600;display:flex}.login-btn,.btn,.page-btn,.pill,.close-btn{cursor:pointer;border:none;border-radius:8px;transition:filter .15s,transform .15s}.login-btn,.btn-success{color:#212529;background:#ffd43b;font-weight:700}.login-btn:hover,.btn-success:hover{filter:brightness(.98)}.login-btn{width:100%;padding:.85rem 1rem;font-size:1.02rem}.login-error{color:#dc3545;min-height:24px;margin-top:12px;font-weight:700}.main-page{padding:36px 18px 52px}.main-container{background:#fff;border:1px solid #edf1ee;border-radius:12px;max-width:1140px;margin:0 auto;padding:28px 24px 18px;box-shadow:0 8px 24px #28a7450d}.topbar{border-bottom:1px solid #edf1ee;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:16px;display:flex}.topbar h2{color:#1f2d1a;margin:0;font-size:1.6rem}.section-title-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.section-title-row h3{color:#1e5e3a;margin:0;font-size:1.4rem}.count-badge{color:#fff;background:#2ea44f;border-radius:999px;padding:.45rem .9rem;font-size:.92rem;font-weight:700}.search-panel{background:#f1f8f4;border:1px solid #d3e7dd;border-radius:8px;margin-bottom:16px;padding:14px}.search-row{grid-template-columns:minmax(280px,1.2fr) minmax(220px,1fr) auto;align-items:center;gap:14px;display:grid}.search-date-field{position:relative}.date-dropdown{color:#495057;cursor:pointer;background:#fff;border:1px solid #dce4dd;border-radius:8px;align-items:center;gap:10px;width:100%;min-height:42px;padding:.7rem .9rem;font-size:.92rem;display:flex}.quick-date-box{background:#fff;border:1px solid #dfe5e1;border-radius:10px;margin-top:10px;padding:12px;display:none;box-shadow:0 12px 30px #00000014}.search-date-field:hover .quick-date-box,.search-date-field:focus-within .quick-date-box{display:block}.quick-periods{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.pill{text-align:left;color:#495057;background:#f5f5f5;width:100%;padding:.55rem .75rem;font-size:.82rem}.pill.active{color:#fff;background:#2ea44f;font-weight:700}.pill.danger{color:#d63384}.manual-date{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.manual-date label{color:#6c757d;margin-bottom:6px;font-size:.78rem;display:block}.search-keyword-field{background:#fff;border:1px solid #dfe5e1;border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:0 .8rem;display:flex}.search-keyword-field input{border:none;outline:none;width:100%;padding:.7rem 0}.search-icon{color:#6c757d;font-size:1.2rem}.search-actions{gap:8px;display:flex}.btn{padding:.55rem 1rem;font-weight:700}.btn-success{color:#fff;background:#2ea44f}.btn-success:hover{background:#227c3b}.btn-secondary,.btn-ghost{color:#495057;background:#fff;border:1px solid #dfe5e1}.btn-ghost{background:#fff}.btn-primary{color:#fff;background:#0d6efd}.btn-compact{padding:.35rem .7rem;font-size:.78rem}.selected-toolbar{color:#2b8a3e;background:#f5faf6;border:1px solid #d6ebdc;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;font-weight:700;display:flex}.table-toolbar{color:#6c757d;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:12px;font-weight:600;display:flex}.table-toolbar select{border-radius:6px;width:auto;min-width:96px;padding:.3rem .6rem}.table-wrap{background:#fff;border:1px solid #dee2e6;border-radius:8px;overflow:hidden}.table-wrap.compact{border-radius:10px}.table-wrap table{border-collapse:collapse;width:100%}.table-wrap thead th{color:#fff;text-align:left;border-bottom:none;padding:14px 12px;font-size:.9rem;font-weight:700;background:#1e5e3a!important}.table-wrap tbody td{vertical-align:middle;border-top:1px solid #eef1f3;padding:12px;font-size:.9rem}.table-wrap tbody tr:nth-child(2n){background:#fbfcfb}.select-cell,.action-cell{text-align:center;width:60px}.text-right{text-align:right}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.empty-row{text-align:center;color:#6c757d;padding:28px 12px}.pagination-bar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:14px;display:flex}.page-btn{color:#1e5e3a;background:#f4f5f6;min-width:38px;padding:.45rem .7rem;font-weight:700}.page-btn:disabled{opacity:.45;cursor:not-allowed}.page-btn.active{color:#fff;background:#2ea44f}.page-info{color:#6c757d;margin-left:8px;font-size:.85rem;font-weight:600}.toast-container{z-index:3000;position:fixed;top:22px;right:22px}.toast-item{color:#fff;border-radius:10px;min-width:210px;max-width:320px;padding:.9rem 1rem;font-weight:700;box-shadow:0 10px 25px #0000002e}.toast-success{background:#2ea44f}.toast-warning{color:#1f2d1a;background:#ffb703}.toast-danger{background:#dc3545}.modal-backdrop{z-index:2000;background:#0f172a61;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border:1px solid #edf1ee;border-radius:12px;width:min(540px,100%);overflow:hidden;box-shadow:0 16px 40px #0000001f}.modal-card.wide{width:min(720px,100%)}.modal-header,.modal-footer{justify-content:space-between;align-items:center;padding:1rem 1.2rem;display:flex}.modal-header{color:#fff;background:#1e5e3a}.modal-header h3{margin:0;font-size:1.2rem}.close-btn{color:#fff;background:0 0;font-size:1.5rem;line-height:1}.modal-body{padding:1.1rem 1.2rem}.modal-body p{color:#495057;margin:0 0 1rem}.modal-detail-box{background:#f8fbf8;border:1px solid #ecf1ee;border-radius:8px;gap:12px;padding:1rem;display:grid}.qty-row{align-items:center;gap:12px;display:flex}.qty-control{background:#fff;border:1px solid #dfe5e1;border-radius:6px;align-items:center;width:150px;display:flex;overflow:hidden}.qty-control button{cursor:pointer;background:#f4f7f5;border:none;width:38px;height:38px;font-size:1.2rem}.qty-control input{text-align:center;border:none;border-left:1px solid #dfe5e1;border-right:1px solid #dfe5e1;border-radius:0;width:100%;padding:.65rem .5rem}.modal-footer{background:#f8faf9;border-top:1px solid #edf1ee;justify-content:flex-end;gap:10px}@media (width<=760px){.search-row,.manual-date{grid-template-columns:1fr}.topbar,.section-title-row{flex-direction:column;align-items:flex-start}.pagination-bar{justify-content:flex-start}}
