body { background: #f2f2f2; -webkit-text-size-adjust: 100%; }
.app-header { position:relative; }
.app-container { padding: 15px; padding-bottom: 20px; }
.login-body { background: linear-gradient(135deg,#1e9fff 0%,#16baaa 100%); min-height:100vh; display:flex; align-items:center; justify-content:center; padding:16px; box-sizing:border-box; }
.login-box { width:100%; max-width:360px; background:#fff; padding:30px 20px; border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,.12); box-sizing:border-box; }
.login-box h2 { text-align:center; margin-bottom:24px; color:#333; font-size:20px; }
.login-box .layui-form-item { margin-bottom:15px; }
.login-box .layui-input {
    display:block; width:100%; height:44px; box-sizing:border-box;
    padding:0 12px; border:1px solid #dcdfe6; border-radius:5px;
    background:#fff; color:#333; font-size:16px; line-height:44px;
    -webkit-appearance:none; appearance:none;
}
.login-box .layui-input:focus { border-color:#16baaa; outline:none; box-shadow:0 0 0 2px rgba(22,186,170,.12); }
.login-box .layui-btn {
    display:block; width:100%; height:44px; box-sizing:border-box;
    border:0; border-radius:5px; background:#16baaa; color:#fff;
    font-size:16px; line-height:44px; text-align:center; cursor:pointer;
    -webkit-appearance:none; appearance:none;
}
.login-box .layui-btn:active { background:#129c90; }
.login-box .layui-btn:disabled { opacity:.65; cursor:not-allowed; }
.login-message {
    display:none; margin:-2px 0 12px; padding:8px 10px;
    border-radius:4px; background:#fff2f0; color:#d93026;
    font-size:13px; line-height:1.5; text-align:center;
}
.login-tip { text-align:center; font-size:12px; color:#999; margin-top:10px; }
.page-title { font-size:18px; font-weight:600; margin-bottom:15px; }
.stat-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:16px; }
.stat-card { background:#fff; border-radius:6px; padding:16px; box-shadow:0 1px 3px rgba(0,0,0,.06); }
.stat-card .label { color:#888; font-size:13px; }
.stat-card .value { font-size:22px; font-weight:700; margin-top:6px; color:#16baaa; word-break:break-all; }
.stat-card.warn .value { color:#ff5722; }
.toolbar { margin-bottom:12px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.toolbar .layui-input,
.toolbar input[type="date"],
.toolbar input[type="text"] { display:inline-block; vertical-align:middle; }
.toolbar .layui-input { height:38px; }
.table-scroll-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; background:#fff; border-radius:6px; }
.table-scroll-wrap .layui-table { min-width:720px; margin:0; }
.toolbar .layui-btn { margin:0; }

/* 录入表格 */
.daily-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; background:#fff; padding:10px; border-radius:6px; }
.daily-table { min-width:960px; }
.daily-table input,
.daily-table select,
.daily-table .decimal-field {
    width:100%; box-sizing:border-box; border:1px solid #e6e6e6; height:38px; padding:0 10px; font-size:16px; border-radius:4px; background:#fff;
}
.mobile-item-card .decimal-field {
    width:100%;box-sizing:border-box;
    height:44px;font-size:16px;
    border:1px solid #ddd;border-radius:6px;padding:0 12px;
}
.daily-table select { appearance:auto; }
.summary-bar { background:#fff; padding:12px 16px; margin-top:12px; border-radius:6px; font-size:15px; line-height:1.8; }
.summary-bar b { color:#16baaa; font-size:18px; }

/* 业务日期独立栏 */
.daily-date-bar {
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
    gap:10px; background:#fff; padding:12px 14px; border-radius:8px;
    margin-bottom:12px; box-shadow:0 1px 4px rgba(0,0,0,.06);
    border-left:4px solid #16baaa;
}
.daily-date-main {
    display:flex; flex-wrap:wrap; align-items:center; gap:10px; flex:1;
}
.daily-date-main label { font-weight:600; color:#333; white-space:nowrap; }
.daily-date-input { width:160px; height:40px; font-size:16px; }
.daily-date-hint { color:#16baaa; font-size:14px; font-weight:600; }
.daily-date-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }

/* 底部操作栏 */
.daily-bottom-toolbar {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    display: flex; flex-wrap: wrap; gap: 10px;
    justify-content: center; align-items: center;
    background: #fff;
    padding: 12px 16px;
    border-top: 1px solid #e6e6e6;
    box-shadow: 0 -4px 16px rgba(0,0,0,.08);
    z-index: 997;
}
.daily-bottom-toolbar .layui-btn {
    min-width: 110px;
    height: 44px;
    line-height: 44px;
    margin: 0;
    font-size: 15px;
}
.app-container.has-daily-form { padding-bottom: 90px; }

/* 行内产品搜索 */
.product-search-field { position: relative; min-width: 180px; }
.product-search-input {
    width: 100%; box-sizing: border-box;
    height: 38px; padding: 0 10px;
    border: 1px solid #e6e6e6; border-radius: 4px;
    font-size: 15px; background: #fff;
}
.product-search-list {
    display: none;
    position: absolute; left: 0; right: 0; top: calc(100% + 2px);
    max-height: 220px; overflow-y: auto;
    background: #fff; border: 1px solid #ddd;
    border-radius: 6px; box-shadow: 0 6px 18px rgba(0,0,0,.12);
    z-index: 1200;
}
.product-search-list.show { display: block; }
.product-search-option {
    padding: 8px 10px; font-size: 14px; cursor: pointer;
    border-bottom: 1px solid #f5f5f5;
}
.product-search-option:last-child { border-bottom: none; }
.product-search-option:hover,
.product-search-option.active { background: #f0fffd; color: #16baaa; }
.product-search-empty {
    padding: 16px; text-align: center; color: #999; font-size: 13px;
}
.product-search-quick {
    padding: 8px 10px 10px;
    border-top: 1px solid #f0f0f0;
}
.product-search-quick a {
    color: #1e9fff;
    font-size: 14px;
    text-decoration: none;
}
.product-search-quick.muted,
.product-picker-quick.muted {
    color: #999;
    font-size: 13px;
}
.product-quick-add { padding: 16px 18px 4px; }
.product-quick-add-tip {
    color: #666;
    font-size: 13px;
    margin-bottom: 12px;
    line-height: 1.5;
}
.product-quick-add-row { margin-bottom: 12px; }
.product-quick-add-row label {
    display: block;
    font-size: 13px;
    color: #666;
    margin-bottom: 6px;
}
.product-picker-quick {
    text-align: center;
    padding: 12px 8px 16px;
}
.product-picker-quick-tip {
    margin-top: 8px;
    color: #999;
    font-size: 12px;
}
.mobile-item-card .product-search-input { height: 44px; font-size: 16px; }

/* 执行价提示 */
.exec-price-cell { min-width:110px; }
.exec-price-wrap { position:relative; }
.exec-price-hint {
    display:block; font-size:11px; line-height:1.3; margin-top:2px;
}
.exec-price-hint.is-missing { color:#ff5722; }
.exec-price-hint.is-fallback { color:#ffb800; }
.exec-price-hint.is-manual { color:#1e9fff; }
.exec-price.is-missing { border-color:#ff5722 !important; background:#fff5f5 !important; }
.exec-price.is-fallback { border-color:#ffb800 !important; background:#fffbe6 !important; }

/* 选产品弹窗 */
.product-picker { padding:12px 16px; }
.product-picker-search {
    width:100%; height:40px; box-sizing:border-box;
    border:1px solid #ddd; border-radius:6px; padding:0 12px;
    font-size:15px; margin-bottom:10px;
}
.product-picker-tools { margin-bottom:8px; font-size:13px; }
.product-picker-tools a { color:#16baaa; margin-right:12px; }
.product-picker-list {
    max-height:360px; overflow-y:auto;
    border:1px solid #eee; border-radius:6px; padding:8px;
}
.product-picker-item {
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    padding:10px 8px; border-bottom:1px solid #f5f5f5;
    font-size:14px; cursor:pointer;
}
.product-picker-item:last-child { border-bottom:none; }
.product-picker-item small { color:#16baaa; font-size:12px; white-space:nowrap; }
.product-picker-item:hover { background:#f0fffd; }
.product-picker-selected {
    display:flex; flex-wrap:wrap; gap:8px;
    min-height:36px; margin-bottom:10px;
    padding:8px; background:#f8f8f8; border-radius:6px;
}
.product-picker-selected-empty { color:#999; font-size:13px; line-height:20px; }
.product-picker-tag {
    display:inline-flex; align-items:center; gap:4px;
    background:#e8f9f7; color:#333; border-radius:14px;
    padding:4px 10px; font-size:13px;
}
.product-picker-tag a { color:#ff5722; text-decoration:none; font-size:16px; line-height:1; }
.product-picker-empty { text-align:center; color:#999; padding:24px; }

.report-order-table { min-width: 1200px; }
.report-order-day td {
    background: #f0fffd;
    font-size: 14px;
    padding: 10px 12px !important;
}

/* 手机端头部菜单按钮 */
.mobile-menu-btn {
    display:none;
    position:absolute;
    left:0;top:0;
    width:50px;height:50px;
    border:none;background:transparent;
    color:#fff;font-size:22px;
    cursor:pointer;z-index:1002;
    align-items:center;justify-content:center;
}
.mobile-mask {
    display:none;
    position:fixed;left:0;top:0;right:0;bottom:0;
    background:rgba(0,0,0,.45);z-index:1000;
}
.mobile-mask.show { display:block; }
.mobile-bottom-nav {
    display:none;
    position:fixed;left:0;right:0;bottom:0;
    height:56px;background:#fff;
    border-top:1px solid #e6e6e6;
    z-index:999;
    justify-content:space-around;align-items:center;
    padding-bottom:env(safe-area-inset-bottom);
}
.mobile-bottom-nav .mbn-item {
    flex:1;text-align:center;color:#666;
    font-size:11px;padding:6px 0;
    display:flex;flex-direction:column;align-items:center;
    text-decoration:none;
}
.mobile-bottom-nav .mbn-item .layui-icon { font-size:22px; }
.mobile-bottom-nav .mbn-item:active,
.mobile-bottom-nav .mbn-item.active { color:#16baaa; }

/* 手机录入卡片（替代宽表格） */
.mobile-item-cards { display:none; }
.mobile-item-card {
    background:#fff;border-radius:8px;
    padding:12px;margin-bottom:12px;
    box-shadow:0 1px 4px rgba(0,0,0,.08);
}
.mobile-item-card .mic-row { margin-bottom:10px; }
.mobile-item-card .mic-row label {
    display:block;font-size:13px;color:#666;margin-bottom:4px;
}
.mobile-item-card input,
.mobile-item-card select {
    width:100%;box-sizing:border-box;
    height:44px;font-size:16px;
    border:1px solid #ddd;border-radius:6px;padding:0 12px;
}
.mobile-item-card .mic-grid {
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.mobile-item-card .mic-del {
    text-align:right;margin-top:8px;
}
.mobile-item-card .mic-del a { color:#ff5722;font-size:14px; }

/* 手机底部固定操作栏 */
.mobile-action-bar {
    display:none;
    position:fixed;left:0;right:0;bottom:56px;
    background:#fff;padding:10px 12px;
    border-top:1px solid #eee;
    z-index:998;gap:8px;
    padding-bottom:calc(10px + env(safe-area-inset-bottom));
}
.mobile-action-bar .layui-btn { flex:1; height:44px; line-height:44px; font-size:14px; padding:0 8px; }

/* 表单通用 */
.layui-input, .layui-textarea, .layui-select {
    font-size:16px;
}
input[type="number"], input[type="text"], input[type="date"], input[type="password"] {
    font-size:16px;
}

@media (max-width:992px) {
    .app-header .layui-logo {
        padding-left:50px;
        font-size:15px;
        width:auto;
        text-align:left;
    }
    .mobile-menu-btn { display:flex; }
    .layui-layout-admin .layui-body { left:0 !important; }
    .layui-layout-admin .layui-side {
        position:fixed !important;
        top:0;left:0;bottom:0;
        width:240px !important;
        transform:translateX(-100%);
        transition:transform .28s ease;
        z-index:1001;
        display:block !important;
    }
    .layui-layout-admin .layui-side.show { transform:translateX(0); }
    .app-container { padding:12px 10px 80px; }
    .mobile-bottom-nav { display:flex; }
    .page-title { font-size:16px; }
    .stat-card .value { font-size:20px; }
    .layui-table { font-size:13px; }
    .layui-form-label { width:80px; padding:9px 10px; }
    .layui-input-block { margin-left:100px; }
    .layui-form-item .layui-input-inline { width:100%; max-width:none; margin:0 0 10px 0; }
    .layui-form-item .layui-form-label { float:none; display:block; width:100%; text-align:left; padding:0 0 6px; }
    .layui-form-item .layui-input-block,
    .layui-form-item .layui-input-inline { margin-left:0; }
}

@media (max-width:768px) {
    .daily-table-wrap { display:none; }
    .mobile-item-cards { display:block; }
    .daily-bottom-toolbar {
        bottom: 56px;
        padding: 10px 12px;
        gap: 8px;
    }
    .daily-bottom-toolbar .layui-btn {
        flex: 1 1 calc(50% - 4px);
        min-width: calc(50% - 4px);
        height: 42px;
        line-height: 42px;
        font-size: 14px;
        padding: 0 6px;
    }
    .app-container.has-daily-form { padding-bottom: 130px; }
    .daily-date-bar { flex-direction:column; align-items:stretch; }
    .daily-date-input { width:100%; }
    .daily-date-hint { width:100%; }
    .daily-tip { font-size:13px; color:#666; margin-bottom:12px; line-height:1.5; }
    .daily-fees .layui-input { height:44px; }
    .summary-bar { font-size:14px; margin-bottom:70px; }
    #chartTrend { height:240px !important; }
    .layui-table-view { overflow-x:auto; }
    .layui-table-box { overflow-x:auto; -webkit-overflow-scrolling:touch; }
    .toolbar .layui-input { width:100%; height:44px; }
    .toolbar form, .toolbar { gap:10px; }
    .toolbar .layui-btn { flex:1 1 auto; min-height:40px; }
    .stat-cards { grid-template-columns:1fr 1fr; }
}

@media (min-width:769px) {
    .mobile-action-bar { display:none !important; }
    .daily-bottom-toolbar { padding-left: 260px; }
}
