:root{font-family:Inter,Noto Sans TC,system-ui,-apple-system,sans-serif;color:#2c241d;background:#f7f4ee;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}.center{min-height:100vh;display:grid;place-items:center}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.brand-panel{padding:9vw;background:linear-gradient(140deg,#382a22,#6c4a2e);color:#fff;display:flex;flex-direction:column;justify-content:center}.brand-panel h1{font-size:clamp(3.5rem,8vw,8rem);margin:.1em 0}.brand-panel p{font-size:1.35rem;opacity:.9}.brand-note{margin-top:2rem;opacity:.7;letter-spacing:.1em}.eyebrow{font-size:.75rem;letter-spacing:.22em;font-weight:800;color:#c9954e}.brand-panel .eyebrow{color:#f6ca86}.login-card{align-self:center;margin:7vw;max-width:470px;padding:3rem;border:1px solid #e4ddd2;border-radius:24px;background:#fff;box-shadow:0 24px 80px #59442a18}.login-card h2{font-size:2rem;margin:.4rem 0 0}.login-card>p{color:#766b61;margin:.65rem 0 2rem}.login-badge{display:inline-flex;padding:.45rem .7rem;border-radius:999px;background:#f4eadb;color:#795735;font-size:.78rem;font-weight:800}.login-hint{margin-top:1.25rem;color:#8b8177;font-size:.82rem;line-height:1.5}label{display:grid;gap:.5rem;margin:1rem 0;font-size:.9rem;font-weight:700}input{width:100%;border:1px solid #d8d0c4;border-radius:12px;padding:.9rem 1rem;background:#fcfbf9;outline:none}input:focus{border-color:#9a7450;box-shadow:0 0 0 3px #9a74501a}.phone-field{display:flex;align-items:center;border:1px solid #d8d0c4;border-radius:12px;background:#fcfbf9;overflow:hidden}.phone-field:focus-within{border-color:#9a7450;box-shadow:0 0 0 3px #9a74501a}.phone-field span{padding:0 .9rem;color:#7b6a5b;font-weight:800;border-right:1px solid #e5ddd4}.phone-field input{border:0;border-radius:0;box-shadow:none!important}.otp-input{font-size:1.45rem;letter-spacing:.35em;text-align:center;font-weight:800}.phone-summary{display:flex;align-items:center;gap:.55rem;margin:1rem 0;padding:.8rem 1rem;border-radius:12px;background:#f7f2ea;font-size:.85rem}.phone-summary span{color:#8b8177}.phone-summary strong{margin-right:auto}.text-button{width:auto;padding:.2rem;background:transparent;color:#765437;font-size:.82rem}button{border:0;border-radius:12px;padding:.95rem 1.2rem;background:#4a3526;color:#fff;font-weight:800;cursor:pointer;width:100%}button:disabled{opacity:.55;cursor:not-allowed}.secondary{margin-top:.7rem;background:#eee7dc;color:#4a3526}.message{margin-top:1rem;padding:1rem;border-radius:12px;background:#fff4d8;color:#6b4d1f;line-height:1.5}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}aside{background:#2e251f;color:#fff;padding:2rem 1.4rem;display:flex;flex-direction:column}.logo{font-weight:900;letter-spacing:.08em}.logo span{font-size:.9rem;color:#d7b77f}nav{display:grid;gap:.25rem;margin-top:3rem}nav a{padding:.8rem 1rem;border-radius:10px;color:#d8d1cb}.active{background:#ffffff12;color:#fff!important}.logout{margin-top:auto;background:#ffffff10}.dashboard{padding:3rem 4vw}header{display:flex;align-items:center;justify-content:space-between}.dashboard h1{font-size:2.7rem;margin:.2rem 0}.pill{background:#eadfcf;border-radius:999px;padding:.6rem 1rem;font-size:.85rem}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2.5rem}.cards article{background:#fff;border:1px solid #e6dfd5;border-radius:18px;padding:1.5rem}.cards span{display:block;color:#81766a;font-size:.9rem}.cards strong{display:block;margin-top:.8rem;font-size:1.7rem}.welcome{margin-top:1rem;background:#e9dfd2;border-radius:20px;padding:2rem}.welcome p{max-width:800px;line-height:1.8;color:#655c53}@media(max-width:800px){.login-shell{grid-template-columns:1fr}.brand-panel{padding:3rem 2rem;min-height:32vh}.brand-panel h1{font-size:3.8rem}.login-card{margin:1.25rem;padding:1.6rem;border-radius:20px}.app-shell{grid-template-columns:1fr}aside{display:none}.dashboard{padding:2rem 1.2rem}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}header{align-items:flex-start;gap:1rem}.pill{display:none}}
