:root { --ink:#172026; --muted:#5b6770; --line:#d8dee4; --brand:#006c67; --brand-dark:#004f4b; --accent:#b45309; --paper:#fff; --soft:#f6f8f9; --danger:#b3261e; --success:#137333; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif; background:#eef5f4; }
button,input { font:inherit; }
button { cursor:pointer; }
button:focus,input:focus { outline:3px solid rgba(0,108,103,.22); outline-offset:2px; }
.page { width:min(1280px,100%); margin:0 auto; padding:32px 20px 56px; }
.login-view { width:min(420px,100%); margin:12vh auto; padding:34px; border:1px solid var(--line); border-radius:8px; background:var(--paper); box-shadow:0 18px 50px rgba(25,42,50,.1); }
.eyebrow { margin:0 0 8px; color:var(--brand); font-weight:700; }
h1 { margin:0; font-size:30px; } h2 { margin:0; font-size:22px; } h3 { margin:0 0 16px; font-size:18px; }
.pin-form { display:grid; gap:16px; margin-top:26px; }
.pin-form input { min-height:52px; padding:8px; border:1px solid var(--line); border-radius:6px; text-align:center; font-size:26px; letter-spacing:8px; }
.pin-form button,.quiet { min-height:42px; border:0; border-radius:6px; padding:0 16px; font-weight:700; }
.pin-form button { color:#fff; background:var(--brand); }
.header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:26px 0; }
.header-actions { display:flex; gap:10px; }.quiet { color:var(--brand-dark); border:1px solid var(--line); background:#fff; }
.dates-section,.schedule-section,.appointments-section { border-top:1px solid var(--line); padding:24px 0; }
.date-tabs { display:flex; gap:8px; overflow-x:auto; padding-bottom:6px; }
.date-tab { flex:0 0 auto; min-height:40px; border:1px solid var(--line); border-radius:6px; padding:0 13px; color:var(--ink); background:#fff; }.date-tab.selected { color:#fff; border-color:var(--brand); background:var(--brand); }
.message { min-height:24px; margin:0; color:var(--muted); font-weight:700; }.message.error { color:var(--danger); }.message.success { color:var(--success); }.message.info { color:var(--brand); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:18px; }.hint { max-width:430px; margin:0; color:var(--muted); line-height:1.55; }
.schedules { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.store-schedule { padding:20px; border:1px solid var(--line); border-radius:8px; background:var(--paper); }
.slot-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }.slot { min-height:64px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); }.slot strong,.slot span { display:block; }.slot span { margin-top:4px; font-size:12px; color:var(--muted); }.slot.open:hover { border-color:var(--accent); background:#fff7ed; }.slot.closed { border-color:#b76b31; background:#fff4e5; }.slot.booked { color:#79848c; background:#f0f2f3; cursor:not-allowed; }.slot.booked span { color:#79848c; }
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:8px; background:#fff; } table { width:100%; border-collapse:collapse; min-width:720px; } th,td { padding:14px 16px; border-bottom:1px solid var(--line); text-align:left; } th { color:var(--muted); font-size:14px; background:var(--soft); } tr:last-child td { border-bottom:0; }.empty { color:var(--muted); text-align:center; }.delete-button { min-height:32px; border:1px solid #d8a09a; border-radius:5px; color:var(--danger); background:#fff; }.delete-button:disabled { opacity:.6; cursor:wait; }
@media (max-width:780px) { .page { padding:22px 14px 40px; }.header,.section-heading { align-items:flex-start; flex-direction:column; }.schedules { grid-template-columns:1fr; }.slot-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } h1 { font-size:26px; } }
