*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;color:#111;background:#f5f6f8}a{color:inherit;text-decoration:none}.page{min-height:100%;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.app-shell.has-bottom-nav .page{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}.card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 4px 16px #0000000a}.section-title{font-size:14px;color:#666;margin:0 0 8px}.field{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f0f0f0;font-size:14px}.field:last-child{border-bottom:none}.label{color:#666}.value{color:#111;text-align:right;margin-left:12px;flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:8px;border:none;background:#2563eb;color:#fff;font-size:14px;cursor:pointer}.btn.secondary{background:#e5e7eb;color:#111}.btn.full{width:100%}.input,.select,.textarea{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #e5e7eb;font-size:14px;background:#fff}.grid,.list{display:grid;gap:12px}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px}.nav{position:sticky;top:0;z-index:10;background:#fff;padding:12px 16px;border-bottom:1px solid #f0f0f0}.nav-title{margin:0;font-size:16px;font-weight:600}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #f0f0f0}.bottom-nav__btn{height:40px;border:none;border-radius:8px;background:#f3f4f6;color:#111;font-size:12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.bottom-nav__btn.active{background:#2563eb;color:#fff}.bottom-nav__icon{width:18px;height:18px}.bottom-nav__label{line-height:1}.muted{color:#666;font-size:13px}.error{color:#b91c1c;font-size:13px}
