*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--sidebar-w: 220px;--color-bg: #f2f4f3;--color-surface: #ffffff;--color-primary: #2e5d42;--color-primary-hover: #3a7554;--color-text: #1a1a1a;--color-text-muted: #666;--color-border: #dde0dd;--color-confirmed: #2e7d32;--color-pending: #e65100;--color-cancelled: #888;--color-note-internal: #fff9c4;--color-note-customer: #fff3e0;--color-note-customer-border: #fb8c00;--radius: 10px;--shadow-sm: 0 1px 4px rgba(0,0,0,.06);font-family:Noto Sans TC,-apple-system,BlinkMacSystemFont,sans-serif}body{background:var(--color-bg);color:var(--color-text);min-height:100dvh}button{cursor:pointer;border:none;background:none;font:inherit}a{color:inherit;text-decoration:none}.layout{display:flex;min-height:100dvh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--color-primary);color:#fff;display:flex;flex-direction:column;padding:0}.sidebar-logo{padding:24px 20px 20px;font-size:18px;font-weight:700;letter-spacing:.5px}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:0 8px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;font-size:14px;color:#fffc;transition:background .15s,color .15s;cursor:pointer}.nav-item:hover,.nav-item.active{background:#ffffff1f;color:#fff}.main-content{flex:1;overflow:auto;padding:28px}.page-header{margin-bottom:24px}.page-header h1{font-size:22px;font-weight:700}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px}.btn{padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-ghost{border:1.5px solid var(--color-border);color:var(--color-text-muted)}.btn-ghost:hover{background:var(--color-bg)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.badge-confirmed{background:#e8f5e9;color:var(--color-confirmed)}.badge-pending{background:#fff3e0;color:var(--color-pending)}.badge-cancelled{background:#f5f5f5;color:var(--color-cancelled)}.note-internal{background:var(--color-note-internal);border-radius:6px;padding:8px 12px;font-size:13px}.note-customer{background:var(--color-note-customer);border:2px solid var(--color-note-customer-border);border-radius:6px;padding:8px 12px;font-size:13px}
