:root{--ink:#1b2430;--paper:#e8edf3;--cyan:#1a7a88;--stub:#fffdf8}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;font-family:Microsoft YaHei,Segoe UI,sans-serif;background:var(--paper);color:var(--ink)}.screen{max-width:430px;margin:0 auto;min-height:100vh;padding:20px 16px 40px}.brand{font-size:12px;letter-spacing:.12em;color:var(--cyan);margin:0 0 8px}h1{margin:0 0 8px;font-size:22px}.ticket{background:var(--stub);border:1px dashed #c5d0da;border-radius:12px;padding:16px;margin:12px 0}.card{background:#fff;border:1px solid #d5dde6;border-radius:12px;padding:14px;margin-bottom:10px;box-shadow:inset 3px 0 0 var(--cyan)}label{display:block;font-size:12px;color:#5a6570;margin:8px 0 4px}input,select{width:100%;padding:10px 12px;border:1px solid #c5d0da;border-radius:8px}.btn{width:100%;padding:12px;border:0;border-radius:8px;background:var(--cyan);color:#fff;margin-top:10px}.btn.ghost{background:#fff;color:var(--cyan);border:1px solid var(--cyan)}.muted{color:#5a6570;font-size:13px}.err{color:#b42318;font-size:13px}.tabs{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.tabs button{flex:1;min-width:72px;padding:8px;border:1px solid #c5d0da;background:#fff;border-radius:8px}.tabs button.on{border-color:var(--cyan);color:var(--cyan)}
