*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--sidebar-w:220px;--color-bg:#f2f4f3;--color-surface:#fff;--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 #0000000f;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;font:inherit;background:0 0;border:none}a{color:inherit;text-decoration:none}.layout{min-height:100dvh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--color-primary);color:#fff;flex-direction:column;flex-shrink:0;padding:0;display:flex}.sidebar-logo{letter-spacing:.5px;padding:24px 20px 20px;font-size:18px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:0 8px;display:flex}.nav-item{color:#fffc;cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;transition:background .15s,color .15s;display:flex}.nav-item:hover,.nav-item.active{color:#fff;background:#ffffff1f}.main-content{flex:1;padding:28px;overflow:auto}.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{cursor:pointer;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;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{border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge-confirmed{color:var(--color-confirmed);background:#e8f5e9}.badge-pending{color:var(--color-pending);background:#fff3e0}.badge-cancelled{color:var(--color-cancelled);background:#f5f5f5}.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}
