
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17312d;background:#f4f7f4}
*{box-sizing:border-box}body{margin:0}main{max-width:720px;margin:auto;padding:16px 16px 92px}
header{background:#123c35;color:white;padding:16px}header .wrap{max-width:720px;margin:auto}
h1{font-size:21px;margin:0 0 4px}h2{font-size:19px;margin:18px 0 10px}h3{font-size:16px;margin:0 0 8px}
p{line-height:1.45}.muted{color:#5f716d;font-size:14px}.small{font-size:13px}.card{background:white;border:1px solid #dbe4df;border-radius:14px;padding:15px;margin:10px 0;box-shadow:0 1px 2px #00000008}
button,input,select,textarea{font:inherit}button{min-height:46px;border:0;border-radius:10px;padding:10px 14px;font-weight:650;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}.primary{background:#087d64;color:white}.secondary{background:#e6f2ec;color:#075843}.outline{background:white;border:1px solid #9db6aa;color:#075843}.danger{background:#fff0ec;color:#a43b25}
.hub-link{display:inline-block;min-height:46px;border-radius:10px;padding:12px 15px;background:#087d64;color:#fff;font-weight:650;text-decoration:none}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row>*{flex:1}.row .tight{flex:0 0 auto}
label{display:block;font-weight:650;margin:12px 0 5px}input,select,textarea{width:100%;min-height:46px;border:1px solid #a8bcb0;border-radius:9px;padding:10px 11px;background:white;color:#17312d}
input[type=checkbox]{width:20px;min-height:20px}.qty{width:100px;flex:0 0 100px}.unit{flex:0 0 auto;font-weight:650}
.sticky{position:fixed;bottom:0;left:0;right:0;background:#ffffffed;border-top:1px solid #dbe4df;padding:9px 16px env(safe-area-inset-bottom);z-index:10}.sticky .inner{max-width:720px;margin:auto;display:flex;gap:8px}.sticky button{flex:1}
.tag{display:inline-block;border-radius:20px;background:#e7f1ea;color:#245b44;padding:4px 9px;font-size:12px;font-weight:650}.warn{background:#fff1d5;color:#865b00}.error{background:#ffe9e5;color:#a0382b}
.notice{padding:12px;border-radius:10px;background:#e7f1ea;margin:10px 0}.notice.error{background:#ffe9e5}.choices{display:flex;gap:6px;flex-wrap:wrap}.choices button{min-height:44px;font-size:14px;padding:8px 10px}
.selected{background:#087d64!important;color:white!important}.right{margin-left:auto}.line{border-top:1px solid #e5ebe7;padding:12px 0}.line:first-child{border-top:0}
.topnav{display:flex;gap:6px;margin-top:10px;overflow-x:auto}.topnav button{flex:0 0 auto;background:#24584c;color:white;white-space:nowrap}.topnav button.active{background:#fff;color:#123c35}
