:root{--purple:#944fef;--blue:#0692f1;--navy:#272677;--pink-red:#dc65cd;--red:#fe0000;--chocolate:peru;--border:#ddd;--bg:#fff;--bg-alt:#f7f7fb;--text:#222;--text-sub:#555;--shadow:0 2px 8px rgba(0,0,0,.12);--radius:6px;--font:"Lato", "Helvetica Neue", "Arial", "Microsoft JhengHei", "微軟正黑體", "Microsoft YaHei", "微軟雅黑體", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font);color:var(--text);background:var(--bg-alt);min-height:100vh;font-size:1rem}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.app-wrapper{flex-direction:column;min-height:100vh;padding-bottom:60px;display:flex}.main-content{flex:1;width:100%;max-width:900px;margin:0 auto;padding:16px}.app-footer{background:var(--navy);color:#fff;text-align:center;padding:10px 16px;font-size:.8rem}.navbar{background:var(--navy);color:#fff;height:52px;box-shadow:var(--shadow);align-items:center;gap:12px;padding:0 16px;display:flex}.nav-brand{align-items:center;gap:8px;display:flex}.nav-title{white-space:nowrap;font-size:1.1rem;font-weight:700}.nav-links{align-items:center;gap:6px;margin-left:auto;display:none}.nav-btn{color:#fff;border-radius:var(--radius);cursor:pointer;font-size:.95rem;font-family:var(--font);background:0 0;border:1px solid rgba(255,255,255,.4);padding:6px 14px;transition:background .15s}.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.2)}.nav-user{opacity:.8;font-size:.85rem}.bottom-tabbar{background:var(--navy);z-index:100;height:58px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px rgba(0,0,0,.2)}.tab-btn{color:rgba(255,255,255,.7);cursor:pointer;font-family:var(--font);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;transition:color .15s;display:flex}.tab-btn:hover,.tab-btn.active{color:#fff}.tab-btn.active .tab-icon{color:var(--purple)}.tab-icon{font-size:1.2rem}.tab-label{font-size:.7rem}@media (width>=768px){.nav-links{display:flex}.bottom-tabbar{display:none}.app-wrapper{padding-bottom:0}.main-content{padding:24px}}.about-view{background:var(--bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;font-size:.97rem;line-height:1.7}.about-view .red{color:var(--red);font-weight:500}.about-view a{color:var(--blue)}.reg-container{background:var(--bg);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.reg-header{background:var(--navy);color:#fff;padding:14px 20px}.reg-title{font-size:1rem;font-weight:600;line-height:1.4}.reg-form{padding:20px}.form-group{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.form-row{flex-wrap:wrap;gap:12px;display:flex}.form-row .form-group{flex:1;min-width:140px}.form-group.half{flex:45%;min-width:130px}.form-group.two-thirds{flex:2 60%;min-width:160px}.form-group.one-third{flex:30%;min-width:80px}.form-label{color:var(--text-sub);font-size:.88rem;font-weight:500}.form-label.required:after{content:" *";color:var(--red)}.form-input,.form-select,.form-textarea{border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;font-family:var(--font);color:var(--text);background:var(--bg);width:100%;padding:9px 12px;transition:border-color .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(6,146,241,.15)}.form-input[readonly]{cursor:not-allowed;background:#f3f3f3}.form-textarea{resize:vertical;min-height:80px}.form-hint{color:var(--text-sub);font-size:.78rem}.birth-selects{flex-wrap:wrap;gap:6px;display:flex}.birth-selects .form-select{flex:1;min-width:80px}.radio-group{flex-wrap:wrap;gap:16px;padding:8px 0;display:flex}.radio-label{cursor:pointer;align-items:center;gap:4px;font-size:.95rem;display:flex}.form-btns{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.btn{border-radius:var(--radius);cursor:pointer;font-family:var(--font);white-space:nowrap;border:none;padding:10px 20px;font-size:.95rem;font-weight:500;transition:opacity .15s,transform .1s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){background:#057bd1}.btn-secondary{background:var(--navy);color:#fff}.btn-secondary:hover:not(:disabled){background:#1e1e5a}.btn-cancel{color:#fff;background:#999}.btn-cancel:hover:not(:disabled){background:#777}.btn-back{background:var(--bg-alt);color:var(--text);border:1px solid var(--border)}.btn-back:hover:not(:disabled){background:#e8e8ee}.btn-danger{background:var(--pink-red);color:#fff}.btn-danger:hover:not(:disabled){background:#c040b0}.status-ok{border-radius:0 var(--radius) var(--radius) 0;color:#1a7a40;background:#eafaf1;border-left:4px solid #27ae60;margin:8px 20px;padding:10px 14px;font-size:.93rem}.status-err{border-left:4px solid var(--red);border-radius:0 var(--radius) var(--radius) 0;color:var(--red);background:#fdf0f0;margin:8px 20px;padding:10px 14px;font-size:.93rem}.error-text{color:var(--red);margin-top:4px;font-size:.88rem}.query-section{background:var(--bg-alt);border-radius:var(--radius);border:1px solid var(--border);margin:0 20px 20px;padding:16px}.query-title{color:var(--text-sub);margin-bottom:12px;font-size:.95rem;font-weight:600}.summary-box{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:14px}.summary-seq{color:var(--navy);font-size:1.1rem}.summary-seq strong{color:var(--purple);font-size:1.4rem}.summary-members{color:var(--text-sub);margin-top:4px}.done-box{text-align:center;padding:24px 0}.done-msg{color:var(--navy);margin-bottom:16px;font-size:1.1rem}.modal-overlay{z-index:200;background:rgba(0,0,0,.5);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg);border-radius:var(--radius);width:100%;max-width:380px;padding:28px 24px;box-shadow:0 8px 32px rgba(0,0,0,.2)}.modal-title{color:var(--navy);text-align:center;margin-bottom:20px;font-size:1.3rem;font-weight:700}.login-form .form-row{flex-direction:column}.admin-container{background:var(--bg);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.admin-tabs{background:var(--navy);gap:0;display:flex;overflow-x:auto}.admin-tab{color:rgba(255,255,255,.7);cursor:pointer;font-family:var(--font);white-space:nowrap;background:0 0;border:none;border-bottom:3px solid transparent;padding:12px 18px;font-size:.92rem;transition:color .15s,border-color .15s}.admin-tab:hover{color:#fff}.admin-tab.active{color:#fff;border-bottom-color:var(--purple)}.admin-section{padding:20px}.section-title{color:var(--navy);margin-bottom:14px;font-size:1rem;font-weight:600}.section-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-header .section-title{margin-bottom:0}.btn-sm{padding:6px 14px;font-size:.85rem}.loading{color:var(--text-sub);font-style:italic}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table-count{color:var(--text-sub);margin-bottom:8px;font-size:.85rem}.admin-table{border-collapse:collapse;width:100%;min-width:600px;font-size:.88rem}.admin-table th{background:var(--navy);color:#fff;text-align:left;white-space:nowrap;padding:9px 10px;font-weight:500}.admin-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px}.admin-table tr:nth-child(2n) td{background:var(--bg-alt)}.admin-table tr.paid-row td{color:#666}.admin-table tr.selected td{background:rgba(148,79,239,.1)!important}.admin-table tr:hover td{background:rgba(6,146,241,.06)}.money-col{text-align:right;font-variant-numeric:tabular-nums}.members-col{max-width:200px}.email-col{word-break:break-all;max-width:160px;font-size:.82rem}.note-col{max-width:200px;font-size:.82rem}.id-col{font-family:monospace}.insured-date-tag{color:#2e7d32;white-space:normal;word-break:break-word;background:#e8f5e9;border-radius:10px;padding:2px 7px;font-size:.82rem;font-weight:600;display:inline-block}.badge{color:#fff;white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.8rem;font-weight:500;display:inline-block}.badge-團員{background:var(--blue)}.badge-服務員{background:var(--navy)}.badge-親友{background:var(--purple)}.badge-友團{background:#7c3aed}.badge-工作人員{background:var(--chocolate)}.pay-form{background:var(--bg-alt);border-radius:var(--radius);border:1px solid var(--border);margin-top:16px;padding:16px}.no-access{text-align:center;padding:60px 20px}.no-access p{color:var(--text-sub);margin-bottom:16px;font-size:1.05rem}.reset-container{background:var(--bg);border-radius:var(--radius);box-shadow:var(--shadow);max-width:440px;margin:40px auto;padding:28px 24px}.reset-title{color:var(--navy);text-align:center;margin-bottom:20px;font-size:1.3rem;font-weight:700}.link-btn{color:var(--blue);cursor:pointer;font-size:.85rem;font-family:var(--font);background:0 0;border:none;padding:0;text-decoration:underline}.forgot-form{border-top:1px solid var(--border);margin-top:10px;padding-top:12px}.forgot-hint{color:var(--text-sub);margin-bottom:8px;font-size:.83rem}.user-section{background:var(--bg-alt);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:16px;padding:14px 16px}.sub-title{color:var(--navy);margin-bottom:10px;font-size:.92rem;font-weight:600}.red{color:var(--red)}.blue{color:var(--blue)}@media (width<=480px){.reg-title{font-size:.9rem}.form-row .form-group{flex:100%}.form-btns{flex-direction:column}.btn{text-align:center;width:100%}.admin-tabs{flex-wrap:nowrap}}.insurance-wrap{max-width:760px;margin:0 auto;padding:20px}.pdf-viewer-box{border:1px solid var(--border);background:#f5f5f5;border-radius:6px;width:100%;margin-bottom:16px;overflow:hidden}.pdf-embed{width:100%;height:520px;display:block}.insurance-agree{border-left:4px solid var(--purple);background:#f0f4ff;border-radius:6px;margin:12px 0;padding:12px 16px}.agree-label{cursor:pointer;align-items:center;gap:8px;font-size:1rem;display:flex}.agree-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.insurance-form{margin-top:16px}.sig-wrap{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.sig-canvas{border:2px solid var(--border);cursor:crosshair;touch-action:none;background:#fff;border-radius:4px;max-width:100%;display:block}.sig-clear-btn{padding:4px 14px;font-size:.85rem}.birth-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.birth-input{text-align:center;width:70px!important}.radio-row{align-items:center;gap:20px;padding:4px 0;display:flex}.member-list-box{margin-top:8px}.member-list-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.member-select-btn{padding:8px 18px;font-size:1rem}.member-done-tag{color:#2e7d32;min-width:64px;font-size:.9rem;font-weight:600}.member-name-label{color:var(--text-muted,#666);font-size:1rem}.prefilled-box{border-left:4px solid var(--purple);background:#f0f4ff;border-radius:6px;margin-bottom:16px;padding:12px 16px}.prefilled-row{align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.prefilled-label{color:#555;min-width:100px;font-size:.85rem}.prefilled-value{font-size:.95rem;font-weight:600}