/* 原豆精神 ORICIN Coffee Roaster - 品牌主樣式 */
:root {
  --primary: #5B3A29; --primary-dark: #4A2E20; --primary-light: #6D4C41;
  --secondary: #C8956C; --secondary-light: #D4A574;
  --text-dark: #3E2723; --text-muted: #8C7B6B;
  --bg: #F8F3ED; --bg-card: #F1EAE2; --bg-alt: #FAF6F1; --border: #E8DFD5;
  --success: #7B8B6F; --danger: #C45C5C; --warning: #D4A574; --white: #FFFFFF;
  --font-base: 15px; --font-sm: 13px; --font-lg: 18px; --font-xl: 22px;
  --radius: 6px; --sidebar-w: 240px;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Noto Sans TC','Inter',sans-serif; font-size:var(--font-base); color:var(--text-dark); background:var(--bg); line-height:1.6; }
a { color:var(--primary); text-decoration:none; }
a:hover { color:var(--secondary); }

/* ── 側邊欄 ── */
.sidebar { position:fixed; left:0; top:0; bottom:0; width:var(--sidebar-w); background:var(--primary); color:var(--bg); z-index:100; transition:transform .3s; overflow-y:auto; }
.sidebar-brand { padding:20px; display:flex; align-items:center; gap:12px; border-bottom:1px solid rgba(255,255,255,.1); }
.brand-logo { font-size:32px; }
.brand-zh { font-size:17px; font-weight:700; }
.brand-en { font-size:11px; color:var(--secondary); opacity:.8; }
.sidebar-nav { padding:8px 0; }
.nav-item { display:flex; align-items:center; gap:10px; padding:11px 20px; color:rgba(248,243,237,.7); font-size:14px; transition:all .2s; border-left:3px solid transparent; }
.nav-item:hover { background:rgba(255,255,255,.08); color:var(--bg); }
.nav-item? .active { color:var(--bg); background:rgba(255,255,255,.1); border-left-color:var(--secondary); font-weight:500; }
.nav-item i { width:20px; text-align:center; }
.nav-pos { margin-top:8px; border-top:1px solid rgba(255,255,255,.1); padding-top:16px; }
.nav-pos .fa-cash-register { color:var(--secondary); }
.nav-divider { height:1px; background:rgba(255,255,255,.1); margin:8px 20px; }
.nav-logout { color:rgba(248,243,237,.5); }
.nav-logout:hover { color:var(--danger); }

/* ── 主內容區 ── */
.main-content { margin-left:var(--sidebar-w); min-height:100vh; }
.topbar { display:flex; align-items:center; gap:16px; padding:12px 24px; background:var(--white); border-bottom:1px solid var(--border); position:sticky; top:0; z-index:50; }
.sidebar-toggle { display:none; background:none; border:none; font-size:20px; color:var(--primary); cursor:pointer; padding:4px 8px; }
.page-title { font-size:var(--font-lg); font-weight:700; color:var(--primary); }
.topbar-right { margin-left:auto; }
.user-name { font-size:14px; color:var(--text-muted); }
.content { padding:24px; }

/* ── 統計卡片 ── */
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin-bottom:24px; }
.stat-card { background:var(--white); border-radius:var(--radius); padding:20px; display:flex; align-items:center; gap:16px; box-shadow:0 1px 4px rgba(0,0,0,.06); }
.stat-icon { width:48px; height:48px; border-radius:var(--radius); display:flex; align-items:center; justify-content:center; color:var(--white); font-size:20px; }
.stat-value { font-size:var(--font-xl); font-weight:700; color:var(--text-dark); }
.stat-label { font-size:var(--font-sm); color:var(--text-muted); }

/* ── 快速操作 ── */
.section-title { font-size:var(--font-lg); font-weight:700; color:var(--primary); margin-bottom:16px; }
.action-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.action-card { background:var(--white); border-radius:var(--radius); padding:20px; text-align:center; box-shadow:0 1px 4px rgba(0,0,0,.06); transition:all .2s; color:var(--text-dark); }
.action-card:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,.1); color:var(--primary); }
.action-card i { font-size:28px; color:var(--secondary); display:block; margin-bottom:8px; }
.action-card span { font-size:15px; font-weight:500; }

/* ── 表格 ── */
.data-table { width:100%; border-collapse:collapse; background:var(--white); border-radius:var(--radius); overflow:hidden; box-shadow:0 1px 4px rgba(0,0,0,.06); }
.data-table th { background:var(--primary); color:var(--bg); padding:12px 14px; text-align:left; font-size:14px; font-weight:500; white-space:nowrap; }
.data-table td { padding:11px 14px; border-bottom:1px solid var(--border); font-size:var(--font-base); vertical-align:middle; }
.data-table tr:nth-child(even) td { background:var(--bg-alt); }
.data-table tr:hover td { background:var(--bg-card); }

/* ── 按鈕 ── */
.btn { display:inline-flex; align-items:center; gap:6px; padding:8px 18px; border:none; border-radius:var(--radius); font-size:14px; cursor:pointer; transition:all .2s; font-family:inherit; }
.btn-primary { background:var(--primary); color:var(--bg); }
.btn-primary:hover { background:var(--primary-dark); }
.btn-secondary { background:var(--secondary); color:var(--white); }
.btn-secondary:hover { background:#B8845C; }
.btn-success { background:var(--success); color:var(--white); }
.btn-danger { background:var(--danger); color:var(--white); }
.btn-outline { background:transparent; color:var(--primary); border:1px solid var(--primary); }
.btn-outline:hover { background:var(--primary); color:var(--bg); }
.btn-sm { padding:, 5px 12px; font-size:13px; }
.btn-lg { padding:12px 28px; font-size:16px; }
.btn-icon { width:=36px; height:=36px; padding:0; justify-content:center; border-radius:var(--radius); }

/* ── 表單 ── */
.form-group { margin-bottom:18px; }
.form-group label { display:block; font-size:14px; font-weight:500; color:var(--primary); margin-bottom:6px; }
.form-control { width:100%; padding:10px 14px; border:1px solid var(--border); border-radius:var(--radius); font-size:var(--font-base); color:var(--text-dark); background:var(--white); transition:border-color .2s; font-family:inherit; }
.form-control:focus { outline:none; border-color:var(--secondary); }
select.form-control { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M6 8L0 0h12z' fill='%238C7B6B'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12>12px center; padding-right:32px; }

/* ── 卡片 ── */
.card { background:var(--white); border-radius:var(--radius); box-shadow:0 1px 4px rgba(0,0,0,.06); overflow:hidden; }
.card-header { background:var(--bg-card); padding:14px 20px; font-size:15px; font-weight:600; color:var(--primary); border-bottom:1px solid var(--border); }
.card-body { padding:20px; }

/* ── 標籤 ── */
.badge { display:inline-block; padding:3px 10px; border-radius:12px; font-size:12px; font-weight:500; }
.badge-success { background:var(--success); color:var(--white); }
.badge-warning { background:var(--warning); color:var(--white); }
.badge-danger { background:var(--danger); color:var(--white); }
.badge-light { background:var(--bg-card); color:var(--text-muted); }
.badge-primary { background:var(--primary); color:var(--bg); }
.badge-secondary { background:var(--secondary); color:var(--white); }

/* ── 提示 ── */
.alert { padding:12px 18px; border-radius:var(--radius); margin-bottom:16px; font-size:14px; }
.alert-success { background:#E8F5E9; color:#2E7D32; border:1px solid #C8E6C9; }
.alert-error { background:#FFF0F0; color:var(--danger); border:1px solid #FFD4D4; }
.alert-warning { background:#FFF8E1; color:#F57F17; border:1px solid #FFE082; }
.alert-info { background:#E3F2FD; color:#1565C0; border:1px solid #BBDEFB; }

/* ── 分頁 ── */
.pagination { display:flex; gap:4px; justify-content:center; margin-top:20px; }
.pagination a, .pagination span { padding:6px 12px; border-radius:var(--radius); font-size:14px; }
.pagination a { background:var(--white); color:var(--text-dark); border:1px solid var(--border); }
.pagination a:hover { background:var(--bg-card); }
.pagination .active { background:var(--primary); color:var(--bg); font-weight:500; }

/* ── 手機端 ── */
.sidebar-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:99; }
.sidebar-overlay.active { display:block; }
@media(max-width:768px) {
  .sidebar { transform:translateX(-100%); }
  .sidebar.open { transform:translateX(0); }
  .main-content { margin-left:0; }
  .sidebar-toggle { display:block; }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .action-grid { grid-template-columns:repeat(2,1fr); }
}

/* ── POS 點單專用樣式 ── */
.pos-layout { display:grid; grid-template-columns:1fr 360px; gap:16px; height:calc(100vh - 80px); }
.pos-categories { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.pos-cat-btn { padding:10px 20px; border-radius:var(--radius); border:2px solid var(--border); background:var(--white); font-size:15px; font-weight:500; color:var(--text-dark); cursor:pointer; transition:all .2s; }
.pos-cat-btn:hover, .pos-cat-btn.active { border-color:var(--primary); background:var(--bg-card); color:var(--primary); }
.pos-products { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px; overflow-y:auto; max-height:calc(100vh - 200px); }
.pos-product-card { background:var(--white); border-radius:var(--radius); padding:14px; text-align:center; cursor:pointer; transition:all .2s; border:2px solid transparent; min-height:90px; display:flex; flex-direction:column; justify-content:center; }
.pos-product-card:hover { border-color:var(--secondary); transform:scale(1.02); }
.pos-product-card .p-name { font-size:14px; font-weight:600; color:var(--text-dark); margin-bottom:4px; }
.pos-product-card .p-price { font-size:16px; font-weight:700; color:var(--primary); }
.pos-product-card .p-tag { font-size:11px; color:var(--secondary); }
.pos-order-panel { background:var(--white); border-radius:var(--radius); box-shadow:0 1px 4px rgba(0,0,0,.06); display:flex; flex-direction:column; }
.pos-order-header { padding:14px 16px; background:var(--primary); color:var(--bg); border-radius:var(--radius) var(--radius) 0 0; font-size:15px; font-weight:600; }
.pos-order-items { flex:1; overflow-y:auto; padding:8px 0; }
.pos-order-item { display:flex; align-items:center; padding:8px 16px; gap:8px; border-bottom:1px solid var(--border); }
.pos-order-item .item-name { flex:1; font-size:14px; }
.pos-order-item .item-qty { font-size:14px; font-weight:600; color:var(--primary); }
.pos-order-item .item-price { font-size:14px; color:var(--text-muted); min-width:70px; text-align:right; }
.pos-order-footer { padding:16px; border-top:2px solid var(--primary); }
.pos-total { font-size:20px; font-weight:700; color:var(--primary); text-align:right; margin-bottom:12px; }
.pos-confirm-btn { width:100%; padding:16px; background:var(--success); color:var(--white); border:none; border-radius:var(--radius); font-size:18px; font-weight:600; cursor:pointer; }
.pos-confirm-btn:hover { background:#6D7D62; }
.pos-member-bar { background:var(--bg-card); border-radius:var(--radius); padding:12px 16px; margin-bottom:12px; display:flex; align-items:center; gap:12px; }
.pos-member-bar .member-name { font-size:15px; font-weight:600; color:var(--primary); }
.pos-member-bar .member-balance { font-size:14px; color:var(--success); font-weight:500; }
