:root{
    --bg:#f4f6fa;
    --panel:#ffffff;
    --text:#172033;
    --muted:#68738a;
    --line:#dfe4ec;
    --primary:#1f56d8;
    --danger:#bd3429;
    --success:#198754;
    --radius:14px;
}

*{box-sizing:border-box}
html{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.45}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.hidden{display:none!important}
.muted{color:var(--muted)}

.topbar{
    min-height:62px;
    background:#fff;
    border-bottom:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:10px 16px;
    position:sticky;
    top:0;
    z-index:30;
}

.brand{display:flex;align-items:center;gap:10px}
.brand img{display:block;width:auto;height:34px;max-width:110px;object-fit:contain}
.brand-mark,.login-brand-mark{
    display:grid;
    place-items:center;
    background:var(--primary);
    color:#fff;
    font-weight:900;
}
.brand-mark{width:36px;height:36px;border-radius:10px}
.user-menu{display:flex;align-items:center;gap:12px;font-size:13px}
.user-menu a{color:var(--primary)}

.nav{
    display:flex;
    gap:4px;
    overflow:auto;
    padding:8px 12px;
    background:#fff;
    border-bottom:1px solid var(--line);
    position:sticky;
    top:62px;
    z-index:25;
}
.nav a{padding:8px 11px;border-radius:9px;white-space:nowrap}
.nav a:hover{background:#edf2ff;color:var(--primary)}

.container{max-width:1400px;margin:0 auto;padding:16px 14px 100px}
h1{font-size:24px;margin:8px 0 16px}
h2{font-size:18px;margin:0 0 14px}

.panel,.feature-card,.stat-card{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:0 4px 14px rgba(20,32,60,.04);
}
.panel{padding:16px;margin-bottom:14px}
.panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px}

label{display:flex;flex-direction:column;gap:6px;font-weight:650;margin-bottom:12px}
input,select,textarea{
    width:100%;
    border:1px solid #cfd7e3;
    border-radius:10px;
    padding:11px 12px;
    background:#fff;
    color:var(--text);
}
input:focus,select:focus,textarea:focus{
    outline:2px solid #bfd0ff;
    border-color:var(--primary);
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #cdd5e1;
    background:#fff;
    color:var(--text);
    border-radius:10px;
    padding:10px 14px;
    font-weight:750;
    cursor:pointer;
}
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn-small{padding:6px 9px;font-size:13px}
.btn-full{width:100%}

.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px}
.flash-success{background:#e8f7ef;color:#12683b}
.flash-error{background:#fdebea;color:#982b22}

.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
.stat-card{padding:16px}
.stat-card strong{display:block;font-size:28px}
.stat-card span{color:var(--muted)}

.form-grid{display:grid;gap:10px}
.check-field{flex-direction:row;align-items:center}
.check-field input{width:auto}

.table-wrap{overflow:auto}
table{width:100%;border-collapse:separate;border-spacing:0;min-width:780px}
th,td{
    padding:10px 12px;
    border-bottom:1px solid var(--line);
    border-right:1px solid var(--line);
    text-align:left;
    white-space:nowrap;
}
th{
    position:sticky;
    top:0;
    background:#eef2f7;
    z-index:2;
    font-size:13px;
}
th:first-child,td:first-child{border-left:1px solid var(--line)}
thead th{border-top:1px solid var(--line)}

.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px}
.badge-draft{background:#eef1f5;color:#4b5565}
.badge-submitted{background:#e8efff;color:#214dae}
.badge-returned{background:#ffebe8;color:#a23a2d}
.badge-approved{background:#e6f6ec;color:#187244}

.inline-form{display:flex;gap:6px;align-items:center}
.inline-form input{min-width:150px}

.filter-row{display:flex;gap:8px;flex-wrap:wrap}
.filter-row input,.filter-row select{width:auto}

.tabs{
    display:flex;
    gap:6px;
    position:sticky;
    top:111px;
    z-index:20;
    background:var(--bg);
    padding:8px 0;
}
.tab{
    flex:1;
    border:1px solid var(--line);
    background:#fff;
    border-radius:10px;
    padding:11px;
    font-weight:800;
    cursor:pointer;
}
.tab.active{background:var(--primary);color:#fff}
.tab-panel{display:none}
.tab-panel.active{display:block}

.summary-grid,.detail-grid,.chicken-summary{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
    margin-bottom:14px;
}
.summary-grid div,.detail-grid div,.chicken-summary div{
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:12px;
}
.summary-grid span,.detail-grid span,.chicken-summary span{
    display:block;
    color:var(--muted);
    font-size:12px;
}
.summary-grid strong,.detail-grid strong,.chicken-summary strong{
    font-size:18px;
}

.manager-cards{display:grid;gap:12px;margin-bottom:14px}
.feature-card{padding:18px}
.feature-card h2{margin-bottom:5px}
.feature-card p{color:var(--muted)}

.returned-item{
    display:flex;
    flex-direction:column;
    gap:4px;
    border-bottom:1px solid var(--line);
    padding:10px 0;
}

.payment-grid,.chicken-grid{display:grid;grid-template-columns:1fr;gap:8px}
.repeat-row{
    display:grid;
    grid-template-columns:1fr 120px 42px;
    gap:8px;
    margin-bottom:8px;
}
.remove-row{
    border:1px solid var(--line);
    background:#fff;
    border-radius:10px;
    font-size:22px;
    cursor:pointer;
}
.formula-box{
    background:#f0f3f8;
    color:#465167;
    padding:12px;
    border-radius:10px;
    margin-bottom:12px;
}
.file-link{
    display:block;
    padding:8px 0;
    color:var(--primary);
}

.sticky-actions{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    display:flex;
    justify-content:flex-end;
    gap:8px;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:#fff;
    border-top:1px solid var(--line);
    box-shadow:0 -5px 18px rgba(20,32,60,.08);
    z-index:40;
}

.login-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:18px;
    background:#eef2f8 center/cover no-repeat;
}
.login-card{
    width:min(100%,390px);
    background:rgba(255,255,255,.97);
    border:1px solid var(--line);
    border-radius:20px;
    padding:24px;
    box-shadow:0 24px 70px rgba(24,38,76,.16);
}
.login-brand{text-align:center;margin-bottom:22px}
.login-brand-logo{
    display:block;
    width:auto;
    height:54px;
    max-width:140px;
    object-fit:contain;
    margin:0 auto 12px;
}
.login-brand-mark{
    width:62px;
    height:62px;
    border-radius:18px;
    font-size:32px;
    margin:0 auto 12px;
}
.login-brand h1{margin:0 0 4px}
.login-brand p{margin:0;color:var(--muted)}

.button-row{display:flex;justify-content:flex-end;gap:8px}

@media(min-width:768px){
    .container{padding:24px 24px 110px}
    .stats{grid-template-columns:repeat(4,1fr)}
    .form-grid{grid-template-columns:repeat(2,1fr);align-items:end}
    .manager-cards{grid-template-columns:repeat(2,1fr)}
    .payment-grid{grid-template-columns:repeat(3,1fr)}
    .chicken-grid{grid-template-columns:repeat(4,1fr)}
    .summary-grid,.detail-grid{grid-template-columns:repeat(4,1fr)}
    .chicken-summary{grid-template-columns:repeat(4,1fr)}
}

@media(min-width:1024px){
    h1{font-size:28px}
    .form-grid{grid-template-columns:repeat(5,1fr)}
    .panel{padding:20px}
    .chicken-grid{grid-template-columns:repeat(8,minmax(110px,1fr))}
}


/* V1.4 detailed EOD entries */
.help-text{
    color:var(--muted);
    margin-top:-5px;
    margin-bottom:14px;
}
.entry-list{display:grid;gap:12px;margin-bottom:12px}
.repeat-row.detailed-row{
    display:block;
    padding:12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fafbfc;
}
.row-fields{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
}
.detailed-row .remove-row{
    width:auto;
    margin-top:10px;
    padding:8px 12px;
    font-size:14px;
}
.file-field{
    display:flex;
    flex-direction:column;
    gap:6px;
    font-size:12px;
    color:var(--muted);
}
.table-note{
    display:block;
    margin-top:4px;
    color:var(--muted);
}
@media(min-width:768px){
    .row-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:1200px){
    .row-fields{grid-template-columns:repeat(4,minmax(150px,1fr))}
}


/* V1.5 Advanced Report */
.advanced-filter{
    align-items:end;
}
.advanced-filter label{
    min-width:160px;
}
.advanced-tabs{
    margin-bottom:16px;
}
.advanced-tabs .tab{
    display:inline-flex;
    align-items:center;
    text-decoration:none;
}
.advanced-summary{
    margin-bottom:18px;
}
.excel-table-wrap{
    width:100%;
    overflow:auto;
    max-height:70vh;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
}
.excel-table{
    min-width:1900px;
    border-collapse:separate;
    border-spacing:0;
    margin:0;
}
.excel-table th,
.excel-table td{
    white-space:nowrap;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:9px 10px;
    background:#fff;
}
.excel-table thead th{
    position:sticky;
    top:0;
    z-index:4;
    background:#f1f4f8;
    font-size:12px;
}
.excel-table .sticky-col{
    position:sticky;
    left:0;
    z-index:3;
    background:#fff;
    box-shadow:1px 0 0 var(--line);
}
.excel-table thead .sticky-col{
    z-index:6;
    background:#f1f4f8;
}
.excel-table tfoot th{
    position:sticky;
    bottom:0;
    z-index:4;
    background:#eef2f7;
}
.excel-table tfoot .sticky-col{
    z-index:6;
    background:#eef2f7;
}
.excel-table .num{
    text-align:right;
    font-variant-numeric:tabular-nums;
}
.excel-table .strong-cell{
    font-weight:700;
}
.excel-table tbody tr:hover td{
    background:#fafcff;
}
.excel-table tbody tr:hover .sticky-col{
    background:#fafcff;
}
.variance-cell.has-variance{
    font-weight:700;
    text-decoration:underline;
}
@media(max-width:700px){
    .advanced-filter label{
        width:100%;
    }
}
