:root{--lotus:#167a52;--lotus-dark:#0d6844;--rose:#71b943;--blush:#f1f8f4;--silver:#d9dee0;--moon:#fbfdfc;--ink:#283832;--muted:#68756f;--white:#fff;--danger:#a55770;--radius:14px;--shadow:0 10px 32px rgba(22,122,82,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#f1f0f3;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}button,input{font:inherit}button{cursor:pointer}.app{width:100%;max-width:430px;min-height:100dvh;margin:auto;background:linear-gradient(180deg,#fff 0%,var(--moon) 100%);position:relative;overflow:hidden;padding-bottom:100px}.topbar{height:58px;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;border-bottom:1px solid #ebe9ed;background:rgba(255,255,255,.92);padding-top:env(safe-area-inset-top)}.topbar h1{text-align:center;font-size:19px;margin:0;font-weight:590}.back{border:0;background:transparent;height:48px;color:var(--ink);display:grid;place-items:center}.back svg{width:25px;height:25px}.content{padding:22px 20px}.hero{padding:4px 0 30px;position:relative}.hospital{display:flex;align-items:center;gap:10px;color:var(--lotus);font-size:17px;font-weight:570}.hospital svg{width:31px;height:31px}.hero h2{font-family:"Songti SC","STSong",serif;font-size:28px;color:var(--lotus);font-weight:650;letter-spacing:.04em;margin:29px 0 11px}.hero p{font-size:15px;color:var(--muted);margin:0;line-height:1.65}.petal-lines{position:absolute;left:-75px;right:-75px;bottom:-4px;height:52px;opacity:.7}.petal-lines:before,.petal-lines:after{content:"";position:absolute;width:310px;height:70px;border-top:1px solid #ead8df;border-radius:50%}.petal-lines:before{left:0;top:20px;transform:rotate(5deg)}.petal-lines:after{right:0;top:12px;transform:rotate(-8deg)}.section{margin-top:27px}.section h3{font-size:18px;margin:0 0 13px;font-weight:620}.department-list{display:grid;gap:10px}.department{width:100%;height:76px;display:flex;align-items:center;gap:14px;padding:0 17px;border:1px solid var(--silver);border-radius:var(--radius);background:rgba(255,255,255,.86);color:var(--ink);text-align:left}.department.selected{border-color:var(--lotus);background:#fdf9fa;box-shadow:0 5px 18px rgba(154,111,133,.08)}.icon-disc{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--lotus);flex:none}.icon-disc svg{width:22px;height:22px}.department strong{font-size:18px;font-weight:570;flex:1}.radio{width:25px;height:25px;border:1.5px solid #b8b8bf;border-radius:50%;display:grid;place-items:center;color:#fff}.selected .radio{background:var(--lotus);border-color:var(--lotus)}.selected .radio:after{content:"✓";font-size:15px;font-weight:700}.date-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.date{position:relative;min-height:78px;border:1px solid var(--silver);border-radius:12px;background:#fff;color:var(--ink);line-height:1.45;padding:9px 4px;font-size:16px}.date small{display:block;font-size:14px}.date.selected{border-color:var(--lotus);background:#fdf9fa;color:var(--lotus)}.date.selected:after{content:"✓";position:absolute;right:-5px;top:-6px;width:23px;height:23px;border-radius:50%;background:var(--lotus);color:#fff;display:grid;place-items:center;font-size:13px}.actionbar{position:absolute;left:0;right:0;bottom:0;padding:12px 20px calc(14px + env(safe-area-inset-bottom));background:rgba(255,255,255,.95);box-shadow:0 -8px 22px rgba(91,70,80,.05);backdrop-filter:blur(12px)}.primary{width:100%;height:54px;border:0;border-radius:10px;background:var(--lotus);color:#fff;font-size:18px;font-weight:620;letter-spacing:.03em}.primary:active{background:var(--lotus-dark);transform:translateY(1px)}.summary{border:1px solid var(--silver);border-radius:var(--radius);background:rgba(255,255,255,.8);padding:8px 15px}.summary-row{min-height:56px;display:flex;align-items:center;gap:13px;border-bottom:1px solid #ebe9ed;font-size:17px}.summary-row:last-child{border:0}.form{margin-top:28px}.field{margin-bottom:20px}.field label{display:block;font-size:16px;font-weight:570;margin-bottom:9px}.input-wrap{height:58px;display:flex;align-items:center;gap:12px;border:1px solid var(--silver);border-radius:12px;background:#fff;padding:0 15px}.input-wrap:focus-within{border-color:var(--lotus);box-shadow:0 0 0 3px rgba(154,111,133,.09)}.input-wrap svg{width:22px;height:22px;color:#aaa5aa;flex:none}.input-wrap input{width:100%;border:0;outline:0;background:transparent;font-size:16px;color:var(--ink)}.input-wrap input::placeholder{color:#aaa5aa}.consent{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.6;color:var(--muted);margin-top:26px}.consent input{appearance:none;width:21px;height:21px;border:1px solid #aaa8ae;border-radius:4px;margin:0;flex:none}.consent input:checked{background:var(--lotus);border-color:var(--lotus);position:relative}.consent input:checked:after{content:"✓";position:absolute;color:#fff;left:3px;top:-2px;font-weight:700}.consent a{color:var(--lotus);text-decoration:underline}.error{font-size:13px;color:var(--danger);margin:7px 0 0}.success{text-align:center;padding:51px 20px 15px}.success-mark{width:112px;height:112px;border-radius:50%;margin:0 auto 29px;background:var(--blush);color:var(--lotus);display:grid;place-items:center;position:relative}.success-mark:before,.success-mark:after{content:"";position:absolute;width:150px;height:65px;border-bottom:2px solid #eedce2;border-radius:50%;bottom:-5px}.success-mark:before{left:-70px;transform:rotate(10deg)}.success-mark:after{right:-70px;transform:rotate(-10deg)}.success-mark svg{width:67px;height:67px;z-index:1}.success h2{font-family:"Songti SC","STSong",serif;color:var(--lotus);font-size:29px;margin:0 0 12px}.success>p{font-size:15px;color:var(--muted);line-height:1.65;margin:0 0 28px}.success .summary{text-align:left;margin-bottom:28px}.secondary{border:0;background:transparent;color:var(--lotus);font-size:17px;font-weight:570;padding:18px}.records{padding:36px 20px}.record{border:1px solid var(--silver);border-radius:var(--radius);background:#fff;padding:10px 15px;box-shadow:var(--shadow)}.record .status{margin-left:auto;color:var(--lotus);background:var(--blush);font-size:13px;padding:5px 9px;border-radius:20px}.cancel{width:100%;height:50px;border:1px solid var(--lotus);border-radius:10px;background:transparent;color:var(--lotus);font-size:17px;margin-top:24px}.empty{text-align:center;color:var(--muted);padding-top:120px}.empty svg{width:56px;height:56px;color:var(--rose);margin-bottom:16px}.empty h2{font-size:20px;color:var(--ink)}.modal-backdrop{position:fixed;inset:0;background:rgba(31,26,29,.36);display:grid;place-items:end center;z-index:10}.modal{width:min(430px,100%);background:#fff;border-radius:20px 20px 0 0;padding:27px 20px calc(20px + env(safe-area-inset-bottom));text-align:center}.modal h2{font-size:20px;margin:0 0 10px}.modal p{font-size:14px;color:var(--muted);margin:0 0 22px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-actions button{height:48px;border-radius:9px;font-size:16px}.modal .keep{border:1px solid var(--silver);background:#fff}.modal .confirm{border:0;background:var(--lotus);color:#fff}.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);background:#423a3f;color:#fff;border-radius:9px;padding:10px 15px;font-size:14px;white-space:nowrap;z-index:20;animation:fade 2s both}@keyframes fade{0%{opacity:0;transform:translate(-50%,8px)}15%,75%{opacity:1;transform:translate(-50%,0)}100%{opacity:0}}
@media(max-width:350px){.content{padding-left:15px;padding-right:15px}.hero h2{font-size:25px}.date-grid{gap:6px}.date{font-size:14px}}@media(min-width:700px){body{padding:24px}.app{min-height:820px;border-radius:25px;box-shadow:0 16px 45px rgba(70,54,63,.13)}}
.topbar{background:#167a52;color:#fff;border-bottom-color:#0d6844}.back{color:#fff}.hospital{display:block;height:82px;background:url('assets/logo-hospital.png') center/contain no-repeat;color:transparent;font-size:0}.hospital svg,.hospital span{display:none}.petal-lines:before,.petal-lines:after{border-top-color:#d7ebdf}.primary{box-shadow:0 6px 18px rgba(22,122,82,.15)}
.more-date{width:100%;height:48px;margin-top:10px;border:1px solid var(--silver);border-radius:10px;background:#fff;color:var(--ink);padding:0 14px;font-size:15px}.content>.hospital{margin:4px 0 0}.content .hero{padding-top:0}.content .form{margin-top:26px}
.department-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.department-grid .department{height:66px;padding:0 15px}.rules{margin:24px 0 18px;border:1px solid var(--silver);border-radius:12px;background:#fff;overflow:hidden}.rules summary{height:52px;padding:0 15px;display:flex;align-items:center;justify-content:space-between;font-size:16px;font-weight:620;cursor:pointer;list-style:none}.rules summary::-webkit-details-marker{display:none}.rules summary span{font-size:14px;color:var(--lotus);font-weight:500}.rules[open] summary{border-bottom:1px solid var(--silver)}.rules-body{padding:13px 15px;background:var(--blush);font-size:13px;line-height:1.7;color:var(--muted)}.rules-body p{margin:0 0 9px}.rules-body p:last-child{margin-bottom:0}
.rules-title{height:48px;padding:0 15px;display:flex;align-items:center;font-size:16px;font-weight:650;border-bottom:1px solid var(--silver);color:var(--ink)}
.rule-important{color:#0d6844;font-weight:620}
.top-link,.back-text{color:#fff;text-decoration:none;font-size:14px;padding:12px}.summary-row{justify-content:space-between}.summary-row b{font-weight:570}.booking-tip{font-size:13px!important;color:var(--muted)!important;margin-top:-12px!important}.standalone{margin-top:24px}.query-result{margin-top:24px;padding:18px;border:1px solid var(--silver);border-radius:12px;background:var(--blush)}.query-result h3{color:var(--lotus);margin:0 0 12px}.query-result p{margin:8px 0}.primary:disabled{opacity:.65;cursor:wait}
